Sundtek bringt ERROR: frontend 1/0: Unpassender IOCTL (I/O-Control) für das Gerät

  • Ich habe den Treiber von Sundtek installiert und in /etc/sundtek.conf auch vorgegeben, dass er im DVB-C-Modus starten soll:

    Code
    initial_dvb_mode=DVBC


    das wird auch berücksichtigt:



    Die letzten Zeilen finde ich etwas merkwürdig. Ist immerhin Kernel 3.8.0


    vdr kann den DVB-C-Kanal auf dem Sundtek aber nicht öffnen:

    Code
    Oct 27 20:10:47 ubuntuvdr2 vdr: [1144] switching to channel 2
    Oct 27 20:10:47 ubuntuvdr2 vdr: [1144] ERROR: cFemonOsd::ChannelSwitch() cannot open frontend device.
    Oct 27 20:10:47 ubuntuvdr2 vdr: [1152] ERROR: frontend 1/0: Unpassender IOCTL (I/O-Control) für das Gerät


    Wobei das eigentlich schon ein Widerspruch in sich ist. Wenn das device nicht geöffnet werden konnte, um einen ioctl auszuführen, dann kann es es vom Treiber eigentlich doch gar keinen Rückgabewert geben, nichtmal einen error... ?(

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • was zeigt denn /opt/bin/mediaclient -e und /opt/bin/mediaclient --build ?




    Code
    martin@ubuntuvdr2:/var/lib/vdr/plugins$ /opt/bin/mediaclient --build 
    Build date: 2013-10-25 11:38:44

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hast du LD_PRELOAD gesetzt? Sonst kann das Device nicht geöffnet werden.
    Der Rest sind dann Folgefehler.


    nö, davon stand hier nichts. Da muss ich erstmal googeln...

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Also bei der Treiberinstalltion wurde ungefragt /etc/ld.so.preload mit dem Inhalt /opt/lib/libmediaclient.so angelegt. Wenn ich mir das hier durchlese, sollte ich das vielleicht ganz schnell wieder löschen. Ich habe das jetzt so verstanden, dass diese Methode gewählt wurde, damit man LD_PRELOAD nicht manuell setzen muss. Oder anders gesagt: So wie der Treiber sich selbst installiert hat, hätte er doch eigentlich schon funktionieren müssen, oder?


    Der Stick ist funktionsfähig. Am anderen VDR mit yavdr läuft er.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • es funktioniert, wenn ich "export LD_PRELOAD=/opt/lib/libmediaclient.so" in die runvdr von runvdr-extreme eintrage.


    Nun möchte ich aber eigentlich gerne, dass beim runvdr start der Treiber geladen und bei runvdr stop wieder entladen wird, so wie es bei einem Neustart aus dem OSD vorgesehen ist.
    Trage ich dazu dann "/opt/bin/mediaclient --start" und "/opt/bin/mediaclient --shutdown" in die jeweilige start- bzw. stop-Sektion der runvdr ein?


    Was ist der Unterschied zwischen export LD_PRELOAD=/opt/lib/libmediaclient.so und /opt/bin/mediaclient --start ?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Also bei der Treiberinstalltion wurde ungefragt /etc/ld.so.preload mit dem Inhalt /opt/lib/libmediaclient.so angelegt. Wenn ich mir das hier durchlese, sollte ich das vielleicht ganz schnell wieder löschen. Ich habe das jetzt so verstanden, dass diese Methode gewählt wurde, damit man LD_PRELOAD nicht manuell setzen muss. Oder anders gesagt: So wie der Treiber sich selbst installiert hat, hätte er doch eigentlich schon funktionieren müssen, oder?


    Der Stick ist funktionsfähig. Am anderen VDR mit yavdr läuft er.


    Den anderen Entwickler kann man nicht ernst nehmen, spätestens wenn man sein Preload LIbrary verwendet (er hat selber eines geschrieben) und man die abstürze sieht. Es benötigt Erfahrung die man einfach in diesem Bereich sammeln muss (selbst Google und viele Settopboxen haben so eine Bibliothek)
    Der YaVDR wird wird /etc/ld.so.preload gelöscht und LD_PRELOAD in dem VDR Startskript gesetzt.
    Die default Installation trägt das Library in /etc/ld.so.preload ein (der Installationsparameter -system verhindert dies), dies sollte es bereits automatisch mit vdr funktionierend machen.

  • Was ist der Unterschied zwischen export LD_PRELOAD=/opt/lib/libmediaclient.so und /opt/bin/mediaclient --start ?


    LD_PRELOAD=/opt/lib/libmediaclient.so stellt lediglich die Video4Linux und DVB API Kompatibilität her. Applikationen könnten auch ohne dem direkt auf den Treiber zugreifen, müssten dann jedoch /opt/libmcsimple.so als Plugin einbinden.
    /opt/bin/mediaclient --start startet den Treiber
    /opt/bin/mediaclient --shutdown stoppt den Treiber

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!