Python-Programm startet nicht ohen Monitor und Tastatur

Ein neuer Artikel wurde veröffentlicht
  • Hallo zusammen, ich habe folgendes Problem:


    Für einen Flipperautomaten den mein Bruder selbst kreiert und gebaut hat, soll die Soundausgabe über den Raspberry PI stattfinden. Das funktioniert auch alles anstandslos und vorbildlich. Die Sache hat nur einen Haken: Das Programm startet nicht, wenn kein Monitor angschlossen ist. Der Raspberry selbst startet auch ohne Monitor.


    Ich habe das Python-Programm als Autostart eingebunden, so dass es nach dem Starten des Raspberrys ebenfalls sofort startet. Und wie bereits erwähnt, hängt ein Monitor am Raspberry, läuft alles geradezu vorbildlich!


    Wenn ich das Programm erst über eine IDLE starte, nachdem der Raspberry bereits hochgefahren ist und kurz vorher den Monitor abklemme, startet das Programm ebenfalls anstandslos.


    Hat jemand eine Idee woran es liegen könnte? :@

  • Es gibt verschiedene Formen des Autostarts... Leider erwähnst du nicht welche du verwendest?!


    Um was für ein Programm es sich handelt, schreibst du ebenfalls nicht?

    Zwar erwähnst du IDLE aber ein möglicher Zusammenhang verwirrt...


    Also bitte exakt beschreiben wie du was und wo eingetragen hast, und das betreffende Script zeigst du am besten ebenfalls.

  • Erstmal danke für das Interesse.

    Ich habe das Programm als Autostart wie folgt eingebunden:

    in /etc/rc.local habe ich eine entprechende Autostartdatei erstellt.

    Ich habe es wie hier beschrieben gemacht autostart.

    (Bin noch Neuling was Rapberry PI betrifft)


    Das Programm kann ich derzeit hier nicht eingeben, da ich den Raspberry PI gerade nicht hier habe um den Code zu kopieren. Kann das aber nachholen.

    Im Grunde geht es mir aber prinzipiell darum ein Pythonprogramm, das als Autostart anleget wurde, ohne Monitor und Tastatur nutzen zu können, zum Beispiel um den Raspberry PI an einen Roboter oder einer anderen Einheit anzuschließen.


    Oder gibt es ein prinzipielles Verfahren, welches man einhalten muss, um so etwas zu erreichen? Worauf muss man achten?

  • Worauf muss man achten?

    • Verwendung von absoluten Pfaden im Skript
    • Verwendung von absoluten Pfaden beim start des Skriptes
    • entweder Skript ausführbar machen und im Skript 1. Zeile shebang hinterlegen
    • oder Skript mit ensprechenden Programm starten bsp. python3 /pfad/xyz.py
    • Läuft das Skript in einer Schleife, bzw. soll der autostart während das Skript läuft weiter gearbeitet werden, so muss ein & hinter dem Aufruf gesetzt werden, bsp. python3 /pfad/xyz.py
    • Je nachdem wie das Skript programmiert worden ist, Ausgaben umleiten. Nähres hier
    • Verwendete Pythonmodule müssen auch dem ausführenden Benutzer zur Verfügung stehen (ist zwangsläufig nicht immer der Fall wenn man es manuell ausführt und dann über autostart)


    Keine Garantie auf Vollständigkeit der oben aufgezählten Punkte.


    Kleine Ergänzung zu dem oben angegebenen Link von dir, das Tutorial ist von 2015 und teils nicht mehr aktuell. Bsp. statt init.d kommt jetzt systemd zum Zuge.

    Grundsätzlich immer auf aktualität der Tutorials achten, vorallem wenn es zu Problemen kommt.

  • passendes Netzteil, manchmal reicht der Saft nicht und mit Monitor kommt zusätzlich über HDMI was rein.

    Der Monitor kann auch nicht erkannt werden, das Aushandeln klappt nicht immer das müssen die HDMI Schalter im PI gesetzt werden config.txt.


    Es gibt eine Menge Fehlermöglichkeiten die es zu beseitigen gilt.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Gib mal folgendes in der /boot/config.txt ein:

    hdmi_force_hotplug=1

    Dann neu booten.

    Damit wird der HDMI-Ausgang auf on geschaltet, obwohl kein Monitor dranhängt.

    Ist nur ein Versuch.


    MfG


    Jürgen

  • sieht trotzdem nach Netzteil aus


    hochfahren -> erhöhter Strombedarf erst Recht mit angeschlossener Tastatur, mit Monitor reicht es!

    hochgefahren ohne alles, Tastatur Monitor funktioniert gerade so -> dann Monitor anstecken läuft.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • sieht trotzdem nach Netzteil aus

    warum?

    Das Programm startet nicht, wenn kein Monitor angschlossen ist.

    Also entweder verstehe ich das Problem falsch, oder ihr.


    Sein Problem ist doch, dass wenn KEIN Monitor angeschlossen ist, sein Pythonprogramm nicht automatisch startet. Startet das Programm überhaupt automatisch oder nur manuell?

  • Sein Problem ist doch, dass wenn KEIN Monitor angeschlossen ist

    dann kommt im Start auch keine Zusatzenergie über HDMI vom Monitor

    Pin 18/19

    https://de.wikipedia.org/wiki/…tion_Multimedia_Interface


    Den Fehler hatten wir hier schon mal bei einem anderen User!

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Da er von sonst keinen Problemen spricht, sondern nur von dem einen Script was dann nicht starten will, würde weiterhin ermuten dass das Script ein Video Device benötigt, wenn aber kein Monitor angeschlossen ist kann es auch auf kein solches Device zugreifen, beispielsweise wenn es pygame verwendet - daher fragte ich explizit nach dem was das Script macht. Ohne das betreffende Script zu sehen kann man nur weiter raten.


    Seine Beschreibung im vorletzten Satz deutet aber auch auf ein Pfad Problem hin... Wenn ein Script in IDLE funktioniert aber ohne nicht... Wäre auch ein bekanntes "Problem".

  • Die Frage ist, woran der TE erkennt, dass das Script nicht startet. Wie ist den die Soundausgabe eingestellt? Wie prüfst Du, ob das Script startet? Wohin bootet der Raspberry beim Start? Bis in die grafische Oberfläche? Und zu guter letzt, was eigentlich als erstes geschehen sollte, was sagen die Logs dazu?

    Benutzt du Stretch?

  • Sorry wegen meiner 'langen' Abwesenheit. Über die Feiertage war es mir nicht möglich hier hineinzusehen.


    Ich würde das Programm gerne hier veröffentlichen, kann es leider aber noch immer nicht, weil ich den Raspberry PI nicht hier habe.

    Noch einmal zu meinem konkreten Problem:

    Wenn ich den Raspberry PI mit Monitor starte, läuft alles ganz normal (im Auostart). Daher nehme ich an, dass es kein Problem mit den Pfaden geben kann. Das Programm erhält über das Pi Face Signale und gibt über einen kleinen Lautsprecher bestimmte Sounds hinaus. Das funktioniert mit angeschlosenem Monitor und einer Tastatur einwandfrei und fehlerlos. Geradezu vorbildlich, zuverässig und zeitlich perfekt.


    Wird der Monitor oder die Tastatur entfernt und der Rapberry PI gestartet, funktioniert das Programm nicht. Es kommt kein Ton heraus. Wird nachträglich ein Monitor angeschlossen bleibt der Bildschirm schwarz und der Raspberry reagiert auf gar nichts. Ein Neustart ist notwendig.

    Schmeiße ich mein Flipper-Programm aus dem Autostart hinaus und starte den Rapberry PI ohne Monitor oder Tastatur und schließe den Monitor erst nach dem Hochfahren an, so läuft der Raspberry PI ganz normal (nur die Auflösung auf dem Monitor stimmt nicht).


    Ich schließe einmal daraus, dass es etwas mit dem Pythonprogramm zu tun hat. Würde ein Pfad nicht stimmen, könnte das Programm als Autostart gar nicht laufen, tut es aber.

    Es ist sehr frustrierend, wenn ein Programm nicht ausgeführt wird, weil ein Monitor oder eine Tastatur nicht angeschlossen ist. Ich habe schon verschiedene Computer/Roboter programmiert. Selbst wenn man auf eine Einheit zugreift, die nicht angeschlossen ist, hat es ein solches Problem nicht gegeben. Entweder spuckt das Programm eine Fehlemeldung aus, bricht komplett ab oder läuft einfach weiter.

    Da kein Monitor angeschlossen ist, ist der Raspberry im Grunde wie eine Black-Box. Ich habe keine Ahnung was das Problem sein könnte.

  • Ich bleibe auch bei schwachbrüstigem Netzteil als Ursache. :shy: 


    Da kommt bestimmt zu wenig Saft am Pi Face an, das durch den Monitor über HDMI kompensiert wird. Aber das meinte ich schon in meinem obigen Beitrag und jar ging auch schon näher darauf ein.

  • So, nun kann ich endlich den Code abbilden.


    Zum Netzteil: liefert unbegrenzt 5V, 30 Ampere (PC-Netzteil)


    Der Ton wird aus einem Lautsprecher ausgegeben, der an einer Soundkarte hängt, die über einen USB-Anschluss verbunden ist.


    Ich beantworte gerne alle Fragen, doch bitte bedenkt, dass ich Neuling bin und mich nicht bis in die Tiefen des RaspberryPIs auskenne.


    Vielen Dank auf jeden Fall für eure Hilfe :-)