Atmolight und Eingabedevice

  • Problem mit dem Eingabedevice von Atmolight

    Atmolight erkennt mein Eingabedevice nicht korrekt! Gestartet wird Atmolight mit den Parametern "-i FFDVB -o SERIAL=/dev/ttyUSB0". Das Atmolight-Plugin meldet beim Start das es das Eingabedevice /dev/video1 nicht öffnen kann. Das korrekte Device ist aber auch /dev/video0 von meiner Haupauge Nexus-S Karte. Ein Link von /dev/video nach /dev/video0 ist vorhanden.

    Die Ausgabe von logread |grep -i atmo sieht wie folgt aus:

    Quote

    Apr 9 19:51:23 linvdr user.info vdr: [2526] loading plugin: /usr/lib/vdr/plugins/libvdr-atmo.so.1.4.5
    Apr 9 19:51:27 linvdr user.info vdr: [2526] initializing plugin: atmo (0.1.1): Atmolight-Plugin
    Apr 9 19:51:27 linvdr user.info vdr: [2526] starting plugin: atmo
    Apr 9 19:51:27 linvdr user.err vdr: [2543] Atmolight: Error opening /dev/video1
    Apr 9 19:51:32 linvdr user.info vdr: [2526] info: Atmolight: Eingabedevice konnte nicht geöffnet werden!


    Ein Test der beiden /dev/videoX ergibt:

    l

    Quote

    invdr: cat /dev/video0
    cat: Read error: Input/Output error
    linvdr: cat /dev/video1
    cat: /dev/video1: No such device

    Trotz des Input/Output errors habe ich ein Bild auf dem Fernseher.
    VDRAdmin ist nicht geladen, so dass das device auch nicht anderweitig blockiert sein sollte.

    Hat jemand eine Idee woran das liegen könnte?
    Was kann ich noch testen um dem Fehler auf die Spur zukommen?

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • In meiner Verzweiflung habe ich nun die Steckplätze von Budget- und FF-Karte getauscht. Bringt natürlich nichts! Atmolight will immer noch /dev/video1 öffnen. Die FF-Karte hat aber nach wie vor /dev/video0.

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • ich hab am wochenende auch versucht atmolight zum laufen zu bringen und hab die gleiche fehlermeldung. Nur ich habe nicht einmal /dev/videox :schiel. Ist mittlerweile schon ein alteres systeem und ich hab keine ahnung wie ich die devices bekomme

    Ycat

  • ycat: Kannst du mehr Informationen geben?
    Wie sieht dein Aufruf von Atmolight aus?
    Was ergibt "logread |grep -i atmo" ?
    Laufen bei dir kritische Plugins?
    Darf Atmolight auf das device /dev/video0 zugreifen?


    Ich selbst komme immer noch nicht weiter!

    Hier ein Test der Zugriffsrechte und der Gruppenzugehörigkeit:


    Unter LinVDR gibt es nur den Benutzer root.

    Bei mir laufen weder xawtv, tvtime noch vdradmin.
    AVARDS ist kein Plugin. Wie kann man testen, ob es aktiviert ist?

    Ich habe die Parameter des Aufrufs geändert indem ich -i VIDOE0, -i /dev/video0 und keine Angabe von -i probierte. All diese Eingaben sind nicht erlaubt.

    Was kann ich noch testen?

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • Das Plugin baut den Devicenamen aus "/dev/video" und dem VDR-Device-Index zusammen. Da der beim VDR immer bei 1 beginnt, heisst das Device für die 1. Karte dann /dev/video1 und nicht /dev/video0 - was dann wie bei dir in die Hose geht.

    Die Version 0.1.0 arbeitet fix auf /dev/video - probier die mal aus und poste dem Autor mal das Problem. Oder ändere in den Source zu 0.1.1 in inputffdvb.c, Zeile 45 mal:

    Code
    snprintf(buffer, sizeof(buffer), "%s%d", DEV_VIDEO, cDevice::PrimaryDevice()->DeviceNumber());

    nach

    Code
    snprintf(buffer, sizeof(buffer), "%s%d", DEV_VIDEO, cDevice::PrimaryDevice()->DeviceNumber()-1);

    arghgra

    Sanyo 51cm CRT, Sony SLV Stereo-VHS

    Edited once, last by arghgra (April 10, 2007 at 8:32 PM).

  • arghgra

    Vielen Dank für den Hinweis!

    Das Problem scheint demnach tiefer zu liegen! Dumm nur, dass ich unter LinVDR nicht kompilieren kann. Ich werde mich daher an Mahlzeit und den Autor des Plugins wenden.

    Was mich nur wundert, wieso nicht fast alle, die die Version 0.1.1 benutzen dasselbe Problem haben.

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • arghgra

    Es läuft! !! :grinzs

    Du hast mich auf die richtige Idee gebracht.
    Nachdem es kein Problem des /dev/video0 ist, sondern nur eine falsche Bezeichnung, hindert mich natürlich nichts, den Namen umzubiegen.
    Also /dev/video1 gelöscht und einen Link von /dev/video1 auf /dev/video0 setzen.
    Neustart und die Wand ist endlich farbig!

    Vielen Dank!

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • Nabend,

    Quote

    Da der beim VDR immer bei 1 beginnt, heisst das Device für die 1. Karte dann /dev/video1 und nicht /dev/video0 ...


    ist leider falsch (zumindest für v1.4).

    device.h:
    int DeviceNumber(void) const;
    ///< Returns the number of this device (0 ... numDevices).

    Beim VDR-Start bekomme ich zusätzlich in /var/log/messages folgenden Eintrag:
    "setting primary device to 1"
    Dieser wird durch folgende Zeile in device.c erzeugt:
    "isyslog("setting primary device to %d", n + 1); "

    Bei mir ist das Primary Device folglich 0 -> /dev/video0.
    Würde mich auch schwer wundern, wenn es anders wäre.
    Es funktioniert hier schließlich mit der 0.1.1.

    Fridi: Bitte teile mir mal die Ziffer mit, die bei dir im Log-File bei
    "setting primary ..." steht.

    Gruß Samael

    Für Heilige gibts 'nen Heiligenschein - für Fernseher das Solarstorm.

  • Wo du recht hast, hast du recht - ich hab mich zu schnell vom PrimaryIndex in der setup.conf und fridis Fehler zur Aussage hinreissen lassen ...

    arghgra

    Sanyo 51cm CRT, Sony SLV Stereo-VHS

  • Samael

    Hier ein Auszug aus dem logread:

    Quote

    linvdr user.info vdr: [2544] setting primary device to 2

    Gruß,
    Fridi

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • Fridi:

    Dann läuft das Atmolight-Plugin korrekt.

    Was ich nicht verstehe ist, wieso Dein VDR als Primary Device 2, also
    /dev/video1, benutzt, wenn das eigentlich gar nicht existiert (1. Post).
    Wobei, ich sehe gerade, in Deinem 3. Post gibt es das Device.
    Irgendetwas stimmt grundsätzlich nicht!?

    Welche Plugins laufen bei Dir noch?

    Samael

    Für Heilige gibts 'nen Heiligenschein - für Fernseher das Solarstorm.

  • Samael

    Ein /dev/video1 existiert bei mir nicht.
    Das ls -al /dev/videoX kann man natürlich auf jedem aufgeführten Device machen, was aber nicht heißt, dass etwas dahinter steckt, wie das cat /dev/video1 ja auch gezeigt hat.

    Ich hänge mal das komplette logread an. Ich kann mir nicht erklären weshalb video1 statt video0 gewählt wird.

    Hier das logread:

    Files

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • Hallo Fridi,

    nachdem ich mal einen Blick in Dein Log geworfen habe, habe ich eine Vermutung.
    Ich nehme an, daß die Treiber für die Budget-Karte zuerst geladen werden -> Device Nr. 1 für VDR, aber kein /dev/videoX.
    Dann werden die Treiber für die FF geladen -> Device Nr. 2 für VDR + /dev/video0 (da vorher keins vorhanden).
    Dann ist auch klar, wieso das Problem nicht bei mir auftritt. Ich lade die
    Treiber "von Hand" und da kommt die FF zuerst.

    Wie ich das Problem jetzt löse, weiß ich noch nicht. Ich habe es aber
    mal in meine Liste für die nächste Version aufgenommen.

    Samael

    Für Heilige gibts 'nen Heiligenschein - für Fernseher das Solarstorm.

  • Deine Theorie ist gut!
    Durch Zufall habe ich eine Einstellung bei den DVB-Einstellungen entdeckt. Dort stand

    Quote

    Primäres DVB-Interface: 2


    Ich habe es auf 1 umgestellt, den Rechner neu gestartet und im logread geschaut:

    Quote

    Apr 11 23:32:01 linvdr user.info vdr: [2562] setting primary device to 1
    Apr 11 23:32:01 linvdr user.info vdr: [2562] device 1 has no MPEG decoder
    Apr 11 23:32:01 linvdr user.info vdr: [2562] trying device number 2 instead
    Apr 11 23:32:01 linvdr user.info vdr: [2562] setting primary device to 2

    Danach steht der Wert bei den DVB-Einstellungen wieder auf 2.

    Ich denke das bestätigt deine Theorie.

    Mein VDR (hier klicken)

    Software: yavdr 0.6
    Gehäuse: "The Case" mit 7" Farb-TFT 1280x800, Atmolight "Classic"
    Board: ASUS M4A87TD EVO, AMD Athlon 250e, 4 GB RAM,
    Graphik: Zotac Nvidia GT520 Zone passiv
    TV-Karte: Mystique SaTiX-S2 V2 CI Dual
    Speicher: 120 MB SSD, 2 TB SATA-Festplatte, LG 4040 DVD-Brenner
    Fernbedienung: Logitech Harmony 750, Atric IR-Einschalter Rev. 4

  • Hi,

    wills nur nochmal der Vollständigkeit halber anmerken:

    das Problem hatte ich schon vor einiger Zeit, in meinem System mit FF, Budget und PVR(IVTV).

    Gelegentlich hat atmo das falsche Device gewählt, lag an der Reihenfolge in der die Module geladen werden. Und bei Kubuntu macht das udev. --> lädt alle gleichzeitig, und welches schneller ist gewinnt :)
    -->zufällig gings manchmal nicht.

    Workaround: lade die Module jetzt manuell, dvb_ttpci zuerst, dann gehts!

    PrimaryDevice steht bei mir immer auf 1, jedoch gehört /dev/video0 nciht immer zwingend der 1. FF!

    Grüße,
    Simon

    Edited once, last by samc (April 12, 2007 at 9:32 PM).

  • Beim VDR benutzt cDvbDevice::GrabImage() immer das richtige Device. Kann das atmo-Plugin das nicht auch so machen?

    Wenn dieser Patch irgendwann mal in die DVB-Treiber einfließt, kann das atmo-Plugin die GrabImage-Funktion einer FF-Karte benutzen. Das funktioniert bei mir wunderbar.

    Gruß
    e9hack

  • Hi,

    mit Grabimage wirds wohl nie gehen, weil das ganze mit einem "Ringpuffer" läuft; in Anführungszeichen deshalb, weil er nur zwei Einträge hat :)

    Während atmo ein Bild berechnet, wird bereits das nächste in den anderen Puffer gecaptured.
    (nach Vorbild der v4l doc)

    Wie macht das Grabimage mit den Devicenummern? Hab glaub irgendwann mal in den Code reingeschaut und festgestellt, dass die v4l Operationen die selben sind mit Ausnahme des Ringpuffers aber welches Device geöffnet wurde weiss ich auch nimmer...hab die Sourcen leider auch nicht mehr griffbereit...jemand anders vielleicht?

    Grüße,
    Simon

  • VDR zählt die FF-Devices hoch:

    devVideoIndex = (devVideoOffset >= 0 && HasDecoder()) ? devVideoOffset++ : -1;

    Obwohl hier eigentlich der DVB-Treiber geändert werden müsste oder unter /dev/dvb noch ein zusätzliches Video-Device angelegt werden könnte.

    arghgra

    Sanyo 51cm CRT, Sony SLV Stereo-VHS

    Edited once, last by arghgra (April 12, 2007 at 11:44 PM).

  • Quote

    Original von samc
    Hi,

    mit Grabimage wirds wohl nie gehen, weil das ganze mit einem "Ringpuffer" läuft; in Anführungszeichen deshalb, weil er nur zwei Einträge hat :)

    Während atmo ein Bild berechnet, wird bereits das nächste in den anderen Puffer gecaptured.
    (nach Vorbild der v4l doc)

    Das kann ich so nicht bestätigen. Ich habe alles von inputsoftdevive.c nach inputffdvbc.c kopiert und den 'Bugfix für die Image-Größe' gefixt. SoftDevice und der VDR berechnen die Image-Größe unterschiedlich. Mit meiner bescheidenen und vorläufigen Hardware (nur ein Kanal mit 3 x 8 LED) sieht es eigentlich ganz gut aus.

    Gruß
    e9hack

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!