ser2net V4.3.3 Startverzögerung wegen Initialisierung der Schnittstellen

  • Im aktuellem Ser2Net (V4.3.3 yaml) benötige ich eine Startverzögerung, damit alle Schnittstellen vorher schon initialisiert sind.

    Ohne dieser Verzögerung muss ich manuell "service ser2net stop" und anschließend "service ser2net start" eingeben, damit alle Schnittstellen vorhanden sind und funktionieren.

    Wo und wie kann ich solch eine Verzögerung für ser2net einrichten?

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • ser2net V4.3.3 Startverzögerung wegen Initialisierung der Schnittstellen? Schau mal ob du hier fündig wirst!

  • ser2net startet automatisch mit dem Systemstart.

    Welcher Mechanismus dahinter steht, kann ich nicht sagen. Wie kann ich das herausfinden?

    Es ist das aktuelle Raspberry iOS Light 32bit.

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Hallo,

    ok, wenn beim Systemdstart startet, dann ist das höchstwahrscheinlich eine systemd Service Unit, die das startet.

    Mit dem Aufruf von `systemctl list-units` im Terminal solltest du rausfinden können, wie die zugehörige Unit heißt. Dann kann du dir die Unit-Datei raussuchen und schauen, was drin steht. Service Units erlauben nämlich, den Startzeitpunkt in Abhängigkeit von anderen Units festzulegen. Damit sollte dein Problem lösbar sein.

    Welche Schnittstellen braucht das Programm denn?

    Gruß, noisefloor

  • Ich finde unter systemctl list-units

    Code
    ser2net.service  loaded active running   Serial port to network proxy

    die Service Unit.

    Die Datei ist zweimal vorhanden.

    Einmal unter

    Code
    \\ccs-ht-rasphm\Root\var\lib\systemd\deb-systemd-helper-enabled\multi-user.target.wants

    in der die Datei leer ist, und einmal unter

    Code
    \\ccs-ht-rasphm\Root\usr\lib\systemd\system

    mit dem Dateiinhalt


    Das ser2net verwende ich bei einigen Raspberrys um z.B. die Schnittstellen

    Code
    /dev/ttyAMA0
    /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9ULXRVF

    an anderen Geräten zu nutzen.

    Ist das richtig, wenn ich in der Datei folgendes ergänze?

    Code
    [Timer]
    OnBootSec=30

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Hallo,

    nee, du hast ja keine Timer Unit.

    Wenn du die seriellen Ports brauchst sollte in die Unit rein, dass sie erst gestartet wird, wenn die seriellen Ports da sind.

    Dazu legst du eine Kopie der Unit an

    sudo systemctl edit --full ser2net.service

    und ergänzt dann in der Sektion `[Unit]` die Zeile

    Requires=serial-getty@.service

    Dann sollte das funktionieren. Was ich nicht weiß ist, ob diese Direktive auch die USB-Ports mit einschließt. Du verwendest ja scheinbar auch eine USB->Serial Adapter.

    Danach noch die Units neu starten:

    sudo systemctl daemon-reload

    Gruß, noisefloor

  • Das hat leider nicht funktioniert.

    Code
    Dez 01 16:46:44 ccs-ht-rasphm systemd[1]: ser2net.service: Main process exited, code=exited, status=1/FAILURE
    Dez 01 16:46:44 ccs-ht-rasphm systemd[1]: ser2net.service: Failed with result 'exit-code'.
    Dez 01 16:46:44 ccs-ht-rasphm systemd[1]: Stopped Serial port to network proxy.Dez 01 16:49:00 ccs-ht-rasphm systemd[1]: dev-ser2net.device: Job dev-ser2net.device/start timed out.
    Dez 01 16:49:00 ccs-ht-rasphm systemd[1]: Timed out waiting for device /dev/ser2net.
    Dez 01 16:49:00 ccs-ht-rasphm systemd[1]: Dependency failed for Serial Getty on ser2net.
    Dez 01 16:49:00 ccs-ht-rasphm systemd[1]: serial-getty@ser2net.service: Job serial-getty@ser2net.service/start failed with result 'dependency'.
    Dez 01 16:49:00 ccs-ht-rasphm systemd[1]: dev-ser2net.device: Job dev-ser2net.device/start failed with result 'timeout'.

    Was es mit diesem Eintrag auf sich hat, habe ich auch noch nicht herausgefunden.

    Code
    Dez 01 16:46:44 ccs-ht-rasphm systemd[1]: ser2net.service: Failed with result 'exit-code'.

    Wenn ich den Dienst beende und anschließend wieder starte funktioniert die Schnittstelle wieder.

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

    2 Mal editiert, zuletzt von Burny (1. Dezember 2021 um 17:07)

  • Hallo,

    hm... also die Fehlermeldung besagt, dass deine Unit nicht startet, weil die Abhängigkeit nicht erfüllt ist. Gibt IMHO zwei Möglichkeiten: die Abhängigkeit ist falsch oder (IMHO wahrscheinlicher) die Schnittstellen brauchen extrem lange, um initialisiert zu werden.

    Poste mal bitte die Ausgaben von systemd-analyze time und systemd-analyze blame

    Gruß, noisefloor

  • Eigenartig ist nur, dass es mit der alten ser2net Verbindung (ser2net.conf) immer funktioniert hatte.

    Nur mit der neuen Software habe ich das Problem.

    systemd-analyze time

    Code
    pi@ccs-ht-rasphm:~ $ systemd-analyze time
    Startup finished in 5.407s (kernel) + 26.514s (userspace) = 31.921s
    graphical.target reached after 26.392s in userspace

    systemd-analyze blame

    sudo service ser2net stop

    sudo service ser2net start

    systemd-analyze blame

    Code
        3ms ser2net.service

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Das hat leider nicht funktioniert.

    Wie ist die Ausgabe von:

    Code
    systemctl status serial-getty@ttyAMA0.service dev-serial0.device dev-serial1.device | grep -iE 'loaded|active'

    ? Wenn loaded und active, dann versuch mal mit:

    Code
    After=dev-serial0.device
    After=dev-serial1.device
    After=serial-getty@ttyAMA0.service
    After=network.target auditd.service
    After=time-sync.target
    Requires=systemd-time-wait-sync.service
    After=systemd-time-wait-sync.service

    in der [Unit]-Section der service-unit "ser2net.service", danach:

    Code
    sudo systemctl daemon-reload
    sudo shutdown -r now

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • systemctl status serial-getty@ttyAMA0.service dev-serial0.device dev-serial1.device | grep -iE 'loaded|active'

    Code
    pi@ccs-ht-rasphm:~ $ systemctl status serial-getty@ttyAMA0.service dev-serial0.device dev-serial1.device | grep -iE 'loaded|active'
         Loaded: masked (Reason: Unit serial-getty@ttyAMA0.service is masked.)
         Active: inactive (dead)
         Loaded: loaded
         Active: active (plugged) since Thu 2021-12-02 12:09:43 CET; 5h 19min ago
         Loaded: loaded
         Active: active (plugged) since Thu 2021-12-02 12:09:43 CET; 5h 19min ago

    Du meintest die erste Zeile?

    Code
    Loaded: masked (Reason: Unit serial-getty@ttyAMA0.service is masked.)

    Ich habe alle Einträge nach deiner Vorgabe unter \\ccs-ht-rasphm\Root\usr\lib\systemd\system\ser2net.service [Unit] eingetragen, und hat keine Änderung nach dem Reboot feststellen können.

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

    Einmal editiert, zuletzt von Burny (2. Dezember 2021 um 18:06)

  • Du meintest die erste Zeile?

    Code
    Loaded: masked (Reason: Unit serial-getty@ttyAMA0.service is masked.)

    Ich meinte alle Zeilen. Aber weil jetzt die Ausgabe vorliegt, stellt sich die Frage, gibt es bestimmten Grund dafür, dass diese service-unit masked ist?

    Du kannst die Zeile:

    Code
    After=serial-getty@ttyAMA0.service

    auch weg lassen und schauen ob es auch so (d. h. ohne diese Zeile) funktioniert.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Zitat

    Ich meinte alle Zeilen. Aber weil jetzt die Ausgabe vorliegt, stellt sich die Frage, gibt es bestimmten Grund dafür, dass diese service-unit masked ist?

    serial-getty@ttyAMA0.service ist wegen dem HM-MOD-RPI-PCB Modul notwendig, was in allen anderen Pis notwendig ist.

    An diesem Test Pi hängt dieses HM-MOD-RPI-PCB Modul aber über USB angebunden.

    Code
    ls -al /dev/serial/by-id
    insgesamt 0
    drwxr-xr-x 2 root root 60 28. Nov 17:46 .
    drwxr-xr-x 4 root root 80 28. Nov 17:46 ..
    lrwxrwxrwx 1 root root 13 28. Nov 17:46 usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0 -> ../../ttyUSB0

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

    Einmal editiert, zuletzt von Burny (2. Dezember 2021 um 18:17)

  • Bewusst habe ich keine ...

    OK.

    Hast Du schon mit den Zeilen:

    Code
    After=dev-serial0.device
    After=dev-serial1.device
    After=network.target auditd.service
    After=time-sync.target
    Requires=systemd-time-wait-sync.service
    After=systemd-time-wait-sync.service

    getestet?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ja ich habe mit allen Zeilen in der ser2net.service den Test ausgeführt.

    Leider keine Änderung.

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Leider keine Änderung.

    Dann, wie oben schon empfohlen worden ist, die service-unit deaktivieren und mit einer timer-unit starten (z. b. 30 Sekunden nach dem booten).

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ich bringe das mit dem Timer nicht zum Laufen.

    Ich habe einen Timer angelegt.

    /etc/systemd/system/ser2net.timer

    Code
    [Unit]
    Description=Start Verzögerung ser2net
    
    [Timer]
    OnBootSec=2min
    Unit=/etc/systemd/system/ser2net.service
    Persistent=true
    
    [Install]
    WantedBy=multi-user.targe

    Anschließend den Timer aktiviert.

    Code
    sudo chmod -R 0644 /etc/systemd/system/ser2net.timer
    sudo systemctl enable ser2net.timer
    sudo systemctl start ser2net.timer

    Der Timer wird auch angezeigt.

    Code
    pi@ccs-ht-rasphm:~ $ systemctl list-timers
    NEXT                        LEFT           LAST                        PASSED       UNIT                         ACTIVATES
    Fri 2021-12-03 16:34:31 CET 7min left      n/a                         n/a          systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
    Fri 2021-12-03 19:03:35 CET 2h 37min left  Fri 2021-12-03 09:30:58 CET 6h ago       apt-daily.timer              apt-daily.service
    Sat 2021-12-04 00:00:00 CET 7h left        Fri 2021-12-03 00:00:58 CET 16h ago      logrotate.timer              logrotate.service
    Sat 2021-12-04 00:00:00 CET 7h left        Fri 2021-12-03 00:00:58 CET 16h ago      man-db.timer                 man-db.service
    Sat 2021-12-04 06:41:51 CET 14h left       Fri 2021-12-03 06:47:48 CET 9h ago       apt-daily-upgrade.timer      apt-daily-upgrade.service
    Sun 2021-12-05 03:10:59 CET 1 day 10h left Mon 2021-11-29 17:07:01 CET 3 days ago   e2scrub_all.timer            e2scrub_all.service
    Mon 2021-12-06 00:20:17 CET 2 days left    Mon 2021-11-29 17:30:01 CET 3 days ago   fstrim.timer                 fstrim.service
    n/a                         n/a            Fri 2021-12-03 16:21:39 CET 4min 54s ago ser2net.timer                ser2net.service

    Nach einem Neustart wird die Unit nicht gestartet.

    Jounal

    manueller Stop und Start

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Ich bringe das mit dem Timer nicht zum Laufen.

    Ich habe einen Timer angelegt.

    /etc/systemd/system/ser2net.timer

    Code
    [Unit]
    Description=Start Verzögerung ser2net
    
    [Timer]
    OnBootSec=2min
    Unit=/etc/systemd/system/ser2net.service
    Persistent=true
    
    [Install]
    WantedBy=multi-user.targe

    Anschließend den Timer aktiviert.

    Code
    sudo chmod -R 0644 /etc/systemd/system/ser2net.timer
    sudo systemctl enable ser2net.timer
    sudo systemctl start ser2net.timer

    Der Timer wird auch angezeigt.

    targe gibt es nicht.

    Code
    multi-user.target

    ist richtig.

    Versuch mal mit:

    Code
    [Unit]
    Description=Start Verzögerung ser2net
    
    [Timer]
    OnStartupSec=45sec
    Unit=ser2net.service
    
    [Install]
    WantedBy=multi-user.target

    Die service-unit deaktivieren (disable) und die timer-unit aktivieren (enable).

    EDIT:

    Wenn es nicht funktioniert, dann die timer-unit in das Verzeichnis "/lib/systemd/system" verschieben.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Das mit dem

    Code
    multi-user.target

    war nur ein Kopierfehler hier herein.

    Was gefehlt hatte, war die ser2net.service Unit zu deaktivieren bzw. die ser2net.timer Unit zu aktivieren.

    Mit einer Einstellung von

    Code
    OnStartupSec=20sec

    startet ser2net ohne Probleme.

    Danke für deine Unterstützung.

    Lg

    Chris

    Raspberry Pi 2/2+/3/3+

    Stretch|Buster Lite, FHEM
    RFXtrx433E, SIGNALduino, nanoCUL433MHz & 868MHz, HomeMatic

    FS20, IT, HomeMatic, WMR200, TEK603, YouLess, APC, SUSV, Resol VBUS, Fronius DataloggerWeb2

  • Beitrag von Frank86 (20. Januar 2024 um 20:00)

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

Jetzt mitmachen!

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