Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:koarrl_alzraspi

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:koarrl_alzraspi [2019/03/05 15:58]
koarrl [WLAN-Hardware organisieren/verstehen]
de:koarrl_alzraspi [2019/05/09 20:26] (aktuell)
koarrl [autofs+nfs: das Homedir vom Pi erscheint am Entwickler-PC]
Zeile 1: Zeile 1:
-====== koarrl: Alzheim-RaspberryPi ======+====== koarrl: Alzheim-RaspberryPi ​2 oder 3  ​======
  
-(last edit: 2019-03-05)+(last edit: 2019-05-08)
  
-==== Raspberry Pi 2 - Debian-stable ​(zZ stretch) ​installieren ====+==== ---- Debian-stable installieren ​---- ====
  
 Ziel des Projektes ist ein schlankes System ohne Grafik, zugänglich über ssh - \\ Ziel des Projektes ist ein schlankes System ohne Grafik, zugänglich über ssh - \\
-- über die eth-Schnittstelle (Wartung, Debugging) oder WLAN (der RPi3 soll als access point arbeiten). \\+- über die eth-Schnittstelle (Wartung, Debugging) oder WLAN (der RPi soll als access point arbeiten). \\
 Es genügt dafür eine 2GB-SDcard. \\ Es genügt dafür eine 2GB-SDcard. \\
 Der Zweck? \\ Der Zweck? \\
-Ein standalone-Gerät, das im Wald steht, ohne Internet-Anbindung, ​und mit einem Handy-Browser abfragbar ​ist.+Ein standalone-Gerät ​mitten ​im Wald, ohne Internet-Anbindung,​ mit einem Handy-Browser abfragbar. ​\\ 
 +Ein Lowcost-Datenlogger,​ dessen Hardwarekomponenten möglichst über Jahre hinaus verfügbar sein sollen. \\ 
 +Und eine RTC brauchen wir auch noch, da im Wald kein ntp-Server erreichbar ist :-)
  
 === 2G-SDcard von Image erzeugen === === 2G-SDcard von Image erzeugen ===
Zeile 17: Zeile 19:
  
 Die SHA256-sum vom image.zip sicherheitshalber vor Dekomprimieren checken! Die SHA256-sum vom image.zip sicherheitshalber vor Dekomprimieren checken!
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ wget https://​downloads.raspberrypi.org/​raspbian_lite_latest root@host:​~#​ wget https://​downloads.raspberrypi.org/​raspbian_lite_latest
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Dekomprimieren per commandline (mc versagt bei sehr großen Files) Dekomprimieren per commandline (mc versagt bei sehr großen Files)
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ unzip 2018-11-13-raspbian-stretch-lite.zip root@host:​~#​ unzip 2018-11-13-raspbian-stretch-lite.zip
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Image auf eine möglichst schnelle SDcard übertragen Image auf eine möglichst schnelle SDcard übertragen
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ dd bs=4M if=2018-11-13-raspbian-stretch-lite.img of=/dev/sdc status=progress conv=fsync ​ root@host:​~#​ dd bs=4M if=2018-11-13-raspbian-stretch-lite.img of=/dev/sdc status=progress conv=fsync ​
  
Zeile 34: Zeile 36:
 Es gibt eine kleine FAT-Partition mit vielen Einstellmöglichkeiten für Anfänger... \\ Es gibt eine kleine FAT-Partition mit vielen Einstellmöglichkeiten für Anfänger... \\
 "touch ssh" z.B. bewegt den Pi, ssh-Zugangsversuche zu akzeptieren :-) "touch ssh" z.B. bewegt den Pi, ssh-Zugangsversuche zu akzeptieren :-)
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ mount /dev/sdc1 /mnt root@host:​~#​ mount /dev/sdc1 /mnt
 root@host:​~#​ cd /mnt root@host:​~#​ cd /mnt
Zeile 42: Zeile 44:
 </​p></​pre></​html>​ </​p></​pre></​html>​
 === Image betrachten (wer das will) === === Image betrachten (wer das will) ===
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ losetup -P /dev/loop0 2018-11-13-raspbian-stretch-lite.img root@host:​~#​ losetup -P /dev/loop0 2018-11-13-raspbian-stretch-lite.img
 root@host:​~#​ fdisk -l /dev/loop0 root@host:​~#​ fdisk -l /dev/loop0
Zeile 63: Zeile 65:
  
 === Boot-Partition mit Label versehen === === Boot-Partition mit Label versehen ===
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ fatlabel /dev/sdc1 "​BOOT"​ root@host:​~#​ fatlabel /dev/sdc1 "​BOOT"​
  
Zeile 69: Zeile 71:
 Die kurze UUID kann nur beim Neuformatieren vergeben werden, ist aber hier ziemlich egal. \\ Die kurze UUID kann nur beim Neuformatieren vergeben werden, ist aber hier ziemlich egal. \\
 Kontrolle: ​ Kontrolle: ​
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ blkid /dev/sdc1 root@host:​~#​ blkid /dev/sdc1
 /dev/sdc1: LABEL="​BOOT"​ UUID="​9304-D9FD"​ TYPE="​vfat"​ PARTUUID="​a6924f9f-01"​ /dev/sdc1: LABEL="​BOOT"​ UUID="​9304-D9FD"​ TYPE="​vfat"​ PARTUUID="​a6924f9f-01"​
Zeile 76: Zeile 78:
  
 === Root-Partition mit Label versehen === === Root-Partition mit Label versehen ===
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ e2label /dev/sdc2 "​MYOWNPI"​ root@host:​~#​ e2label /dev/sdc2 "​MYOWNPI"​
  
