[ANNOUNCE] Alphacool LCD Display serdisplib Support

  • Eine neue Info aus dem kernel git:


    Zitat

    USB: disable autosuspend by default for non-hubs


    This patch (as965) disables autosuspend by default for all USB devices
    other than hubs. We are seeing too many devices that can't suspend or
    resume properly, the blacklist is growing unreasonably quickly, and
    this sort of thing should be handled in userspace.

  • wenns nicht so traurig waere, waere es zum lachen.


    jedenfalls scheint es meine (und nicht nur meine) meinung zu bestaetigen, dass hier wieder jemand herumgepatcht hat, ohne sich um die konsequenzen gedanken gemacht zu haben.
    aber wenigstens kann man in der naechsten zeit davon ausgehen, dass jene, die am neuesten kernel-stand sind, keine probleme haben werden.


    ein riesen grosses dankeschoen jdnfalls fuer deine bemuehungen!


    /wastl

  • Hallo,


    nach wiederholter Lektüre von diesem Thread habe ich diverse Stunden mit dem Versuch zugebracht, mein Display unter Linux zum Laufen zu kriegen, aber es ist mir nicht gelungen. Ich habe das externe Display von Alphacool und möchte es unter Ubuntu 7.10 einsetzen, technisch ist es in Ordnung (unter XP läuft es problemlos). Ich habe es mit testserdisp Version 1.96.9 und 1.97.7 probiert und es läuft einfach nicht stabil. Wenn ich das System starte kann ich testserdisp meistens 1-3 mal aufrufen, dann lässt sich das Programm zwar starten aber das Display bleibt dunkel und lässt sich nur durch einen Reset wiederbeleben. Im Logfile steht dann:


    Dec 2 22:43:53 localhost testserdisp: serdisp_alphacool_init(): request 'REQUEST_LCD_INIT' failed
    Dec 2 22:43:53 localhost testserdisp: serdisp_alphacool_init(): request 'REQUEST_LCD_CLEAR' failed
    Dec 2 22:43:53 localhost testserdisp: serdisp_alphacool_setoption(): request 'REQUEST_LCD_BKL' failed
    Dec 2 22:43:53 localhost testserdisp: serdisp_alphacool_setoption(): request 'REQUEST_LCD_BKL' failed
    Dec 2 22:43:53 localhost testserdisp: serdisp_alphacool_transfer_rect(): request 'REQUEST_LCD_GFX_WRITE_INIT' failed


    Mit graphLCD und LCDd wollte ich gar nicht lange experimentieren, solange die serdisplib nicht stabil funktioniert. Ist hier irgendjemand, der das Display problemlos benutzen kann? Dann wäre ich um ein paar Angaben zu den eingesetzten Software-Versionen, Kernel etc. dankbar.


    Das obengenannte Problem bleibt übrigens unverändert, egal ob autosuspend aktiv ist oder nicht, und ein selbst compilierter Kernel ohne autosuspend bringt auch keine Verbesserung. Seltsam :)


    Viele Grüsse,


    Thomas

  • hi,


    dieses problem habe ich bisher noch nicht gesehen. hast du vielleicht einen hub oder etwas ähnliches dazwischengeschaltet? hast du probleme mit anderen usb geräten unter linux?


    läasst es sich auch durch einen reconnect des displays wiederbeleben, oder musst du tatsächlich den rechner rebooten?


    gruß fen.

  • Das Alphacool Display läuft bei mir unter Ubuntu 7.10 ohne Probleme! Da Autosuspend standardmäßig deaktiviert worden ist, sollte diesbezügliche keine Modifikation nötig sein. Ich verwende serdisplib 1.97.7! Als Mainboard setze ich das Asus M2NPV-VM ein.


    Ich könnte mir gut vorstellen, dass es sich um ein generelles USB problem handelt (wie fen schon angedeutet hat)! darktom, du könntest auch mal versuchen den USB Port zu wechseln. Kann es bei USB Geräten auch zu IRQ Problemen kommen? Bin da jetzt nicht ganz im Bilde ;)


    Interessant wäre auch ein 'dmesg' Auszug, wenn das Problem auftritt!

  • Hallo,


    Hab jetz auch das Display 200x64 zum Laufen bekommen. Leider nur als root. Kann man das auch als normaler User?
    Als normaler User bekomm ich immer nur dies Fehlermeldung:

    Code
    Error: Unable to open usb:060c/04eb, additional info: SDCONNusb_open(): unable to find or open a matching device


    Welche Dateirechte muss man setzen?


    Gruß


    Flo

  • wenn die verwendete distribution udev verwendet:


    einfach ins /etc/udev/rules.d/ an ein bestehendes ruleset anhaengen oder zb eigenes '99-usbio.rules' erstellen mit folgendem inhalt:


    Code
    SYSFS{idVendor}=="060c", SYSFS{idProduct}=="04eb", GROUP="uucp", MODE="0660"


    GROUP je nach wunsch anpassen (zb. gruppe, der der vdr-user angehoert) oder vdr-user zur gruppe uucp hinzufuegen.


    /wastl


    ps: pfadangaben beziehen sich auf redhat / fedora. koennen bei anderen distris abweichen

  • Danke, Wastl!


    Hat geklappt.


    so, hab jetzt mein Display unter (K)ubuntu 7.10 zum laufen gebracht.
    Für alle, die das auch machen wollen folgendes:


    serdisplib-Installation mit libusb:


    Benötigte Pakete:

    • libusb
    • libusb-dev
    • build-essential
    • make
    • dpkg-dev (falls man aus der serdisplib ein Paket machen will)


    Nachdem die serdisplib (Version serdisplib-1.97.7) runtergeladen und entpackt ist, in der shell in den Ordner wechseln und

    Code
    ./configure --enable-libusb
    make
    sudo make install


    eingeben.


    In meiner fstab war der Eintrag für usbfs nicht drin. daher folgender Eintrag:

    Code
    usbfs           /proc/bus/usb   usbfs   rw,noexec,nosuid,mode=0664,gid=46 0  0


    Und die udev-rules müssen auch noch erstellt werden, so wie wastl und vdr-freak vorgeschlagen haben, aber noch ein wenig abgeändert:

    Code
    SYSFS{idVendor}=="060c", SYSFS{idProduct}=="04eb", GROUP="plugdev", MODE="0660"
    SUBSYSTEM=="usb_device", SYSFS{idVendor}=="060c", SYSFS{idProduct}=="04eb", ACTION=="add", RUN+="/bin/sh -c 'test -e /sys/$env{DEVPATH}/device/power/level && echo on > /sys/$env{DEVPATH}/device/power/level'"


    falls man nicht in der Gruppe plugdev (gid=46) drin ist, sollte man sich da noch eintragen.


    anschließend kann man das Display mit dem altbekannten

    Code
    testserdisp -n ALPHACOOL -p usb:060c/04eb -o OPTALGO=0


    getestet werden.


    Gruß und Danke nochmal für die Anleitungen von fen, vdr-freak und wastl!

  • Ich hab die option mit dazu geschrieben, um sicher zu gehen, dass es nicht an dem optimierten Algorhythmus liegt, dass ich nicht auf das LCD zugreifen konnte.


    Hier hats fen als Option mit angegeben, daher hab ichs ausprobiert. Kann man aber auch weglassen.

  • Hallo,


    ich habe nunmehr versucht seit geraumer Zeit mein Alphacool 200x64 USB Display ans laufen zu bekommen.
    Wenn ich showpic -c /etc/graphlcd.conf -d serdisp /etc/vdr/plugins/graphlcd/logos/FAB_l.glcd
    eingebe kommt die Fehlermeldung: ERROR: Failed initializing display serdisp
    Logread hat folgende Meldung:
    user.err showpic: serdisp: error: unable to open device usb:060c/04eb for display ALPHACOOL.
    Bei lsusb erscheint folgendes:
    (cDriver::Init).Bus 003 Device 002: ID 0d62:0004 Darfon Electronics Corp.
    Bus 003 Device 001: ID 0000:0000
    Bus 002 Device 001: ID 0000:0000
    Bus 001 Device 001: ID 0000:0000
    Bus 004 Device 003: ID 0bc7:0006 X10 Wireless Technology, Inc.
    Bus 004 Device 001: ID 0000:0000
    Bus 004 Device 002: ID 060c:04eb EEH Datalink GmbH


    Ein Test mit testserdisp -n ALPHACOOL -p usb:060c/04eb [-o "OPTALGO=0"] verläuft positiv.
    Es erscheint die Testanzeige.
    Weiß mir echt keinen Rat mehr.
    Kann mir bitte jemand helfen ?

  • Hallo Fen,


    mir ist aufgefallen das im Logread sowohl das Plugin /usr/vdr/plugins/libvdr-lcdgraph.so.1.4.5
    nicht geladen wird und somit auch nicht gestartet wird. Der Eintrag fehlt. Alle anderen Plugins werden geladen und gestartet. In welcher Datei kann ich den Eintrag zum laden des Plugins überprüfen? In welcher Datei wird festgelegt welche Plugins geladen werden sollen? Im OSD VDR System- VDR-setup - VDR Einstellungen - Plugins-Einstellungen - Plugins Setup und Aktiviere Plugins fehlt der Eintrag Graphlcd . :schiel


    Besten Dank im Voraus

  • Danke für Deine Hilfe.
    Ich habe jetzt herrausgefunden das bei Easyvdr die Plugins durch Eintragung in der /etc/vdr/sysconfig in der Zeile PLUGINLIST mit dem Parameter \"-Pgraphlcd -c /etc/graphlcd.conf -d serdisp\" zu starten ist nur bekomme ich immer noch folgende logread Einträge:
    Dec 25 10:38:55 (none) user.info vdr: [3286] initializing plugin: lcdcontrol (0.0.4): A plugin to control your TV via serial port
    Dec 25 10:38:55 (none) user.info vdr: [3286] initializing plugin: graphlcd (0.1.5): Output to graphic LCD
    Dec 25 10:38:56 (none) user.debug vdr: [3603] glcd_display thread started (pid=3603, tid=3603)
    Dec 25 10:38:56 (none) user.info vdr: [3286] initializing plugin: setup (0.3.1): VDR-Setup
    Dec 25 10:38:56 (none) user.info vdr: [3286] setting primary device to 1
    Dec 25 10:38:56 (none) user.info vdr: [3286] SVDRP listening on port 2001
    Dec 25 10:38:56 (none) user.info vdr: [3286] skin "EnigmaNG" not available - using "classic" instead
    Dec 25 10:38:56 (none) user.info vdr: [3286] starting plugin: arghdirector
    Dec 25 10:38:56 (none) user.info vdr: [3286] starting plugin: burn
    Dec 25 10:38:56 (none) user.debug vdr: [3604] burn-chain manager thread started (pid=3604, tid=3604)
    Dec 25 10:38:56 (none) user.debug vdr: serdisp: INFO: detected serdisplib version 1.97 (cDriver::Init)
    Dec 25 10:38:56 (none) user.err vdr: serdisp: error: unable to open device usb:060c:04eb for display ALPHACOOL. (cDriver::Init)
    Dec 25 10:38:56 (none) user.err vdr: [3603] graphlcd plugin: ERROR: Failed initializing display
    Dec 25 10:38:56 (none) user.debug vdr: [3603] glcd_display thread ended (pid=3603, tid=3603)


    Außerdem ist kein Bild auf dem TV zu sehen.


    Kann mir jemand seine Hilfe anbieten ?

  • Hallo,
    zunächst mal vielen Dank für diesen Thread, sonst hätte ich mein neues alphacool wohl immernoch nicht am Laufen !


    Ich hatte bei mir auch das Problem mit dem autosuspend und keine der hier beschriebenen Lösungen wollte bei meinem easyVDR so richtig funktionieren.
    Nach einem Neustart des Rechners blieb das Display immer dunkel und der vdr konnte gar nicht starten.


    Ich habe jetzt folgendes gemacht:
    Eine neue Datei z.B. mit dem Namen "alphacool_usbcore" (der Name ist aber egal) im Verzeichnis /etc/modprobe.d/ anlegen.
    In der Datei muss folgendes stehen:


    options usbcore autosuspend=-1


    Dadurch wird beim Laden des usbcore modules der autosuspend komplett abgeschaltet.
    Genauer kann das hier nachgelesen werden.

Jetzt mitmachen!

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