thinrasp/README.md

111 lines
5.1 KiB
Markdown
Raw Permalink Normal View History

2019-11-26 21:36:24 +01:00
# ThinRasPi Konfiguration
## Einrichtung
### default
* Linux Image herunterladen für Raspberry Pi (Linux nach Wahl, empfohlen Ubuntu LTS *
* Image mit `dd` auf eine entsprechende SD-Card spielen
* Bsp.: `dd if=$DEVICE bs=8M | pv | dd of=$DEVICE bs=8M`
* RasPi booten
* Linux durch konfigurieren / Benutzer anlegen für Fernwartungszwecke (zum Beispiel tux-mania)
* zusätzlich Benutzer für default Login anlegen (zum Beispiel thinclient)
* unnötige Pakete deakivieren/deinstallieren um Speicher auf der SD-Card zu sparen <- siehe PDF
* zum Beispiel `mate-screensaver`, diverse Spiele und Programme (vielleicht auch `mate-terminal`?)
* Liste: `dphys-swapfile mate-screensaver fake-hwclock`
* folgende Pakete nach installieren `fuse lsof p910nd remmina freerdp-x11` <- siehe PDF
* `lightdm.conf` in `/etc_org/lichtdm/` erstellen <- Vorlage liegt unter `/usr/share/doc/lightdm`
* Optional: Datei aus gitrepo nehmen
* `mount_overlay` in `/usr/local/bin` ablegen <- siehe Anleitung
* `fstab` anpassen <- siehe Anleitung
### Image kopieren / Script ###
* `backup.sh $DEVICEwithFULLPATH` <- Backup erstellen
* `restore.sh $DEVICEwithFULLPATH` <- Backup zurück spielen
### Image kopieren / Alternative!
Diese Variante sollte verwendet werden, wenn die Ausgangs SDCard eine andere größe hat als die Ziel SDCard.
* also erstes sollten die Daten von der Quell-SD-Card gesichert werden.
```
sfdisk -d /dev/$DEV > part_table #Partitionstabelle sichern
mount /dev/$PART1 /mnt #BOOT-Partition mounten
cd /mnt #in das Mountverzeichnis wechseln
tar cvfj $ZielVerzeichnis/part1.tbz2 * #Daten von BOOT-Partition sichern
cd / #aus Mountverzeichnis wechseln
umount /mnt #BOOT-Partition aushängen
mount /dev/$PART2 /mnt * #ROOT-Partition einhängen
cd /mnt #in das Mountverzeichnis wechseln
tar cvfj $ZielVerzeichnis/part2.tbz2 #Daten von ROOT-Partition sichern
umount /mnt #ROOT-Partition aushängen
```
* Jetzt sind die Daten unter `$ZielVerzeichnis` gesichert. Einfach die Quell-SDCard entnehmen und die Ziel-SDCard einstecken.
```
sfdisk /dev/$DEV < part_table #Partitionstabelle auf Ziel-SDCard spielen
#Wichtig! Vor dem weiter machen prüfen, ob die neue Partitionstabelle erkannt wurde.
#Das kann man mit "cat /proc/partitions."
#Sollte das nicht der Fall sein, die SDCard entweder entnehmen und wieder einstecken oder "kpartx" verwenden.
#Dann das Dateisystem für $PART1 und $PART2 erzeugen.
mkfs.vfat -n PI_BOOT /dev/$PART1
mkfs.ext4 -L PI_ROOT /dev/$PART2
mount /dev/$PART1 /mnt #BOOT-Partition einhängen
cd /mnt #in das mount-Verzeichniswechseln
tar xvfj $ZielVerzeichnis/part1.tbz2 ./ #Sicherung in /mnt entpacken
cd / #in das Root-Verzeichnis des lokalen Systems wechseln
umount /mnt #BOOT-Verzeichnis aushängen
mount /dev/PART2 /mnt #ROOT-Partition der SDCard einhängen
cd /mnt # in das Mountverzeichnis wechseln
tar xvfj $ZielVerzeichnis/part2.tbz2 ./ #Sicherung von PART2 in /mnt entpacken
cd / #wieder in das lokale ROOT-Verzeichnis wechseln
umount /mnt #Partition wieder aushängen
```
## ACL Einstellungen sichern und zurückschreiben
* Einstellungen für `etc_org` und `home_org` sichern
`getfacl -R $DIR > $FILE`
## Autostart / Hintergundbild
* `.xession`, `.xsessionrc` und `.xinitrc` haben unter mate keinen Effekt gezeigt oder ging nur sporadisch
* Autostart wird jetzt über `~/.config/autostart` ausgefüht -> dafür muss ein Desktop Icon erstellt werden / optional kann es über Einstellung (autostart/startup) konfiguriert werden
## git
* sync wie folgt gemacht
* root Berechtigung
* Image loop mounten
* in git Ordner wechseln
* Änderung in `etc_org` und/oder `home_org` anpassen
* Änderung mit `git` adden
* Änderung in `git` commiten
* Änderung in `gogs` pushen <- optional in den entsprechenden User voher wechseln
## autoupdater deaktivieren!
* `/home_org/thinclient/.settings.sh/` <- Update Notifier deaktiviert (allgemeine Settings für User unter Ubuntu <- von tux-mania erstellt
* unter `$HOME/.config/autostart` eine `*desktop` für den autostart in Mate erstellt
* update-manager `/etc_org/update-manager`
* ^^ auf "never" setzen <- führt nicht zum Erfolg (01.02.2016)
`chmod 644 /usr/bin/update-notifier`
* ^^ rechte entzogen <- führt nicht zum Erfolg (01.02.2016)
* editing `/etc/apt/apt.conf.d/10periodi`c and changeing und `20auto-upgrades`
`APT::Periodic::Update-Package-Lists "1";`
`APT::Periodic::Update-Package-Lists "0";`
^^ alls von `1` auf `0` setzen
^^ erfolgreich
* `nano /etc/apt/apt.conf.d/99update-notifier`
* `#DPkg::Post-Invoke {"if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi "; };`
* `/etc_org/cron.daily/update-notifier-common`
* ^^ `exit 0`
* `/etc/cron.daily/apt-compat`
* ^^ `exec /usr/lib/apt/apt.systemd.daily <- auskommentieren`
* systemctl disable apt-daily.service
* systemctl stop apt-daily.service
* ^^ Verzeichnis Schreibrechte gesetzt und in der Bash ausgeführt
* ^^sicherheitshalber in der rc.local eingetragen / damit bei reboot es per default deaktiviert wird
* ^^/etc_org/* nach /etc/ kopieren