Mit folgender Anpassung der inittab-Datei, war es nun möglich den Webserver zu starten sowie den Browser im Kiosk-Mode. Nach langem Probieren lag die Lösung des Problems an einem einfachen „http://“, welches noch zu dem Parameter URI gehört. Schon wurde aus einem Spiegel mit weißer Hintergrundbeleuchtung, ein Smart Mirror, der uns sogar beim Namen begrüßt.

tty1::respawn:-su -l mulder -c "/bin/php -t /var/www/html -S 0.0.0.0:8080"
tty2::respawn:-su -l mulder -c "/bin/qt-webkit-kiosk --uri http://127.0.0.1:8080/SmartMirror.php

Auch die Konfigurationsoberfläche funktioniert von einem beliebigen Rechner im Netzwerk vorbildlich. Leider konnten fürs erste keine Änderungen vorgenommen werden. Dies lag an den fehlenden Rechten der zuständigen Datei. Mit einem Eintrag in permissions konnte dies problemlos gelöst werden:

/var/www/html/users.txt   f   777   root   root   -   -   -   -   -

Es wurde mal präventiv 777 genommen. 🙂 Meine Freude war riesig, als alles funktioniert hat. Fast alles hat funktioniert, bis auf einen kleinen Schönheitsfehler. Die Uhrzeit zeigte UTC an, anstelle der hier in der Sommerzeit üblichen UTC+2. Ich wünschte mir wäre es egal gewesen. Ich dachte mir ich füge dem Image ein weiteres Package hinzu und kann durch dieses dann die Zeitzone anpassen. Das Package hieß ntp. Nach dem Booten kam eine seltsame Fehlermeldung und die Uhrzeit zeigt 01.01.1970 kurz nach Mitternacht an (knapp vorbei ist auch daneben…). Meine Freude war endgültig verschwunden nachdem ich festgestellt habe, dass ich diesen verhängnisvollen Fehler (Never Change a Running System) nicht mehr so leicht rückgängig machen kann. „make ntp-dirclean“ wurde ausprobiert und alles mit den bösen drei Buchstaben aus den Target-Files gelöscht. NTP war draußen aber die Fehlermeldung und die falsche Uhrzeit blieben bestehen.

So. Nachdem ich alles dafür getan habe die Uhr um fast fünfzig Jahre zurückzustellen, existiert jetzt immerhin noch ein funktionierendes Image aus dem Papierkorb und eine kaputtkonfiguriertes Buildroot. 🙂 Vielleicht kann man sogar ein „make clean“ noch vermeiden.

Smart Mirror: Erfolg und Frust liegt immer nahe beieinander

6 Kommentare zu „Smart Mirror: Erfolg und Frust liegt immer nahe beieinander

  • 3. Juli 2017 um 16:19 Uhr
    Permalink

    Das Problem mit der Zeit ist fast gelöst. Ich habe ntp wieder hinzugefügt. Durch einen manuellen Befehl „sudo ntpd -gq“ kann die Weltzeit UTC geladen werden. Jetzt wäre es toll, wenn dieser Befehl (oder ein anderer um die Uhrzeit zu holen) in die inittab geschrieben werden kann. Gibt es zudem eine Möglichkeit direkt die UTC+2 zu holen?

    UPDATE: Habe in der inittab folgenden Eintrag eingefügt:

    ::wait:/usr/bin/ntpdate -u 0.de.pool.ntp.org

    Nun wird die Weltzeit UTC von einem Server während dem Bootvorgang geholt. Clientseitig könnte dann die Lokalzeit angepasst werden… 🙂


    Eine weiteres Problem betrifft allerdings noch das Wlan. Hier sind wir nach der Bloganleitung vorgegangen leider war es nicht möglich mit einem Smartphone-Hotspot uns zu verbinden. Folgende Fehlermeldung kam durch den manuellen Aufruf „sudo ifup wlan0“:

    Successfully initialized wpa_supplicant
    Line 1: unknown global field ‚ctrl_interfaces=/var/run/wpa_supplicant‘.
    Line 1: Invalid configuration line ‚ctrl_interfaces=/var/run/wpa_supplicant‘.
    Failed to read or parse configuration ‚/etc/wpa_supplicant.conf‘.

  • 3. Juli 2017 um 23:52 Uhr
    Permalink

    Ntp war in der Vorlagrkonfiguration eigentlich schon aktiviert, bin mir aber gerade nicht sicher durch welches Paket. (kann am Handy gerade nicht schauen)

    Der Startbefehl steht in der /etc/network/interfaces, um den ntp-client zu starten sobald das Netzwerk verfügbar ist und wieder zu beenden wenn das Netzwerk verschwindet. Das eintige was noch fehlt ist die Info zur Zeitzone. Einfach mal googlen, wo man die unter Linux einträgt …

    Wegen dem WLAN. Die Meldung sagt, dass es einen Sybtaxfehler in der Konfigdatei gibt. Scheint also nur ein Tippfehler in der /etc/wpa_supplicant.conf zu sein.

    • 4. Juli 2017 um 8:53 Uhr
      Permalink

      Genau vielen Dank. Ich glaube das ntp habe ich irgendwie aus der Konfiguration versehentlich herausgeworfen. Habe es aber nun geschafft wieder einzubringen, dass mit dem Bootvorgang ntp die Uhrzeit synchronisiert durch o.g Eintrag in der inittab. 🙂

      Vielleicht finde ich hier eine Lösung zu der Zeitzone: http://de.wikihow.com/Die-Zeitzone-unter-Linux-%C3%A4ndern
      Ich melde mich.

      Zum Wlan: Einen Tippfehler konnte ich auf den ersten Blick nicht unbedingt feststellen…

      ctrl_interfaces=/var/run/wpa_supplicant
      ap_scan=1
      country=DE
      update_config=1

      network={
      ssid=“OnePlus3″
      psk=““
      # proto=RSN
      key_mgmt=WPA-PSK
      # pairwise=CCMP
      # auth_alg=OPEN
      }

      • 4. Juli 2017 um 12:41 Uhr
        Permalink

        In der Fehlermeldung steht ja „unknown global field ‚ctrl_interfaces=/var/run/wpa_supplicant‘.“

        Was passiert, wenn du die erste Zeile mit einem # auskommentierst?

        • 4. Juli 2017 um 19:42 Uhr
          Permalink

          Ahh dann verbindet er sich. 🙂 🙂 🙂

          Successfully initialized wpa_supplicant
          udhcpc: started, v1.26.2
          udhcpc: sending discover
          udhcpc: sending discover
          udhcpc: sending select for 192.168.1.104
          udhcpc: lease of 192.168.1.104 obtained, lease time 7200
          deleting routers
          adding dns 192.168.1.1

          Scheint auch nach einem kurzen Funktionstest alles zu passen:
          – hat IP von meinem Router zugewiesen bekommen und sehe die auch in der Konfi
          – ifdown eth0 -> SSH funktioniert über neue IP
          – poweroff ohne LAN-Kabel -> Wetter und Route & Co wird geladen.

          Danke dir! 🙂

  • 5. Juli 2017 um 1:30 Uhr
    Permalink

    Keine Ursache, ist ja mein Job. 😎

Kommentare sind geschlossen.