Zeile 83: Zeile 85:
 === UUID der Root-Partition unique machen === === UUID der Root-Partition unique machen ===
 Sonst gibt es Schwierigkeiten,​ mehrere SD-Karten abwechselnd auf einem Host-PC zu mounten und zu editieren. Sonst gibt es Schwierigkeiten,​ mehrere SD-Karten abwechselnd auf einem Host-PC zu mounten und zu editieren.
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ tune2fs /dev/sdc2 -U `uuid` root@host:​~#​ tune2fs /dev/sdc2 -U `uuid`
  
Zeile 94: Zeile 96:
  
 Erster login - z.B. von einem Laptop mit zurechtgebogener eth-Schnittstelle. \\ Erster login - z.B. von einem Laptop mit zurechtgebogener eth-Schnittstelle. \\
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ ifconfig eth0 192.168.1.2 root@host:​~#​ ifconfig eth0 192.168.1.2
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Default-User:​ pi (pwd: raspberry - sofort das User-Passwort ändern!) Default-User:​ pi (pwd: raspberry - sofort das User-Passwort ändern!)
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ ssh 192.168.1.1 -l pi  root@host:​~#​ ssh 192.168.1.1 -l pi 
    
 </​p></​pre></​html>​ </​p></​pre></​html>​
 root werden mit ... root werden mit ...
-<​html><​pre><​p style="​color:​yellow; background-color: ​grey">​ +<​html><​pre><​p style="​color:​magenta; background-color: ​black; font-size: 11px">​ 
-root@host:~# sudo su+pi@raspberrypi:~# sudo su
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
-... und auch hier ein Root-Passwort definieren. ​ +... und auch hier ein Root-Passwort definieren. ​\\ 
 +Es empfiehlt sich, nun gleich mit dem Lieblings-Paketmanager das System zu aktualisieren! Z.B.:
  
 +<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">​
 +root@raspberrypi:​~#​ apt-get update
 +
 +</​p></​pre></​html>​
 === Netzwerk-Konfiguration === === Netzwerk-Konfiguration ===
  
 +Die wlan0-Schnittstelle wird erst später gebraucht. Über die kann später der Webserver per Handy angebrowst werden. Geduld bitte, mehr dazu siehe weiter unten. \\
 +\\
 ACHTUNG, NEU! Nicht mehr /​etc/​config/​network,​ sondern /​etc/​dhcpcd.conf editieren - untenstehendes anhängen! \\ ACHTUNG, NEU! Nicht mehr /​etc/​config/​network,​ sondern /​etc/​dhcpcd.conf editieren - untenstehendes anhängen! \\
-(vorher Backup machen auf *.ORIG!) +(vorher Backup machen auf *.ORIG!) ​\\ 
-<​file ​sh dhcpcd.conf>​+ 
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white#; font-size: 11px">​<file dhcpcd.conf>​
   ....   ....
   # ~~~~ from here: added by koarrl ~~~~   # ~~~~ from here: added by koarrl ~~~~
-  nohook wpa-supplicant +interface eth0
-   +
-  # static IP configuration:​ +
-  ​interface eth0+
   static ip_address=172.16.1.13/​24   static ip_address=172.16.1.13/​24
-  ​#static ip6_address=..... +  static domain_name_servers=192.168.1.1 8.8.8.8 
-  #static routers=192.168.1.1 + 
-  #static domain_name_servers=192.168.1.1 8.8.8.8 +</​file>​</​p></​pre></​html>​ 
-</​file>​+
  
-Dazu passend am Host-Rechner (eth-IP: 172.16.1.3) das IP-Forwarding einrichten +Dazu passend am Host-Rechner (eth-IP: 172.16.1.3) das IP-Forwarding einrichten ​(vorerst per commandline) 
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ ifconfig eth0 172.16.1.3 root@host:​~#​ ifconfig eth0 172.16.1.3
 root@host:​~#​ iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE root@host:​~#​ iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Zeile 137: Zeile 144:
  
 Den Pi wieder rebooten. Das Einsteigen geht ab jetzt so: Den Pi wieder rebooten. Das Einsteigen geht ab jetzt so:
-<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​yellow;​ background-color:​ grey; font-size: 11px">
 root@host:​~#​ ssh 172.16.1.13 -l pi root@host:​~#​ ssh 172.16.1.13 -l pi
  
 </​p></​pre></​html> ​ </​p></​pre></​html> ​
 Wenn der ssh-Zugang vom Host verweigert wird: Wenn der ssh-Zugang vom Host verweigert wird:
-<​html><​pre><​p style="​color:​lime;​ background-color:​ grey">​+<​html><​pre><​p style="​color:​lime;​ background-color:​ grey; font-size: 11px">
 user@host:​~$ rm ~/​ssh/​.known_hosts user@host:​~$ rm ~/​ssh/​.known_hosts
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Nun dem Pi einen Internet-Zugang über den Host-Rechner ermöglichen:​ Nun dem Pi einen Internet-Zugang über den Host-Rechner ermöglichen:​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ route add default gw 172.16.1.3 root@raspberrypi:​~#​ route add default gw 172.16.1.3
  
Zeile 153: Zeile 160:
  
 === Pakete aktualisieren und dazuinstallieren === === Pakete aktualisieren und dazuinstallieren ===
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ apt-get update root@raspberrypi:​~#​ apt-get update
 root@raspberrypi:​~#​ apt-get install dselect mc minicom chkconfig root@raspberrypi:​~#​ apt-get install dselect mc minicom chkconfig
