Hauppauge PCTV 461e unter Fedora 43

Da ich immer ab und an noch ein bisschen mit TV Karten herumspiele und meine beiden TechnoTrend Geräte inzwischen aus Altersschwäche den Geist aufgegeben haben, habe ich mit den im Titel bezeichnete Stick besorgt. Laut allen Informationen auch unter Fedora nutzbar – soweit zur Theorie.

Ich habe dann wohl ein neueres Modell bekommen, das sich mit der USB Kennung 2013:0462 meldet und für das es noch keine Unterstützung im Linux Kernel (6.18) gibt – tatsächlich auch nicht in den neueren. Hauppauge selbst verweist auf ein Open Source Paket, das es aber nur für das aktuelle Ubuntu LTS und den Kernel 6.8 gibt – dazu auch eine entsprechende Firmware.

Da es mich schon etwas Nerven gekostet hat das unter Fedora zumindest in einem Entwicklungsstand ans Laufen zu bekommen will ich hier kurz meine Erfahrungen vorstellen – auch eine längere hitzige Diskussion mit ChatGPT hat zwar ein paar mal in die richtige Richtung gezeigt mich aber auch des öfteren mal gegen die Wand laufen lassen. Basis ist der Patch für 6.8, wobei ich allerdings nur die für die 461e relevanten Teile (30.Montage.3103c.demod) extrahiert habe – mit ein paar kleinen Tweaks und einem zusätzlichen Fix für das DVB-S Tuning. Ein bisschen Code von einer Dual-Tuner Karte ist noch drin, aber das war mir egal, zumindest läuft die Karte nun erst einmal. Meinen Patch habe ich mal hier in den Blog geladen – natürlich zusammen mit dem was jetzt kommt ganz ohne Gewähr.

Ich habe das nur für mein aktuelles Fedora gemacht, wohl wissend, dass man die Module neu erstellen muss, wenn es ein Update gibt – vielleicht landet der Hauppauge Patch ja irgendwann mal im Mainstream Kernel, wer weiß. Mein uname -r meldet 6.18.3-200.fc43.x86_64 und das wird auch im folgenden Beispiel so verwendet.

Wichtig ist vor allem, dass man die richtigen Quellen verwendet – auf den ganzen Entwicklerkram, den man installieren muss, gehe ich hier nicht ein, vieles war auf meiner Entwicklermaschine eh schon drauf. Nach einigen Sackgassen fängt das so an:

Als Arbeitsverzeichnis verwende ich den Vorschlag vom rpmdev:

  • rpmdev-setuptree (einmalig beim ersten Mal)
  • cd ~/rpmbuild/SRPMS

Die passenden Quellen werden heruntergeladen und entpackt:

  • dnf download –source kernel-6.18.3-200.fc43.x86_64
  • rpm -Uvh kernel-6.18.3-200.fc43.src.rpm

Die Quellen werden passend zu meinem System konfiguriert:

  • cd ../SPECS
  • rpmbuild -bp kernel.spec

Der Rest findet nun in dem Verzeichnis statt in das die Quellen entpackt wurden:

  • cd ../BUILD/kernel-6.18.3-build/kernel-6.18.3/linux-6.18.3-200.fc43.x86_64

Darin wird die Konfiguration des laufenden Kernels abgelegt:

  • cp /boot/config-$(uname -r) .config
  • make olddefconfig

fedora ist etwas pingelig was die Versionskennzeichung der Module angeht. Sollte wie im Beispiel ein Zusatz an der Version (6.18.3) vorhanden sein, so muss dieser in die Datei .config eingetragen werden. Dazu wird CONFIG_LOCALVERSION auf „-200.fc43.x86_64“ gesetzt.

Danach kann man meinen minimalisierten Patch anwenden (es gibt sechs Warnungen, da war ich wohl bezüglich Leerzeichen etwas schlampig) und bauen:

  • git apply fedora43_6.17.12-300.patch
  • make prepare -j$(nproc)
  • make -C /lib/modules/$(uname -r)/build M=$PWD/drivers/media/usb/em28xx modules srctree=$PWD -j$(nproc)
  • make -C /lib/modules/$(uname -r)/build M=$PWD/drivers/media/dvb-frontends modules srctree=$PWD -j$(nproc)

Relevant für den Zugriff auf das Gerät sind nur die folgenden drei Module:

  • drivers/media/dvb-frontends/m88ds3103.ko
  • drivers/media/usb/em28xx/em28xx.ko
  • drivers/media/usb/em28xx/em28xx-dvb.ko

Beispiel mit VLC – Kaffeine und meine eigene Software tun es aber auch.

vlc dvb-s2://frequency=11494000:polarization=H:srate=22000000:modulation=8PSK:fec=2/3

Mit dem gegenüber der ursprünglichen Version zusätzlichen Fix gehen das dann auch für DVB-S Transponder.

vlc dvb-s://frequency=12188000:polarization=H:srate=27500000:fec=3/4

Viel Glück beim Selbstversuch und im Sinne des letzten Bildes schon mal ein frohes Weihnachtsfest

Jochen

Kleiner Zusatz: tatsächlich funktioniert die DiSEqC 1.0 Ansteuerung nicht, ich vermute aber, dass ich da irgendwas übersehen habe – bezüglich des DVB-S Fixes berichtet ein Benutzer, dass er 3 DiSEqC Positionen erfolgreich angesteuert hat. Was allerdings geht ist DiSEqC Burst zum Umschalten zwischen zwei Positionen und mehr habe ich eh nicht – also für mich ist der Stick nun voll nutzbar.

