NewTron-Radio: Auflösungsunabhängiges Tron-Radio

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Die Fehlermeldung, soweit ich das Foto entziffern konnte, deutet auf das Problem: Unable to open mouse! So wie ich das sehe musst du ts_calibrate noch ausführen und eine passende udev-rule erstellen da du versuchst, das Radio im Konsolenmodus auszuführen. Wie das geht, ist in Beitrag #233 beschrieben. Im Desktopmodus sollte das Radio aber jetzt schon funktionieren...


    Gesendet von meinem D5103 mit Tapatalk

  • Hallo veloci,


    Das Radio funktioniert im Desktop Modus. Leider nur in einem Fenster das sich nicht optimal maximieren lässt.
    Mein Ziel wäre es das Radio nach starten des Pi direkt zu laden, ohne Anmeldung etc.
    Um das zu erreichen und den Fenstermodus zu umgehen wollte ich es über die Konsole starten und in den Autostart hängen. Sowie die Benutzer Anmeldung weg lassen bzw. Automatisieren.
    Ist diese Vorgehensweise sinnvoll?


    Bei ausführen von calibrate kommt folgende Meldung


    Muss ich mir jetzt diese overlay Datei besorgen und integrieren? Wo bekomme ich sie her? Bei notro war leider nix zu finden.

  • Alles wurde hier in diesem Thread schon mal besprochen und geschrieben, wie wäre es jetzt mal mit einwenig Suche in diesen Thread und mal lesen!


    Was du beschreibst und möchtest sind alles Dinge die schon andere haben. Doch lebt so ein Thread nicht von Wiederholungen!!!

  • Paulaner hat recht, das meiste wurde hier zum größten Teil schon besprochen.
    Aber meistens hängt es an den Feinheiten.
    Deshalb:


    Quote

    Das Radio funktioniert im Desktop Modus. Leider nur in einem Fenster das sich nicht optimal maximieren lässt.


    Das kann im Newtron-Settings-Menü (das Zahnrad) geändert werden: Häkchen bei Fullscreen setzen und nach dem Ändern speichern und neustarten nicht vergessen).


    Quote

    ... wollte ich es über die Konsole starten und in den Autostart hängen. Sowie die Benutzer Anmeldung weg lassen bzw. Automatisieren.


    Ist diese Vorgehensweise sinnvoll?


    Ob Sinnvoll oder nicht muß jeder für sich selbst entscheiden. Auf jeden Fall ist auch im Desktopmodus ein automatischer Login und ein Autostart des Radios möglich.


    Quote

    Muss ich mir jetzt diese overlay Datei besorgen und integrieren? Wo bekomme ich sie her? Bei notro war leider nix zu finden.


    Da die Anzeige auf deinem Display bereits funktioniert brauchst du die Overlaydatei nicht. Diese enthält die Hardwarebeschreibung und soll einem dabei helfen, die Konfiguration zu vereinfachen -> kein Ändern von /boot/cmdline.txt und /etc/modules mehr nötig, da dies bereits in der Overlaydatei steht.
    Was du brauchst, ist eventuell der passende Overlay für den Touch (der in einer passenden Overlaydatei ebenfalls bereits enthalten ist).
    Warum jetzt die Fehlermeldung bei dir Auftaucht: ts_calibrate versucht standardmäßig auf /dev/touchscreen/ucb1x00 (wenn die inputapi nicht verwendet wird) bzw. auf /dev/input/event0 (debian mit inputapi) zuzugreifen. Wenn es dort keinen Touch findet, gibts halt einen Fehler...


    Versuch also erstmal herauszufinden, über welches Device dein Touch ausgelesen wird.
    Hilfreich kann hierbei das Programm 'evtest' (muss evtl. noch mit apt-get installiert werden) und/oder die Ausgabe von 'dmesg' sein.


    Dann startest du ts_calibrate nicht via 'sudo ts_calibrate' sondern wie folgt:

    Code
    sudo -s
    TSLIB_TSDEVICE=/dev/input/eventX ts_calibrate


    wobei /dev/input/eventX hier exemplarisch für dein herausgefundenes Device steht.

    Edited once, last by veloci ().

  • Hallo Ihr, habe alles nochmal neu aufgesetzt, erhalte aber immernoch leider folgende Fehlermeldung:


    No ConfigFile found, using defaults
    using fbcon from SDL_VIDEODRIVER env var.
    <class 'pygame.error'>: Unable to open a console terminal
    Driver fbcon from SDL_VIDEODRIVER env var failed!
    Is your SDL_VIDEODRIVER entry correct?
    Also check:
    SDL_FBDEV = /dev/fb0
    SDL_MOUSEDEV = /dev/input/touchscreen
    SDL_MOUSEDRV = TSLIB
    Are theese correct? Set them in Line 30ff.
    Traceback (most recent call last):
    File "/usr/local/lib/newtron-v2/newtron-radio.py", line 1704, in <module>
    disp_init()
    File "/usr/local/lib/newtron-v2/newtron-radio.py", line 323, in disp_init
    raise Exception('No suitable video driver found!')
    Exception: No suitable video driver found!



    Ich konnte in der Konsole den bildschirm per sudo ts-calibrate kalibrieren und der Test läuft auch. FB1 ist in FB0 geändert.
    Hat jemand eine Idee?


    Gruß wuchy

  • Quote

    <class 'pygame.error'>: Unable to open a console terminal


    Als welcher Benutzer bist du auf der Konsole angemeldet und als welcher Benutzer startest du das Radio?
    Und wie startest du das Radio? Remote per ssh/putty? Direkt von der Konsole? Autostart in /etc/rc.local?


    Die Meldung weist auf ein Rechteproblem hin! Stelle sicher, dass der Benutzer, der das Radio startet auch auf /dev/fb0 zugreifen darf.

  • Ich melde mich über Putty etc. als Benutzer Pi an. Die Installation der Dateien erfolgte auch über Putty mit dem Benutzer Pi.
    In der rc.local starte ich mit sudo newtron-Radio.
    Welche Verzeichnisse/Dateien müsste ich mit neuen Rechten versehen und wie müsste ich das anstellen? Bin leider mit Linux noch nicht so vertraut.

  • meine /etc/rc.local sieht ungefähr so aus:

    Code
    ...
    SDL_FBDEV=/dev/fb0
    OWM_KEY=XXXXXXXXXXXXXXXXXXXXXXXX
    OWM_ID=YYYYYY
    export SDL_FBDEV OWM_KEY OWM_ID
    /usr/local/bin/newtron-radio &
    
    
    exit 0


    Wie du siehst ohne 'sudo'. Denn 'sudo' lässt nur bestimmte Umgebungsvariablen durch. 'sudo' ist an dieser Stelle auch unnötig, da rc.local sowieso als 'root' ausgeführt wird.


    Weiterhin:
    Wenn du das Radio per putty als User 'pi' startest, dann gehört die Konsole aber noch 'root' ->Zugriffsrechtefehler...
    Rechte ändern brauchst du deswegen normalerweise aber nicht.


    Was du machen kannst, ist, dich an der Konsole als User 'pi' anzumelden und das Radio (ohne 'sudo') von dort zu starten.
    Wenn du Beitrag #233 abgearbeitet hast, kannst du aber auch als User 'pi' per putty das Radio mit 'sudo newtron-radio' starten, da dann die Umgebungsvariablen auch bei sudo korrekt gesetzt sein sollten.

    Edited once, last by veloci ().

  • Hallo ihr, ich habe das Radio (fast) am laufen. Das Radio startet wunderbar im Konsolenmodus und lässt sich prima per Touch bedienen, aber nur, wenn zusätzlich eine USB-Tastatur angeschlossen ist. :s Starte ich das Radio ohne Tastatur erhalte ich o.g. Fehlermeldung, das kein Videogerät verfügbar ist. Ist die Tastatur wieder am Pi startet alles so wie es soll.

  • Auf einer Seite in der Bucht habe ich ein Image gezogen. für das
    5er.
    5inch_HDMI_Raspbian-150310.img


    Eine engl. Anleitung dazu '5inch-HDMI-LCD-UserManual-EN.pdf', V1.1.9, March, 10
    th , 2015.
    Auch speziell für den Touch.
    Die Google Deutsch übersetzten Anleitungen stiften noch mehr Verwirrung.

    Edited once, last by paulaner ().

  • Das Image habe ich auch probiert, damit lief nur der Desktop-Modus. Jetzt läuft es auf jessi mit nach installierten Treibern. Ich denke das ich den Touchtreiber überprüfen muss. Nur wie?

  • Hallo Paulaner, ich habe den Beitrag #233 schon mehrere Male abgearbeitet, mit o.g. Erfolg. Leider scheint der Touch nicht richtig eingebundenen zu werden.

  • Jetzt läuft das Radio. :) "evtest" war mein Freund. Ich habe das Radio die ganze Zeit mit angesteckter USB-Tastatur installiert. Der Aufruf von evtest ergab "event2". Mit event2 habe ich dann die "95-ads7846.rules" erstellt bzw. den Beitrag #233 abgearbeitet und das Radio lief. Dann, wie oben bereits erwähnt, nach Abstecken der Tastatur und Neustart nicht mehr. Durch Zufall habe ich dann ohne USB-Tastatur nochmal "evtest" getartet und siehe da: event0! Jetzt nochmal den Beitrag #233 mit event0 abgearbeitet und das Radio läuft jetzt ohne USB-Tastatur bestens. Vielen Dank an veloci und paulaner :thumbs1:


    Hier nochmal der grobe Installationsablauf (vielleicht hilft es ja anderen)


    - aktuelles Jessi auf SD
    - Treiber nach Anleitung installiert ( http://www.waveshare.com/wiki/5inch_HDMI_LCD )
    - Newtron-Radio nach Beitrag #1 installiert und dann Beitrag #233 abgearbeitet (u.a mit Hilfe von "evtest" - sudo apt-get install evtest tslib libts-bin -)


    Was mir zusätzlich aufgefallen ist: das Installieren einer USB-Soundkarte beeinflusst auch den event-Wert. (normale Musik-Sticks jedoch nicht)


    Vielleicht hat ja jemand noch eine Idee wie man den aktuellen event , ohne Beeinflussung anderer USB-Geräte dauerhaft speichern kann?



    Gruß wuchy

  • wenn du eine rules angelegt hättest, wäre die Nummer nach event egal. Z.B.


    ## nano /etc/udev/rules.d/95-ads7846.rules

    Code
    cat <<EOF | sudo tee /etc/udev/rules.d/95-ads7846.rules
    SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
    EOF


    und dann ein Link, in dem Beispiel zu /input/touchscreen.


    Nun kann event 0-9 sein es wird immer nach touchsreen gelinkt.

    Edited once, last by paulaner ().

  • Danke Paulaner, jetzt weiß ich was ich falsch gemacht habe: Ich habe anstatt event[0-9] immer entweder 0 oder 2 eingetragen. Muss man aber erst drauf kommen, nochmals Danke für die Info! :)

  • Auch wenn das Problem bereits gelöst ist, hier nochmal eine kurze Erläuterung zu den udev-Regeln:


    Vielleicht hat ja jemand noch eine Idee wie man den aktuellen event , ohne Beeinflussung anderer USB-Geräte dauerhaft speichern kann?


    Dafür gibt es ja die udev-Regeln (siehe Beitrag #233).

    Code
    ## /etc/udev/rules.d/95-ads7846.rules erstellen #######################
    
    
    cat <<EOF | sudo tee /etc/udev/rules.d/95-ads7846.rules
    SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"
    EOF


    Dies erstellt eine Datei namens /etc/udev/rules.d/95-ads7846.rules mit dem Inhalt

    Code
    SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ADS7846*", SYMLINK+="input/touchscreen"


    '[0-9]*' ist hierbei ein Teil eines regulären Ausdruckes (Atom) der sagt: Kein, ein oder mehrere Zeichen im Bereich Null bis Neun.


    Wenn der Touchtreiber geladen wird meldet er sich am System mit seinem Namen an. Die udev-Regel versucht, anhand dieses Namens (hier irgendetwas, was mit ADS7846 beginnt) das richtige Device für das Eingabegerät zu finden.
    Eingabegeräte werden bei Verwendung von udev als /dev/input/eventX mit X>=0 vom udev-Subsystem eingebunden. Meldet der Kernel jetzt auf einem dieser Eingabegeräte die Kennung ADS7846 an udev, dann erstellt diese Regel einen Softlink von dem entsprechenden Device nach /dev/input/touchscreen. Das funktioniert eigentlich immer - unabhängig davon, wie viele Eingabegeräte (Tastatur, Maus,...) bereits vorhanden sind.
    Das Radio verwendet /dev/input/touchscreen als default, so dass es egal ist, an welchem /dev/input/eventX der Touchscreen nun tatsächlich hängt.


    Falls man einen anderen Touchtreiber hat, ist natürlich eine angepasste udev-Regel notwendig. Hier das Beispiel für einen Touchscreen, der stmpe-ts als Treiber verwendet (geklaut von notros fbtft-wiki)

    Code
    SUBSYSTEM=="input",ENV{DEVNAME}=="*event*", ATTRS{name}=="stmpe-ts", SYMLINK+="input/touchscreen"

    Edited once, last by veloci ().

  • paulaner, danke für den Tipp. Hast Du das Gehäuse schon? Was mich daran interessieren würde, ob die Blende vom Display auch einzeln verbaut werden kann. (zbsp. auf ein Holzgehäuse)