In chroot wechseln und Paket-Schlüssel einrichten:
```console
-$ TERM=xterm sudo arch-chroot controlpi/
+$ TERM=xterm sudo arch-chroot /mnt/
# pacman-key --init
# pacman-key --populate archlinuxarm
```
# pacman -Q --deps --unrequired --unrequired
# pacman -Q --explicit
base
+ethtool
fakeroot
gcc
git
$ git clone https://aur.archlinux.org/pigpio.git
$ cd pigpio/
$ makepkg -s
-$ mv pigpio-79-1-armv7h.pkg.tar.xz ~/
+$ mv pigpio-XX-Y-armv7h.pkg.tar.xz ~/
$ cd ~/
$ rm -r pigpio/
$ exit
-# pacman -U /home/pi/pigpio-79-1-armv7h.pkg.tar.xz
+# pacman -U /home/pi/pigpio-XX-Y-armv7h.pkg.tar.xz
```
Paket-Cache leeren:
├── sudoers.d
│ └── wheel
└── systemd
+ ├── network
+ │ └── eth0.network
├── resolved.conf.d
│ └── NoNegCache.conf
└── system
$ sudo umount /mnt/boot/
$ sudo umount /mnt/
$ sudo losetup --detach /dev/loop0
-$ sudo dd if=20YY-MM-DD-controlpi-generic.img of=/dev/sdx bs=1M oflag=sync status=progress
+$ xz 20YY-MM-DD-controlpi-generic.img
+$ xz --decompress --stdout 20YY-MM-DD-controlpi-generic.img.xz | sudo dd of=/dev/sdx bs=1M oflag=sync status=progress
```
## Spezialisierte Images
$ git clone https://github.com/Salamek/qiosk.git
$ cd qiosk/archlinux/
$ makepkg -sA
-$ mv qiosk-1.1.16-1-armv7h.pkg.tar.xz ~/
+$ mv qiosk-X.Y.ZZ-armv7h.pkg.tar.xz ~/
$ cd ~/
$ rm -r qiosk/
$ exit
-# pacman -U /home/pi/qiosk-1.1.16-1-armv7h.pkg.tar.xz
+# pacman -U /home/pi/qiosk-X.Y.ZZ-armv7h.pkg.tar.xz
```
Wie auch beim generischen Image wird der Paket-Cache nach allen
Die Konfigurations-Dateien werden – wie auch beim generischen Image – aus
diesem git-Repository synchronisiert:
```console
-$ sudo rsync -rlp maschinenplatzpi/etc /tmp/controlpi/
-$ rsync -rlp maschinenplatzpi/home/pi /tmp/controlpi/home/
+$ sudo rsync -rlp maschinenplatzpi/etc /mnt/
+$ rsync -rlp maschinenplatzpi/home/pi /mnt/home/
```
Im Einzelnen sind dies:
$ sudo umount /mnt/boot/
$ sudo umount /mnt/
$ sudo losetup --detach /dev/loop0
-$ sudo dd if=20YY-MM-DD-controlpi-maschinenplatzpi.img of=/dev/sdx bs=1M oflag=sync status=progress
+$ xz 20YY-MM-DD-controlpi-maschinenplatzpi.img
+$ xz --decompress --stdout 20YY-MM-DD-controlpi-maschinenplatzpi.img.xz | sudo dd of=/dev/sdx bs=1M oflag=sync status=progress
```
[https://git.graph-it.com/?p=graphit/unipi-kernel.git](https://git.graph-it.com/?p=graphit/unipi-kernel.git)
so angepast, dass es auf aktuellen Kernel-Versionen kompiliert werden kann.
+Eine neuere Version der Kernel-Module wird unter
+[https://github.com/UniPiTechnology/unipi-kernel-modules](https://github.com/UniPiTechnology/unipi-kernel-modules)
+entwickelt, ist aber zu diesem Zeitpunkt noch nicht ausreichend komplett
+und dokumentiert.
+
## Konfiguration aus Hersteller-Image
Außerdem stellt der Hersteller unter
[https://kb.unipi.technology/en:hw:02-neuron:download-image:03-opensource](https://kb.unipi.technology/en:hw:02-neuron:download-image:03-opensource)
# su - pi
$ git clone git://git.graph-it.com/graphit/unipi-kernel.git
$ cd unipi-kernel/
-$ export LINUX_DIR_PATH=/lib/modules/5.XX.YY-rpi-ARCH/build
+$ export LINUX_DIR_PATH=/lib/modules/X.YY.ZZ-rpi-ARCH/build
$ make
$ sudo -E make install
$ cd device_tree/
diesem git-Repository synchronisiert:
```console
$ sudo rsync -rlp unipi/boot /mnt/
+$ sudo rsync -rlp unipi/etc /mnt/
$ rsync -rlp unipi/home/pi /mnt/home/
```
├── boot
│ └── config.txt
├── etc
-│ └── modules-load.d
-│ └── unipi.conf
+│ ├── modules-load.d
+│ │ └── unipi.conf
+│ └── systemd
+│ └── system
+│ ├── multi-user.target.wants
+│ │ └── rmmodunipi.service -> /etc/systemd/system/rmmodunipi.service
+│ └── rmmodunipi.service
└── home
└── pi
└── conf.json
Der `pigpio`-Daemon, der im generischen Image eingeschaltet ist, wird für
das UniPi-Image ausgeschaltet:
```console
-# rm /etc/systemd/sytem/multi-user.target.wants/pigpiod.service
+# rm /etc/systemd/system/multi-user.target.wants/pigpiod.service
```
Das Schließen und Aufspielen des Images funktioniert dann genau wie für das
$ sudo umount /mnt/boot/
$ sudo umount /mnt/
$ sudo losetup --detach /dev/loop0
-$ sudo dd if=20YY-MM-DD-controlpi-unipi.img of=/dev/sdx bs=1M oflag=sync status=progress
+$ xz 20YY-MM-DD-controlpi-unipi.img
+$ xz --decompress --stdout 20YY-MM-DD-controlpi-unipi.img.xz | sudo dd of=/dev/sdx bs=1M oflag=sync status=progress
```
--- /dev/null
+[Match]
+Name=en*
+
+[Network]
+DHCP=yes
+DNSSEC=no
--- /dev/null
+/etc/systemd/system/rmmodunipi.service
\ No newline at end of file
--- /dev/null
+[Unit]
+Description=rmmod unipi at shutdown/reboot
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStop=/usr/bin/rmmod unipi
+
+[Install]
+WantedBy=multi-user.target