# 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