Zeile 163: Zeile 170:
  
 GANZ WICHTIG: dselect in Profi-Modus versetzen :-) GANZ WICHTIG: dselect in Profi-Modus versetzen :-)
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ echo expert >> /​etc/​dpkg/​dselect.cfg root@raspberrypi:​~#​ echo expert >> /​etc/​dpkg/​dselect.cfg
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
-=== Kleinkram, Hardwaretests ===+=== Zwischendurch: ​Kleinkram, Hardwaretests ===
 minicom mit FTDI-Modul testen: minicom mit FTDI-Modul testen:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ minicom -c on -D /dev/ttyS0 root@raspberrypi:​~#​ minicom -c on -D /dev/ttyS0
  
Zeile 176: Zeile 183:
  
 raspi-config starten: raspi-config starten:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ raspi-config root@raspberrypi:​~#​ raspi-config
  
Zeile 187: Zeile 194:
 ... und wieder rebooten! ... ... und wieder rebooten! ...
  
-=== Nützliche Tools ===+ 
 + 
 +=== Nützliche Tools für Startskripte ​===
 Anzeige aktiver Startskripte:​ Anzeige aktiver Startskripte:​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ service --status-all root@raspberrypi:​~#​ service --status-all
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Ein Multi-Tool, mit dem SysV-Startscripte vom neuen ach so tollen systemd (würg!) angenommen werden - siehe manpage: Ein Multi-Tool, mit dem SysV-Startscripte vom neuen ach so tollen systemd (würg!) angenommen werden - siehe manpage:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ chkconfig root@raspberrypi:​~#​ chkconfig
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Alle Startscripte neu anwerfen: Alle Startscripte neu anwerfen:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ systemctl daemon-reload root@raspberrypi:​~#​ systemctl daemon-reload
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 my_startscript anwerfen: my_startscript anwerfen:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ systemctl start my_startscript root@raspberrypi:​~#​ systemctl start my_startscript
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 my_startscript dauerhaft (über reboot) installieren:​ my_startscript dauerhaft (über reboot) installieren:​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ systemctl enable my_startscript root@raspberrypi:​~#​ systemctl enable my_startscript
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
-(ab hier bitte ergänzen!)+
  
 === LED-Ansteuerung über bash === === LED-Ansteuerung über bash ===
Zeile 222: Zeile 231:
  
 z.B. "grün ein": ​ z.B. "grün ein": ​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ echo default-on > /​sys/​class/​leds/​led0/​trigger root@raspberrypi:​~#​ echo default-on > /​sys/​class/​leds/​led0/​trigger
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 z.B. "rot aus": z.B. "rot aus":
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ echo none > /​sys/​class/​leds/​led1/​trigger root@raspberrypi:​~#​ echo none > /​sys/​class/​leds/​led1/​trigger
  
