Beep nach Systemstart und Shutdown

  • Hallo Forum,

    ich hätte gern ein akustisches Signal, das mir anzeigt, ab wann der Raspi per SSH/RDP erreichbar ist. Dazu habe ich eine Crontab-Anweisung eingefügt, die ein entsprechendes Script nach dem Booten startet:

    @reboot sudo python /home/pi/beep.py

    Problem 1: das funktioniert nicht, wenn der Pi headless bootet
    Problem 2: ich möchte auch einen Beep nach (bzw. ganz unmittelbar vor) dem Herunterfahren, es gibt aber kein Crontab-Tag @shutdown o.ä.

    Hättet Ihr eine Idee, wie ich an die Piepser komme?

  • Hallo Herr Kaiser,


    Hallo Forum,

    ich hätte gern ein akustisches Signal, das mir anzeigt, ab wann der Raspi per SSH/RDP erreichbar ist. Dazu habe ich eine Crontab-Anweisung eingefügt, die ein entsprechendes Script nach dem Booten startet:

    @reboot sudo python /home/pi/beep.py

    Problem 1: das funktioniert nicht, wenn der Pi headless bootet
    Problem 2: ich möchte auch einen Beep nach (bzw. ganz unmittelbar vor) dem Herunterfahren, es gibt aber kein Crontab-Tag @shutdown o.ä.

    Hättet Ihr eine Idee, wie ich an die Piepser komme?

    zu 1.:
    Dein Skript verwendet durchgehend absolute Pfade? Der Aufruf selber nutzt es schon mal nicht. Daher weißt Du gar nicht, ob zu dem Zeitpunkt, an dem @reboot "greift" überhaupt ein Pfad der ausführbaren Programme (dargestellt in der Umgebungsvariablen PATH) existiert - und sollte dieser existieren, ob er auch schon einen Pfad zu Python enthält.

    zu 2.:
    Bei sowas sind schon ganz Andere gescheitert. Da musst Du mit Compilersprachen heran, die Code erzeugen, der noch laufen darf, wenn das System "eigentlich dabei ist, alles zu vergessen". Da habe ich aber außer theoretischen Beiträgen nichts Konstruktives gesehen.

    Ich bediene mich hier einer Eigenheit von GPIO14 und einer über einen Widerstand betriebenen LED:
    - LED blinkt: RPi bootet
    - LED leuchtet: RPi ist hochgefahren
    - LED glimmt: RPi ist heruntergefahren - hängt aber noch an der Spannungsversorgung
    - LED aus: RPi hängt nicht mehr an der Spannungsversorgung


    Das kannst Du prinzipiell auch mit einem Piezo-Lautsprecher betreiben.

    Eine andere Möglichkeit besteht darin, die Stromstärke, die der Raspberry Pi zieht, als Informationsquelle für einen externen Piepser zu nutzen. Denn bei jedem der oben beschriebenen 4 Fälle zieht der RPi eine andere Strommenge. Somit kannst Du "Booten" und "Heruntergefahren" am Stromverbrauch erkennen und mit entsprechender Elektronik pfeifen, piepsen oder was auch immer...

    Wenn es Dir nur darum geht, den Zustand des "Herunterfahrens" zu detektieren: Über einen ESP8266 / Arduino oder dergleichen, kannst Du das Bitbanging erkennen, mit dem unmittelbar vor Abschalten der Spannungsversorgung die PWR-LED 7 mal in konstanter Frequenz blinkt. Auf dieses Signal kann eine externe Hardware reagieren und ebenso pfeifen oder piepsen.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (29. Mai 2017 um 20:49)

  • Gib mal < beep 10 > in der Kommandozeile ein. Da merkst Du, ob beep vorhanden ist, oder wie Du es installieren kannst.
    Den beep Befehl trage dann in /etc/rc.local (vor exit) ein. Das File wird als letztes beim Multiuser-Start abgearbeitet.
    Auch Dein Python-Beep kannst Du dort eintragen, wenn es ohne shell - beep funktioniert.

    Mit system.d bin ich noch auf Kriegsfuss, aber im System V wird beim Shutdown /etc/rc6.d abgearbeitet. Da müsste noch schnell ein Beep gestartet werden, bevor der Sound gekillt wird.

    Servus !


    PS An der Audioklinke ist aber schon etwas angesteckt, was den gewünschten Beep hörbar macht.

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (29. Mai 2017 um 09:39)

  • Was steht denn in deiner beep.py drin?

    ich hätte gern ein akustisches Signal, das mir anzeigt, ab wann der Raspi per SSH/RDP erreichbar ist.

    Beim PC kann man ein "beep" über den SystemSpeaker (pc-speaker) erzeugen indem man in der bash folgendes ausführt:

    Code
    echo -en "\007"

    In wiefern sich das für HDMI oder 3,5" Klinke nutzen lässt, müsstest du selbst ausprobieren.

    Einen Befehl "beep" gibt es nicht standardmäßig. Dafür müsste man erst das Paket beep installieren

    Code
    sudo apt-get install beep


    Problem 2: ich möchte auch einen Beep nach (bzw. ganz unmittelbar vor) dem Herunterfahren, es gibt aber kein Crontab-Tag @shutdown o.ä.

    Dann müsstest du systemd verwenden und kurz bevor der Audio Treiber entladen wird, ausführen lassen.
    Wenn es noch später sein soll bliebe dir nur ein Buzzer über GPIO anzusprechen, allerdings bist du dann auch an den Zeitpunkt gebunden bis der GPIO Treiber entladen wurde...
    Und als letztes der von Andreas genannte Weg.


    Man kann einen Graphen erzeugen lassen, wie lange das booten gedauert hat aber vor allem wann welcher Dienst/Script gestartet wurde, oder wie lange es den Bootvorgang ausgebremst (dunkelrot) hat:

    Code
    sudo systemd-analyze plot > /tmp/startup.svg


    die dadurch erzeugte *.svg kann man dann mit einem Webbrowser betrachten, entweder über einen Webserver auf dem Pi, oder die Datei auf den eigenen Computer übertragen und via Drag&Drop zB in Firefox.

  • Oh, super! Danke für eure Infos! Da hab ich jetzt schon Einiges, mit dem ich mich heute nach Feierabend beschäftigen kann. Zwischendurch nur kurz noch eine Ergänzung. Vielleicht war es missverständlich, dass ich von "Beep" gesprochen habe. Ich möchte keinen Systemklang ausgeben, sondern realisiere das Piepen über einen Piezo-Buzzer via GPIO. Das entsprechende py-Script produziert auch diesen Ton erfolgreich, nur ist der Ansatz, das über Crontab ablaufen zu lassen, offensichtlich der falsche.

  • So, da bin ich wieder. Habe festgestellt, dass ich mich doch tiefer in die Materie einarbeiten muss. Dafür sind die Stichworte "system.d" und "rc6.d" schon einmal gute Startpunkte. Vielen Dank! Werde mich da einlesen. Zwischenzeitlich finde ich die optische Variante per LED-Anzeige auch nicht uninteressant, daher:

    Andreas: Ich habe das jetzt mal so realisiert: Raspi 3, rote LED (Vf=2.0V, If=50mA), Anode an TXD (=GPIO14?), Kathode an GND, dazwischen ein Vorwiderstand von 100 Ohm. Die LED leuchtet sehr kräftig und durchgängig für einige Sekunden während des Hochfahrens, dann schaltet sie ab. Blinken während des Bootens oder Glimmen nach Shutdown zeigen sich nicht. Muss ich noch etwas Spezielles berücksichtigen, damit der Status wie von dir beschrieben angezeigt wird?

    Danke schonmal - und ich hoffe es ist ok, dass ich diese Zwischenfrage hier und nicht im GPIO-Unterforum stelle.

  • Hallo Herr Kaiser,


    Andreas: Ich habe das jetzt mal so realisiert: Raspi 3, rote LED (Vf=2.0V, If=50mA), Anode an TXD (=GPIO14?), Kathode an GND, dazwischen ein Vorwiderstand von 100 Ohm. Die LED leuchtet sehr kräftig und durchgängig für einige Sekunden während des Hochfahrens, dann schaltet sie ab. Blinken während des Bootens oder Glimmen nach Shutdown zeigen sich nicht. Muss ich noch etwas Spezielles berücksichtigen, damit der Status wie von dir beschrieben angezeigt wird?

    Danke schonmal - und ich hoffe es ist ok, dass ich diese Zwischenfrage hier und nicht im GPIO-Unterforum stelle.

    Autsch ... Nimm lieber sog. Low-Current-LEDs. Die leuchten bei 2mA richtig hell. Als Vorwärtswiderstand passen dann so 680 Ohm.

    Wenn Du bei Deiner LED bleiben möchtest, dann erhöhe den Widerstand auf ebenso 680 Ohm. Leuchtet die LED wenigstens beim Reboot? Oder nur beim ersten Booten?

    Hoffentlich hast Du mir mit Deinem Aufbau nicht schon was gefetzt.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Huch ... scheint aber alles gut gegangen zu sein. Da ich keine Low-current-LEDs habe, habe ich den Widerstand auf 1kOhm erhöht. Außerdem habe ich zwischenzeitlich gelesen, dass über raspi-config die serielle Schnittstelle aktiviert werden muss. Das habe ich getan, und jetzt leuchtet die LED während des gesamten Betriebs und erlischt nach dem Shutdown. Das finde ich sogar noch besser als ein Glimmen. Trotzdem frage ich mich, woran es liegen könnte, dass bei mir nichts blinkt und glimmt ...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!