# 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