Zeile 237: Zeile 246:
 Wunderschön gemachte Doku dazu: [[http://​abyz.me.uk/​rpi/​pigpio/​cif.html]] Wunderschön gemachte Doku dazu: [[http://​abyz.me.uk/​rpi/​pigpio/​cif.html]]
  
-<​html><​pre><​p style="​color:​magenta;​ background-color:​ black">​+<​html><​pre><​p style="​color:​magenta;​ background-color:​ black; font-size: 11px">
 pi@raspberrypi:​~ $ wget abyz.me.uk/​rpi/​pigpio/​pigpio.tar pi@raspberrypi:​~ $ wget abyz.me.uk/​rpi/​pigpio/​pigpio.tar
 pi@raspberrypi:​~ $ tar xf pigpio.tar pi@raspberrypi:​~ $ tar xf pigpio.tar
Zeile 249: Zeile 258:
  
 Das ist für Debugging und Editieren mit den Bordmitteln des Host-PC sehr nützlich. Paket holen ... Das ist für Debugging und Editieren mit den Bordmitteln des Host-PC sehr nützlich. Paket holen ...
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ apt-get install nfs-kernel-server root@raspberrypi:​~#​ apt-get install nfs-kernel-server
   ​   ​
Zeile 255: Zeile 264:
  
 ... und /​etc/​exports editieren: ... und /​etc/​exports editieren:
-<file sh exports>+<​html><​pre><​p style="​color:​ grey; background-color:​ white#; font-size: 11px">​<file sh exports>
 /​home/​pi ​ 172.16.1.3(rw,​sync,​no_subtree_check) /​home/​pi ​ 172.16.1.3(rw,​sync,​no_subtree_check)
-</​file>​+</file></​p></​pre></​html>
  
 ... und schließlich:​ ... und schließlich:​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ service nfs-kernel-server reload root@raspberrypi:​~#​ service nfs-kernel-server reload
   ​   ​
 </​p></​pre></​html>​ </​p></​pre></​html>​
 +
 +=== autofs+nfs: das Homedir vom Pi erscheint am Entwickler-PC ===
 +
 +Es empfiehlt sich hier nicht der Ansatz über eine Zeile in /etc/fstab, weil dann der Pi beim Ausschalten,​ sofern sein nfs-Export noch am Entwickler-PC gemountet ist, jenen zum laaaaaangen Warten verdammt. \\
 +Besser: die etwas undurchschaubare autofs-Methode. Auf RPi-Seite muß dazu der nfs-Kernel-Server installiert sein und /​etc/​exports wie oben beschrieben aussehen.
 +
 +Auf der Host-Seite (Entwickler-PC) braucht man autofs. Dafür (1) /​etc/​auto.master editieren:
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white#; font-size: 11px"><​file sh exports>
 +...
 +/​var/​autofs/​nfs ​        /​etc/​auto.nfs ​  ​--timeout=100
 +...
 +</​file></​p></​pre></​html>​
 +
 +Das bedeutet, daß später, nach Neustart des autofs-Dienstes am Hostrechner,​ ein Ordner /​var/​autofs/​nfs angelegt wird. \\
 +Und dann noch (2) /​etc/​auto.nfs editieren bzw. neu anlegen:
 +
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white#; font-size: 11px"><​file sh exports>
 +pi      -fstype=nfs,​rw,​soft,​intr ​       172.16.1.13:/​home/​pi
 +</​file></​p></​pre></​html>​
 +Nun den autofs-Dienst neu starten. Es wird damit ein Ordner /​var/​autofs/​nfs/​pi angelegt. \\
 +Erst ein lesender Zugriff darauf (per "ls /​var/​autofs/​nfs/​pi"​ oder über ein symlink aus user's home) initiiert dann den eigentlichen Mountvorgang. Nach 100 Sekunden Inaktivität (Beispiel!) verschwindet der Spuk wieder. \\
 +Vorteilhafterweise kann der RPi jederzeit ausgeschaltet werden (hard-power-off oder besser mit "sudo halt"​),​
 +und der Entwicklungs-Hostrechner wird nicht von sinnlosen Wartezeiten auf verschwundene nfs-shares ausgebremst.
 +
 +Dank gebührt den Schreibern von [[https://​wiki.archlinux.org/​index.php/​Autofs]] .
 +
 === Minimalistischen cgi-fähigen Webserver aufsetzen === === Minimalistischen cgi-fähigen Webserver aufsetzen ===
  
Zeile 277: Zeile 312:
     ​     ​
 Einfach auf dem Pi compilieren (Achtung, ARM-Architektur,​ am Host würde man die gnu-eabi-Toolchain brauchen): Einfach auf dem Pi compilieren (Achtung, ARM-Architektur,​ am Host würde man die gnu-eabi-Toolchain brauchen):
-<​html><​pre><​p style="​color:​magenta;​ background-color:​ black"> ​+<​html><​pre><​p style="​color:​magenta;​ background-color:​ black; font-size: 11px"> ​
 pi@raspberrypi:​~ $ ./configure --prefix=/​usr/​local pi@raspberrypi:​~ $ ./configure --prefix=/​usr/​local
 pi@raspberrypi:​~ $ make pi@raspberrypi:​~ $ make
Zeile 283: Zeile 318:
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
-Ja, das dauert ein Weilchen. ​\\ +Ja, das dauert ein Weilchen. Ungeduldige starten den Webserver dann mit folgender Commandline:​ 
-Ungeduldige starten den Webserver dann mit folgender Commandline:​ +<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px"> ​
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black"> ​+
 root@raspberrypi:​~#​ /​usr/​local/​sbin/​thttpd -d /var/www -c "​**"​ root@raspberrypi:​~#​ /​usr/​local/​sbin/​thttpd -d /var/www -c "​**"​
  
Zeile 291: Zeile 325:
 Oder besser und dauerhaft per initscript (dieses thttpd.sh hier ist beigepackt in V2.29d) Oder besser und dauerhaft per initscript (dieses thttpd.sh hier ist beigepackt in V2.29d)
  
-<​file ​bash thttpd>+<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px">​<file thttpd>
 #!/bin/sh #!/bin/sh
  
Zeile 349: Zeile 383:
         ;;         ;;
 esac esac
-</​file>​+</file></​p></​pre></​html>
  
  
 NEU: der hungrige systemd muß nun gefüttert werden, das Initscript ist im alten LSB-Stil. Siehe [[https://​wiki.debian.org/​LSBInitScripts]] NEU: der hungrige systemd muß nun gefüttert werden, das Initscript ist im alten LSB-Stil. Siehe [[https://​wiki.debian.org/​LSBInitScripts]]
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ cp thttpd.sh /​etc/​init.d/​thttpd root@raspberrypi:​~#​ cp thttpd.sh /​etc/​init.d/​thttpd
 root@raspberrypi:​~#​ chown root:root /​etc/​init.d/​thttpd root@raspberrypi:​~#​ chown root:root /​etc/​init.d/​thttpd
Zeile 361: Zeile 395:
 Kontrolle: wird das thttpd-Initscript in den Runlevels 2,3,4,5 gestartet? Kontrolle: wird das thttpd-Initscript in den Runlevels 2,3,4,5 gestartet?
 (welche runlevels? Siehe Kommentar-Header im Startscript) (welche runlevels? Siehe Kommentar-Header im Startscript)
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ chkconfig -l  root@raspberrypi:​~#​ chkconfig -l 
 ..... .....
Zeile 387: Zeile 421:
    
 === System noch schneller machen === === System noch schneller machen ===
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ echo -n performance | tee /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor root@raspberrypi:​~#​ echo -n performance | tee /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor
  
 </​p></​pre></​html>  ​ </​p></​pre></​html>  ​
  
-==== WLAN-AccessPoint einrichten ====+==== ---- WLAN-AccessPoint einrichten ​---- ====
  
 === WLAN-Hardware organisieren/​verstehen === === WLAN-Hardware organisieren/​verstehen ===
Zeile 406: Zeile 440:
  
 Zeige angesteckten USB-WLAN-Stick an: Zeige angesteckten USB-WLAN-Stick an:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ iwconfig root@raspberrypi:​~#​ iwconfig
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Zeige Fähigkeiten des Sticks: Zeige Fähigkeiten des Sticks:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ iw list root@raspberrypi:​~#​ iw list
  
 </​p></​pre></​html>​ </​p></​pre></​html>​
 Zeige existente WLANs an: Zeige existente WLANs an:
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ iwlist wlan0 scan | grep ESSID root@raspberrypi:​~#​ iwlist wlan0 scan | grep ESSID
  
 </​p></​pre></​html> ​ </​p></​pre></​html> ​
  
-=== hostapd (Host Access Point Daemon) einrichten === +=== Host Access Point Daemon ​(hostapd) einrichten === 
-Siehe: [[http://sirlagz.net/2012/08/09/how-to-use-the-raspberry-pi-as-a-wireless-access-pointrouter-part-1/​]]  +Siehe: [[https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md]] \\ 
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​+Paket installieren und dann den Dienst gleich einmal stoppen. 
 +<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">
 root@raspberrypi:​~#​ apt-get install hostapd root@raspberrypi:​~#​ apt-get install hostapd
 +root@raspberrypi:​~#​ systemctl stop hostapd
  
 </​p></​pre></​html> ​ </​p></​pre></​html> ​
-(Zitate verkürzt von dort ...)+Am besten das Configfile /​etc/​hostapd/​hostapd.conf neu anlegen\\ 
 +ACHTUNG!! \\ 
 +1Der verblödete Parser interpretiert (manchmal?Kommentare in derselben Zeile als Argumente. \\ 
 +2. wpa_passphrase muß mindestens 9 Zeichen lang sein. \\ 
 +3. beacon_int muß zwischen 15 und 65535 [Sekunden] betragen. \\ 
 +Dieses kommentarbereinigte,​ minimalistische File hier läuft am RPi3:
  
-After I installed ​hostapd, I had to modify a few files before hostapd would run\\ +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file ​hostapd.conf> 
-Set a static IP address:+# edited by koarrl (ultimate) 
 +# DONTUSE Tab chars and comments behind non-empty lines!
  
-  iface wlan0 inet static +interface=wlan0 
-  ​address 10.0.0.+driver=nl80211 
-  ​netmask 255.255.255.0+ssid=rpi3-wlan 
 +hw_mode=g 
 +channel=4 
 +wmm_enabled=0 
 +macaddr_acl=0 
 +auth_algs=
 +ignore_broadcast_ssid=0 
 +wpa=2 
 +wpa_passphrase=abcdefghi 
 +wpa_key_mgmt=WPA-PSK 
 +wpa_pairwise=TKIP 
 +rsn_pairwise=CCMP
  
-modify ​/etc/default/hostapd: \\+</file><​/p></pre></​html>​
  
-The DAEMON_CONF ​variable is not configuredit must point to a configfile (to be created)+ 
 +Und dann im File /​etc/​default/​hostapd den Verweis auf das eben erstellte Configfile anlegen, \\ 
 +dafür die Zeile mit DAEMON_CONF=... einkommentierenalso 
 + 
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file hostapd>​ 
 +....
 DAEMON_CONF="/​etc/​hostapd/​hostapd.conf"​ DAEMON_CONF="/​etc/​hostapd/​hostapd.conf"​
 +....
  
-create ​/etc/hostapd/hostapd.conf+</file><​/p></pre></​html>​
  
-<​file>​ +Nun den den Dienst wieder starten bzwfür die Zukunft dauerhaft enablen
-# First we configure the interface we'll be listening on +<​html><​pre><​p style="​color:​orange;​ background-color: black; font-size: 11px"> 
-interface=wlan0 # The interface to listen on +root@raspberrypi:​~systemctl enable hostapd
-driver=nl80211 +
-# The driver that is being used by the WiFi adapter, this could be different for everyone +
-ctrl_interface=/​var/​run/​hostapd +
-ctrl_interface_group=0 # These 2 are just parameters so that the hostap daemon runs. +
-# Now onto the important WiFi configuration +
-ssid=RaspAP +
-# First up, the SSID or Network nameThis is what other devices will see when they try to connect+
-hw_mode=+
-# I'm setting this to Wireless G mode. A, B, and G are available here. +
-channel=8 +
-# This is setting the channel that the WiFi is on, valid channels are from 1-11, or 1-14 depending on location. +
-# Wifi Security Settings +
-wpa=2 # This sets the security settings to WPA2 +
-wpa_psk=928519398acf811e96f5dcac68a11d6aa876140599be3dd49612e760a2aaac0e +
-# The line above sets the wpa passphrase to "raspiwlan",​ this is obtained via the wpa_passphrase command. +
-However, you can also set a passphrase like the line below. +
-#​wpa_passphrase=raspiwlan +
-wpa_key_mgmt=WPA-PSK +
-wpa_pairwise=CCMP +
-rsn_pairwise=CCMP+
  
-# Other settings +</p></​pre></​html
-beacon_int=100 # This sets how often the WiFi will send a beacon out. +
-auth_algs=3 +
-wmm_enabled=1 +
-</file>+
  
 === DHCP-Server aufsetzen === === DHCP-Server aufsetzen ===
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​ +ggfs Paket installieren und dann den Dienst gleich einmal stoppen. Originales Configfile sichern. 
-root@raspberrypi:​~#​ mv /etc/dnsmasq.conf /etc/dnsmasq.conf.ORIG+<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px"> 
 +root@raspberrypi:​~#​ apt-get install dhcpcd 
 +root@raspberrypi:​~#​ systemctl stop dhcpcd 
 +root@raspberrypi:​~#​ mv /etc/dhcpcd.conf /etc/dhcpcd.conf.ORIG
  
-</​p></​pre></​html> ​  ​ +</​p></​pre></​html>​  
-Neues File /etc/dnsmasq.conf anlegen:+ 
 +File /etc/dhcpcd.conf editieren. \\ 
 +Dazu am Ende Folgendes anfügen:
   ​   ​
-<​file>​+<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px">​<​file ​dhcpcd.conf>​ 
 +  .... 
 +  # ~~~~ from here: added by koarrl ~~~~ 
 +interface eth0 
 +  static ip_address=172.16.1.13/​24 
 +  static domain_name_servers=192.168.1.1 8.8.8.8 
 + 
 +interface wlan0 
 +  static ip_address=192.168.4.1/​24 
 +  nohook wpa-supplicant 
 + 
 +</​file></​p></​pre></​html>​ 
 +Neues, minimalistisches File /​etc/​dnsmasq.conf anlegen. \\ 
 +Es soll für den DHCP-Server nur die WLAN-Schnittstelle verfügbar sein. 
 +   
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file dnsmasq.conf>
 interface=wlan0 interface=wlan0
 no-dhcp-interface=eth0 no-dhcp-interface=eth0
 dhcp-range=interface:​wlan0,​10.0.0.2,​10.0.0.5,​infinite dhcp-range=interface:​wlan0,​10.0.0.2,​10.0.0.5,​infinite
-</​file>​ + 
-oder so ?+</​file>​</​p></​pre></​html>​ 
 + 
 +Nun den den Dienst wieder starten bzw. für die Zukunft dauerhaft enablen. 
 +<​html><​pre><​p style="​color:​orange;​ background-color:​ black; font-size: 11px">​ 
 +root@raspberrypi:​~#​ systemctl enable dnsmasq 
 + 
 +</​p></​pre></​html>​  
 + 
 +Nun (bzw. auch nach jedem weiteren reboot) sollte ein WLAN mit der oben definierten SSID sichtbar sein, und nach Einklinken in dieses WLAN und Zuweisung einer IP-Adresse per DHCP sollte man über die oben definierte IP-Adresse die von thttpd präsentierte Webseite sehen können. \\ 
 + 
 +=== Echtzeituhr anschließen === 
 + 
 +Der Pi hat leider keine RTC. Sofern er offline läuft und Daten loggen soll, wäre also ein DS1994 fein. \\ 
 +Hardwaremäßig sind für den Onewire-Bus nur 3 Drähte anzuschließen:​ \\ 
 +  * Masse an Steckerleiste - pin 9 
 +  * +3,3V an Steckerleiste - pin 1 
 +  * Onewire-Bus an Steckerleiste - z.B. den pin 7 ("BCM 4") 
 +Und dazu ein 2K7-Pullup-Widerstand zwischen Onewire-Bus und +3,3V. 
 + 
 +Nun muß zunächst einmal der Kerneltreiber für den Onewire-Bus aktiviert werden - einfach durch  
 +Anhängen dieser Zeilen an /​boot/​config.txt ... 
 + 
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file hostapd>​ 
 +.... 
 + 
 +# Uncomment this for Dallas-Maxim OneWireBus 
 +dtoverlay=w1-gpio,​gpiopin=4 
 + 
 +</​file></​p></​pre></​html>​ 
 + 
 +.. und rebooten. Alles findet sich dann unter /​sys/​bus/​w1/​devices/​~unique_num~ \\ 
 + 
 +Wer es eilig hat, bestellt ein Chinesenmodul mit Li-Batterie und einem DS3232. \\ 
 +Diese RTC wird über I2C angebunden und sollte out of the box laufen und den date-Befehl unterstützen. \\ 
 + 
 +(wird nach Lieferung fortgesetzt ...) 
 + 
 +=== owfs installieren === 
 + 
 +Der Dallas-Baustein kann dadurch als Baumstruktur unter einem Mountpoint abgebildet werden. 
 + 
 +Installieren:​  
 +  * owfs + Abhängigkeiten (fuse etc.) 
 +  * libowcapi-3.1.5 
 + 
 +Hardware:  
 +  * Dallas-RTC DS1994 mit 2K7-pullup anschließen. 
 +   
 +In /​sys/​bus/​w1/​devices erscheinen nun zwei Ordner - für den Busmaster und den DS1994 (Typcode-unique number), z.B. also: 
 +  root@Pi:/​sys/​bus/​w1/​devices#​ ls -l 
 +  insgesamt 0 
 +  lrwxrwxrwx 1 root root 0 Apr 18 19:28 04-0000005d660f -> ../​../​../​devices/​w1_bus_master1/​04-0000005d660f 
 +  lrwxrwxrwx 1 root root 0 Apr 18 19:25 w1_bus_master1 -> ../​../​../​devices/​w1_bus_master1 
 + 
 +Mountpoint definieren:​ 
 + 
 +  # mkdir /​media/​owfs 
 +   
 +Editieren von /​etc/​owfs.conf - der Nettoinhalt:​ 
 <​file>​ <​file>​
-interface=wlan0 # To get dnsmasq to listen only on wlan0. +! server: server ​localhost:​4304 
-dhcp-range=10.0.0.2,​10.0.0.5,​255.255.255.0,​12h # This sets the available range from 10.0.0.2 to 10.0.0.5 +mountpoint ​/media/owfs 
-# It also sets the subnet mask to 255.255.255.0 and specifies a lease time of 12 hours.+allow_other 
 +server: w1 = all 
 +server: port = localhost:​4304
 </​file>​ </​file>​
 +  ​
 +Auch /​etc/​fuse.conf muß editiert werden:
 +<​file>​
 +...
 +# This is needed for owfs!
 +user_allow_conf
 +</​file>  ​
 +  ​
 +Nun (nach reboot) der Mountvorgang für (alle bzw. hier - nur der DS1994) Devices: \\
 +Mittels Aufruf von /​usr/​bin/​owfs,​ die Parameter werden aus obenerwähntem configfile übernommen.
  
-<​html><​pre><​p style="​color:​orange;​ background-color:​ black">​ +  ​owfs 
-root@raspberrypi:​~service dnsmasq restart+   
 +Wir sehen jetzt eine Baumstruktur unter dem Mountpoint, Datum und Uhrzeit finden sich darin.
  
-</p></pre></html>+  # cd /media/owfs/04.0F665D000000 
 +  # cat date 
 +    Sat Mar 14 16:40:40 1953 
 +  # cat date 
 +    Sat Mar 14 16:40:44 1953 
 +        
 +Ähem. Die Uhr läuft, gehört aber eingestellt. Jetzt wird es trickreich. \\ 
 +Defaultmäßig ist die Uhr nicht schreibbar. Entgegen der Doku unter [[http://​owfs.org/​index.php?​page=ds1994]] wird der Schreibschutz aufgehoben durch:
  
-After the configuration file has been created in /etc/dnsmasq.conf,​ start up hostapd and restart dnsmasq. +  # echo 1 > /media/owfs/04.0F665D000000/​readonly/​clock
-You should now be able to see the WiFi network “RaspAP” and be able to connect to it and get an IP address.+
   ​   ​
 +Nun kann die Uhr mit einem gleichformatigen Datestring beschrieben werden, oder noch einfacher - auf die Systemzeit gesetzt mit einem Leerstring!
 +
 +  # echo > /​media/​owfs/​04.0F665D000000/​date
 +  ​
 +Nun die Uhr besser wieder schreibschützen:​
 +
 +  # echo 0 > /​media/​owfs/​04.0F665D000000/​readonly/​clock
 +  ​
 +Kontrolle: RPi shutdown, ausschalten,​ Dallas-Uhr ab-/​an-stecken,​ einschalten,​ rebooten, und ...
 +
 +  # owfs
 +  # cat /​media/​owfs/​04.0F665D000000/​date
 +    Thu Apr 18 21:51:36 2019
 +    ​
 +Funktioniert,​ hurra! Zeitzone und Sommerzeit: später mal, weiterer Forschungsbedarf!
 +
 +=== Zusammenfassung der Zeitfunktionen ===
 +
 +owfs muß hier bereits gestartet sein und der Dallas-TIC DS1994 gemountet. \\
 +
 +Tipp: Systemuhr im Epoch-Format (Sekunden seit 1.1.1970, 0:00:00) ausgeben
 +
 +  # date +%s
 +   
 +Irgendeinen DS1994 mit der Systemuhr synchronisieren:​
 +
 +  # echo 1 > /​media/​owfs/​04.????????????/​readonly/​clock
 +  # echo > /​media/​owfs/​04.????????????/​date
 +  # echo 0 > /​media/​owfs/​04.????????????/​readonly/​clock
 +  ​
 +Die Systemuhr mit (irgendeiner) TIC-Zeit synchronisieren:​ \\
 +Das ist die Funktion, die beim Startup statt dem script "​fake-hwclock"​ ausgeführt werden sollte.
 +--> stattdessen wird ein modifiziertes script "​TIC-hwclock"​ eingeführt.
 +
 +  # date -s @`cat /​media/​owfs/​04.????????????/​udate`
 +  ​
 +ACHTUNG! Defekte oder nicht vorhandene TICs können beim Zugriff keine Rückmeldung liefern. \\
 +Es gibt aber ein Timeout (wo definiert?)
 +
 +Nur zum Testen - TIC-Zeit auf 1.4.2019, 02:00 CEST setzen:
 +
 +  # echo 1 > /​media/​owfs/​04.????????????/​readonly/​clock;​ echo "​1554076800"​ > /​media/​owfs/​04.????????????/​udate;​ echo 0 > /​media/​owfs/​04.????????????/​readonly/​clock
 +  ​
 +TIC-Zeit abfragen:
 +  # cat  /​media/​owfs/​04.????????????/​date
 +  ​
 +=== Das Startscript TIC-hwclock ===
 +
 +ACHTUNG! der LSB-Header ist noch zweifelhaft. Funktion sonst OK. \\
 +Abgesehen davon, daß der owfs-Baum world-writable ist ... für dieses RPi-Projekt ist das egal.
 +
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file TIC-hwclock>​
 +#!/bin/sh
 +
 +### BEGIN INIT INFO
 +# Provides: ​         TIC-hwclock
 +# Required-Start:​
 +# Required-Stop: ​    ​umountroot
 +# Should-Stop:​
 +# X-Start-Before: ​   checkroot
 +# Default-Start: ​    S
 +# Default-Stop: ​     0 1 6
 +# Short-Description:​ Restore / save the current clock from file or Dallas TIC DS1994 (if available)
 +# Description:​
 +### END INIT INFO
 +
 +set -e
 +
 +# Include core init functions if needed
 +. /​lib/​lsb/​init-functions
 +
 +PARAM=/​etc/​default/​fake-hwclock
 +if [ -f $PARAM ]; then
 +    . "​$PARAM"​
 +fi
 +
 +# start owfs & mount TIC here if not already done
 +[ -z "`ls /​media/​owfs`"​ ] && /​usr/​bin/​owfs
 +
 +# determine if exactly one Dallas TIC is connected (owfs must already be running and TIC must be mounted)
 +HWCLOCK=FAKE ​                                           # default: fake clock needed
 +if [ -d /​media/​owfs/​04.????????????​ ]; then             # are there any TICs?
 +    NUMOFTICS=`ls -1 /media/owfs | grep 04. | wc -l`    # yes, so count them, expect one
 +    if [ $NUMOFTICS -eq 1 ]; then
 +        APRIL_1_2019=1554076800 ​                        # a running TIC must have passed this past point in time
 +        SEC1=`cat /​media/​owfs/​04.????????????/​udate` ​   # what's the time now?
 +        sleep 2
 +        SEC2=`cat /​media/​owfs/​04.????????????/​udate` ​   # what's the time now, a bit later?
 +        [ $((SEC2-SEC1)) != 0 ] && [ $SEC1 -gt $APRIL_1_2019 ] && HWCLOCK=TIC ​  # Yippie, we have a running TIC!
 +    fi
 +fi
 +
 +echo "*** "​$HWCLOCK"​ ***"
 +
 +case "​${1:​-}"​ in
 +  stop|reload|restart|force-reload)
 +        if [ "​$HWCLOCK"​ = "​TIC"​ ]; then
 +            echo "​Stopping TIC-hwclock:​ nothing to do!"
 +        else
 +            echo "​Stopping fake-hwclock:​ saving system time to file "
 +            fake-hwclock save
 +        fi
 +        ;;
 +
 +  start)
 +        if [ "​$HWCLOCK"​ = "​TIC"​ ]; then
 +            echo "​Starting TIC-hwclock:​ sync system time with TIC"
 +            date -s @`cat /​media/​owfs/​04.????????????/​udate`
 +        else
 +            echo "​Starting fake hwclock: loading last known system time from file."
 +            fake-hwclock load $FORCE ​
 +        fi
 +        ;;
 +
 +  *)
 +        echo "​Usage:​ ${0:-} {start|stop|status|restart|reload|force-reload}"​ >&2
 +        exit 1
 +        ;;
 +esac
 +</​file></​p></​pre></​html>​
 +
 +Dieses script ersetzt das Startscript "​fake-hwclock"​. \\
 +Dafür muß man folgendes tun: \\
 +
 +  * TIC-hwclock nach /etc/init.d kopieren
 +
 +  # systemctl disable fake-hwclock
 +  # systemctl enable TIC-hwclock
 +
 +Unnötiges weg:
 +  # systemctl disable owftpd
 +  # systemctl disable owhttpd
 +  ​
 +=== Ein besseres Startscript ===
 +
 +Es gibt obskure Probleme mit dem LSB-Kommentarheader bei der Installation des Initscripts "​TIC-hwclock"​. \\
 +Lesen und verstehen: [[https://​wiki.debian.org/​LSBInitScripts/​]] \\
 +Besser wäre es vielleicht, das uralte und bewährte Initscript ​ "​hwclock.sh"​ zu modifizieren ... \\
 +
 +=== TIC-Testtool ===
 +
 +Damit kann man alte DS1994 funktionsprüfen. \\
 +Leider hängt sich manchmal beim Umstecken etwas auf, dann hilft nur noch reboot.
 +
 +<​html><​pre><​p style="​color:​ grey; background-color:​ white; font-size: 11px"><​file TIC-hwclock>​
 +#!/bin/bash
 +# ****************************************************************************
 +#
 +# tict: a tool for old Dallas DS1994 checking
 +#
 +# by koarrl 2019-04-24
 +#
 +# ****************************************************************************
 +
 +usage()
 +{
 + echo "​usage:​ `basename $0` { r | s | t }"
 + echo " ​ r .. read time & date from TIC"
 + echo " ​ s .. write system time to TIC & start it, report success or failure"​
 + echo " ​ t .. halt TIC internal clock (save battery)"​
 +}
 +
 +waittic()
 +{
 + NOWTIC=`ls -1 /media/owfs | grep 04.`
 + if [ -z "​$NOWTIC"​ ]; then
 + echo -n "​Insert TIC please "
 + while ((1)); do
 + sleep 0.5
 + NOWTIC=`ls -1 /media/owfs | grep 04.`
 + [ -n "​$NOWTIC"​ ] && { echo; break; }
 + echo -n "​."​
 + done
 + fi
 + echo "TIC found: "​$NOWTIC
 +}
 +
 +getstate()
 +{
 + SEC1=`cat $TICMOUNT/​$NOWTIC/​udate`
 + sleep 1.1
 + SEC2=`cat $TICMOUNT/​$NOWTIC/​udate`
 + if [ $((SEC2-SEC1)) != 0 ]; then
 + STATE=running
 + else
 + STATE=stopped
 + fi
 +}
 +
 +# **** MAIN ******************************************************************
 +
 +TICMOUNT="/​media/​owfs"​
 +
 +[ -z $1 ] && { usage; exit; }
 +[ -d $TICMOUNT ] || { echo "owfs needed, but not found! Sorry.";​ exit; }
 +[ -n `ls -1 $TICMOUNT | grep 04.` ] && waittic
 +
 +case "​$1"​ in
 + r)
 + echo "​Reading time from TIC ..."
 + getstate
 + echo "TIC ...... "`cat $TICMOUNT/​$NOWTIC/​date`"​ ($STATE)"​
 + echo "​System ... "​`date`
 + ;;
 + s)
 + echo "​Setting time and starting TIC ..."
 + echo 1 > $TICMOUNT/​$NOWTIC/​readonly/​clock
 + echo > $TICMOUNT/​$NOWTIC/​date
 + echo 0 > $TICMOUNT/​$NOWTIC/​readonly/​clock
 + echo 1 > $TICMOUNT/​$NOWTIC/​running
 + getstate
 + echo "TIC ...... "`cat $TICMOUNT/​$NOWTIC/​date`"​ ($STATE)"​
 + echo "​System ... "​`date`
 + ;;
 + t)
 + echo "​Stopping TIC ..."
 + echo 0 > $TICMOUNT/​$NOWTIC/​running
 + ;;
 + *)
 + ;;
 +esac
 +</​file></​p></​pre></​html>​
 +
de/koarrl_alzraspi.1551797925.txt.gz · Zuletzt geändert: 2019/03/05 15:58 von koarrl