Weitere Information: mit Kernel 6.18 musste ich die Anleitung noch mal überarbeiten, ich habe keinen Retest der veränderten Beschreibung für 6.17 gemacht – viel Glück für den, der es versucht. Den Patch selbst konnte ich unverändert übernehmen.

Unity Hub 2.1.3 unter Ubuntu 18.04.3: Segmentation Fault oder Ups, he did it again…

Völlig überraschend (für mich) findet sich ein Windows Problem unter Ubuntu: Visual Studio Installation vs. Node. Der Unity Hub ist wohl auch eine (alte?) electron Anwendung und mag es gar nicht, wenn die Environment Variable NODE_OPTIONS gesetzt ist. Weg damit und alles wieder gut… Puh!

Jochen

Windows 10 mag Visual Studio 2015 nicht – nanu!

Naja, ich muss das ein wenig relativieren. Nach einigen erfolgreichen Migrationen auf Windows 10 war nun gestern mein Arbeitsplatzrechner an der Reihe. Eine ziemlich alte Windows 7 32 Bit (wg. einer Nexus DVB-S TV Karte) Installation, auf der sich SEHR viel Krams im Lauf der Jahre angesammelt hat (e.g. mehrere Versionen Visual Studio, dazu SQL Server, Office, …). Der Upgrade auf Windows 10 Home dauert daher auch recht lange (klar, er muss ja die Features aus der Windows Installer Datenbank übernehmen) und dann, so nach ca. 100 Minuten bei 70% Gesamtfortschritt (90% Features & Treiber) stehe ich plötzlich am rien ne va plus…

Über dem großen Kreis mit dem Gesamtforschritt erscheint ein Windows Befehlszeilenfenster (!), ohne Inhalt mit dem Titel „Microsoft Visual C++ Runtime …“ – leider ohne Versionsnummer. Es handelt sich offenbar (?) um den Versuch, irgendeine Visual C++ Runtime zu installieren. Jeder Versuch, das Fenster zu schliessen (Klick mit der Maus, ENTER im Fenster, Alt-F4) führt dazu, dass Windows 10 auf die Vorinstallation zurückfällt. Mist!

Nun habe ich leider eine ganze Reihe von C++ Runtime Versionen auf meinem Altsystem: 2005, 2008, 2010, 2012, 2013 und 2015. Ich hatte erst einmal die wirklich alten (2005 und 2008) im Verdacht und diese zusammen mit ähnlich alten Komponenten (e.g. SQL Compact 2005, 3.5 und 4.0) entfernt. Leider ohne Erfolg.

Im Windows 10 Setup Protokoll (setupact.log) gehörte der letzte Eintrag zum Visual Studio 2015, das ich kurz vorher (RTM wohlgemerkt) installiert und ausprobiert hatte. Also schweren Herzens (das hat fast 2 Stunden gedauert – Löschen von einer SSD, echt heftig) Visual Studio 2015 samt C++ 2015 Runtime deinstalliert und siehe da: die Windows 10 Installation läuft durch. Ich gehe davon aus, dass ich darauf auch wieder Visual Studio 2015 mit allem installieren kann, aber im Moment reicht es mir erst einmal – die Nerven 🙂

Ich hoffe, dass der Tipp dem einen oder anderen dabei hilft, Windows 7 etwas schneller als ich zu modernisieren!

Viel Spaß dabei

Jochen

Jeder hat mal klein angefangen…

Um einmal ein wenig aus den tief eingelaufenen (Microsoft) Wegen zu entfliehen und vielleicht auch mal einen Blick in die persönliche Zukunft zu werfen, habe ich mich entschlossen ein bisschen (wenn auch private) praktische Erfahrungen im Mobile Umfeld zu sammeln. Nach einigen Enttäuschungen bei Versuchen mit einer Web App (auf Basis von jQuery Mobile) – über die ich vielleicht auch einmal hier berichten werde – und dem bewussten Überspringen von Xamarin (bedingt durch ein ziemlich schlechtes Buch) habe ich als zweiten Versuch direkt das Android SDK mit dem Android Studio verwendet. Lustiger Weise konnte ich hier zig Jahre alte Java Kenntnisse direkt nutzen – irgendwie trotzt einiger Neuerung doch alles sehr vertraut.

Naja, so richtig toll ist die erste App nicht geworden, vor allen was die graphische Gestaltung angeht. Aber sie scheint ihren Zweck zu erfüllen (zum Hintergrund: mein Sohn muss sich in Informatik gerade mit dem Binärsystem auseinandersetzen), daher habe ich sie einfach mal auf Google Play veröffentlicht. Den Quellcode gibt es natürlich auch wie gewohnt auf GitHub, aber da ich selbst noch ganz am Anfang stehe kann man hier nicht viel lernen.

Mein Fazit: nach einigen Einstiegsschwierigkeit ist das Android Studio doch eine recht angenehme IDE. Die Grundstruktur einer Android App ist durchaus vergleichbar mit anderen UI Konzepten, die mir im Laufe der Jahre so begegnet sind – in meinen Augen vor allem WPF und Silverlight. Allerdings glaube ich, dass eine App für alle Formfaktoren wirklich kein Kinderkram ist – ich habe alleine schon Mühe gehabt, eine einfach Seite auf einem Galaxy S4 auch auf einem S3 Mini einigermaßen bedienbar zu bekommen.

Aber ich lerne ja noch 🙂 Und es macht wirklich Spaß, mal wieder Neuland zu betreten – trotz der immer wiederkehrenden kleinen und großen Rückschläge.

In diesem Sinne: Death to the Comfort Zone!

Jochen