Tutorial
https://tutorials-raspberrypi.de/
https://www.raspberrypi.org/documentation/installation/installing-images/linux.md
Image auf SD installieren:
unzip 2020-05-27-raspios-buster-full-armhf.zip | dd bs=4M of=/dev/mmcblk0p1 iflag=fullblock oflag=direct status=progress; sync
Image kopieren
sudo dd if=/dev/[SD CARD DEVICE NAME] of=[IMAGE FILE NAME].iso bs=4M status=progress
Bei if= den Devicenamen ohne Partitions-ID nehmen, also "/dev/mmcblk0 ", nicht "/dev/mmcblk0p1". Dann landen zwei Partitionen in einem Image.
Pishrink: https://github.com/Drewsif/PiShrink verkleinert Image, sodass es sich beim ersten boot automatisch auf die Grösse der neuen SDcard vergrössert:
odysseus3:/run/media/thommie/ab51503b-6005-4c24-960f-415e289a2eb1 # pishrink.sh -v raspi05_backup2.img raspi05_backup2_shrink.img pishrink.sh v0.1.3 pishrink.sh: Copying raspi05_backup2.img to raspi05_backup2_shrink.img... ... pishrink.sh: Gathering data ... Creating new /etc/rc.local pishrink.sh: Checking filesystem ... rootfs: 116220/3852672 files (0.3% non-contiguous), 1578868/15525376 blocks resize2fs 1.46.5 (30-Dec-2021) pishrink.sh: Shrinking filesystem ... resize2fs 1.46.5 (30-Dec-2021) Resizing the filesystem on /dev/loop0 to 1425936 (4k) blocks. Begin pass 2 (max = 473157) Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Begin pass 3 (max = 474) Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Begin pass 4 (max = 9713) Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX The filesystem on /dev/loop0 is now 1425936 (4k) blocks long. pishrink.sh: Shrinking image ... pishrink.sh: Shrunk raspi05_backup2_shrink.img from 60G to 5.7G ...
Kopie raus schreiben
sudo dd if=~/raspbian_backup.img of=/dev/sdf
Image mounten
Partitionsstruktur des Images analysieren
odysseus3:/mnt # sfdisk -d /srv/downloads/raspi05_backup_310521.img label: dos label-id: 0x91906680 device: /srv/downloads/raspi05_backup_310521.iso unit: sectors sector-size: 512 /srv/downloads/raspi05_backup_310521.img1 : start= 8192, size= 524288, type=c /srv/downloads/raspi05_backup_310521.img2 : start= 532480, size= 60047360, type=83
Loopback devices erzeugen
losetup -P -f /srv/downloads/raspi05_backup_310521.iso
oder mit kpartx
odysseus3:~ # kpartx -a /srv/downloads/raspi05_backup_310521.iso
Dann werden die loop devices unter /dev/mapper erzeugt und sind mount-bar.
odysseus3:/mnt # mount -o loop /dev/mapper/loop0p1 /mnt/loop0p0/
Danach loop devices mit losetup -D
entfernen.
Watchdog
OBS compile
sudo cmake -DUNIX_STRUCTURE=1 -DENABLE_PIPEWIRE=OFF -D-DENABLE_WAYLAND=OFF -DBUILD_BROWSER=OFF -DCMAKE_INSTALL_PREFIX=/usr ..
sudo make -j4
OBS mit Software Rendering
OBS bzw. OPENGL versucht beim Starten standardmässig das Rendering über eine GPU, das geht im RASPI schief. Daher muss man über eine Umgebungsvariable das Software-Rendering hart definieren. Für OBS wird dafür der Desktop Shortcut angepasst:
/usr/share/applications/com.obsproject.Studio.desktop
und darin
Exec=env LIBGL_ALWAYS_SOFTWARE=1 obs
Networking
Der RASPI nutzt dhcpcd als dhcp Client. Bridge settings nicht über /etc/interfaces setzen, sondern über systemd-networkd.
https://wiki.archlinux.org/title/systemd-networkd#Network_bridge_with_DHCP
rtmp Server für Streaming
https://blog.unixweb.de/video-streaming-server-mit-restreamer-2-0/
https://blog.unixweb.de/video-streaming-server-auf-einem-raspberry-pi/
Hier wird als Streaming Lösung der datarhei Restreamer von https://datarhei.com/ der FOSS GmbH Schweiz in einem Docker Container benutzt. Siehe https://hub.docker.com/r/datarhei/restreamer