Variante 1: Basis RaspiOS Lite
Es wird nur ein Minimalsetup beschrieben. Weitere Anpassungen wie z.B. NMEA2000, GPS etc. sind möglich, führen an dieser Stelle aber zu weit.
Benötigt:
Herunterladen eines aktuellen RaspiOS Lite:
wget https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2025-05-13/2025-05-13-raspios-bookworm-arm64-lite.img.xz
Anzeigen der Geräteliste ohne einen angeschlossenen Kartenleser:
lsblk
Anschließen des SD-Kartellesers und überprüfen der aktuellen Geräte
lsblk
Jetzt sind zwei neue Laufwerke z.B. sdd
und sde
vorhanden
Einstecken einer leeren SD-Karte, 64 GB damit genügend Speicher für z.B. Seekarten vorhanden ist.
lsblk
Prüfe die aktualisierte Geräteliste, die eingelegte Karte sollte jetzt neu hinzugekommen sein:
/dev/sde
Schreibe das Image auf die Karte, das sync
ist eigentlich überflüssig, aber man weiß ja nie:
xzcat 2025-05-13-raspios-bookworm-arm64-lite.img.xz | sudo dd of=/dev/sde bs=4M conv=fsync sync
Damit dit dieser Teil erledigt, die Karte kann entnommen werden. Einfach herausziehen.
Im folgenden Beispiel sind Benutzername und Kennwort angegeben. Für ein später produktiv zu nutzendes System bitte unbedingt eigene Daten benutzen!
Karte einlegen und Raspberry einschalten.
Tastatur und Monitor sind erforderlich.
Keyboard layout: german / german Username: arthur Password: arthur
Login: Anmeldung mit gerade angelegtem Benutzer
sudo raspi-config
obp60p
de_DE.UTF8
, auch als Default auswählenEurope/Berlin
DE
Finish und Reboot
Auf der folgenden Anmeldeseite wird die aktuelle IP-Adresse angezeigt. Die weitere Konfiguration machen wir vom großen PC aus. Damit können z.B. Befehle aus der Anleitung mit Cut&Paste ausgeführt werden. SSH wird im folgenden als die Hauptfernsteuerungsmethode verwendet.
ssh arthur@192.168.0.113
Fingerprint bestätigen: yes
Umschalten auf Benutzer root
sudo -i
Kennwort eingeben, damit direktes Anmelden an Root möglich ist
passwd obp60p obp60p
Im weiteren wird empfohlen die SSH-Verbindung nur über Schlüssel zuzulassen. Am besten ist es dafür z.B. einen Nitro-Key zu verwenden. Dieses sprengt aber diese Anleitung und wird ggf. an anderer Stelle besprochen.
Sicherstellen, daß bei Paketinstallation nur wirklich benötigte Pakete als Abhängigkeiten installiert werden:
nano /etc/apt/apt.conf
APT::Install-Recommends "0"; APT::Install-Suggests "0";
Umschaltung auf SysVinit vorbereiten. Ich installiere hier auch gleich meinen
Lieblingseditor joe
. An stellen wo dieser im Folgenden benutzt wird, kann natürlich
auch jeder andere Editor wie nano
oder vi
genommen werden.
apt-get install sysvinit-core rsyslog chrony orphan-sysvinit-scripts net-tools \ ifupdown joe
Netzwerk vorbereiten
joe /etc/network/interfaces
auto eth0 iface eth0 inet dhcp auto can0 iface can0 inet manual # PiCAN-M pre-up /sbin/ip link set can0 type can bitrate 250000 up /sbin/ifconfig can0 up down /sbin/ifconfig can0 down
Neustart
shutdown -r now
Hier wird die SSH-Verbindung getrennt. Sobald der Raspi wieder gestartet ist neu verbinden und weiter geht es:
ssh arthur@192.168.0.113 sudo -i
Reste von Systemd wegräumen
apt-get purge systemd deluser systemd-timesync deluser systemd-network delgroup systemd-journal rm -Rf /var/log/journal rm -Rf /var/lib/systemd
Klassisches Datumsformat für rsyslog
einstellen
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
Pakete installieren, insbesondere aptitude
zur Paketverwaltung
apt-get install aptitude vim pwgen anacron
System aktualisieren auf letzten Patchstand
aptitude u -> Paketliste aktualisieren U -> Aktualisierbare markieren g g
Installierte Pakete immer im Zugriff haben zum leichten Vergleich, ggf. auch mit Systemkopien, täglich aktualisieren
#!/bin/sh /usr/bin/dpkg --get-selections | cut -f 1 > /root/`hostname -s`-selections.txt
chmod +x /etc/cron.daily/packages
Ungenutzte / nicht gewollte Pakete entfernen
apt-get purge apparmor tasksel tasksel-data triggerhappy pastebinit \ ppp avahi-daemon cifs-utils ntfs-3g exfatprogs usb-modeswitch \ mkvtoolnix ssh-import-id vim-tiny
Die obige Liste ist noch nicht vollständig, hier fehlt noch etwas Nacharbeit.
Das ist aber nicht weiter schlimm, es liegen dann nur ungenutzte Pakete herum.
Nochmals zur Sicherheit
apt autoremove
Prüfe, ob noch Reste von nicht mehr verwendeten Paketen vorliegen und räume ggf. auf. In Zeile 3 ist eine manuelle Überprüfung vorgesehen, falls dort etwas auftaucht was doch behalten werden soll. Im Normalfall kann das auch übersprungen werden.
cd /tmp dpkg --get-selections | grep deinstall | cut -f 1 > deinstall.txt joe deinstall.txt xargs dpkg --purge < deinstall.txt rm deinstall.txt
Nachdem das System nun in den gewünschten Ausgangszustand versetzt worden ist können jetzt Pakete installiert werden:
apt-get install htop git socat uuid
# PiCAN-M enable_uart=1 dtparam=i2c_arm=on dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835-overlay
dtparam=i2c_arm=on
# I2C RTC DS3231 dtoverlay=i2c-rtc,ds3231
# Waveshare 4.3" HDMI display hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0
# Create virtual serial connection socat pty,rawer,echo=0,group-late=dialout,mode=0660,link=/dev/ttyV0 \ pty,rawer,echo=0,group-late=dialout,mode=0660,link=/dev/ttyV1 &
Hier nochmals neu starten zum Überprüfen ob soweit alles fein ist und um die zuvor eingegebene Hardwarekonfiguration zu aktivieren:
shutdown -r now
Zur besseren Übersicht installiere ich nicht alles in einem Rutsch, sonderne gruppiere etwas je nach Funktion:
apt-get install xserver-xorg-core xserver-xorg-input-evdev \ xserver-xorg-input-libinput xserver-xorg-video-fbdev x11-xserver-utils
Hinweis: xserver-xorg-input-evdev
für die HDMI-Variante, xserver-xorg-input-libinput
für die DSI-Variante.
Displaymanager mit zugehöriger Konfiguration
apt-get install slim
default_user arthur auto_login yes
Themes sind in /usr/share/slim/themes
Fenstermanager openbox
apt-get install openbox python3-xdg
obconf
auf keinen Fall installieren, es zieht systemd rein über Abhängigkeit von GTK3!
Desktopsymbole
apt-get install idesk
Bildschirmhintergründe vorbereiten
mkdir /usr/local/share/backgrounds
Panel für z.B. Uhr und Übersicht über laufende Programme
apt-get install tint2
Kompositor, u.a. für Runde Fensterecken von OBP60v benötigt
apt-get install xcompmgr
Fernsteuerung
apt-get install x11vnc
Hilfsprogramme für alle Benutzer aktivieren
[...] idesk & tint2 & x11vnc -quiet -forever -nopw -rfbport 5900 & xcompmgr &
Audio
apt-get install volumeicon-alsa
Anwendungen: Dateimanager, Terminal und Texteditor
apt-get install pcmanfm lxterminal mousepad
Backup-Programm zum SD-Karte klonen (SD Card Copier)
apt-get install piclone gvfs dbus-x11
Damit das Kommando und alle daraus heraus aufgerufenen Sub-Kommandos ausgeführt werden können,
muß der Benutzer einen erweiterten Eintrag in sudoers
haben. Da wir gerade dabei sind,
erlauben wir auch dem Standardbenutzer das Ausschalten und Neustarten des Systems.
Wichtig ist daß die Zeilen mit dem Benutzernamen arthur
am Ende der Datei sind vor dem
@include.
visudo /etc/sudoers
Cmnd_Alias SYSTEM = /usr/sbin/shutdown, /usr/sbin/halt, /usr/sbin/reboot, /usr/sbin/poweroff Cmnd_Alias PICLONE = /usr/bin/dbus-launch /usr/bin/piclone [...] arthur ALL=(ALL) NOPASSWD:SYSTEM arthur ALL=(root) NOPASSWD:PICLONE # See sudoers(5) for more information on "@include" directives: [...]
Browser (hier unklar was „der beste“ Browser ist)
apt-get install chromium-browser
Seekarten
apt-get install opencpn
Custom-Konfiguration aus OBP60P-Repository holen
git clone https://git.hoogi.de/thooge/OBP60P
Die enthaltenen Dateien müssen nach Bedarf an die passenden Stellen im Dateisystem
kopiert werden. Generische Dateien in passende Unterverzeichnisse von /usr/local/…
.
Es gibt zwei Installationsscripte. Eins für root' und eins für den normalen Benutzer.
===== 6) Benutzereinstellungen =====
Auf dem Raspberry über SSH als Benutzer „arthur“ anmelden.
<code>
cd ~
mkdir -p .config/openbox
cp /etc/xdg/openbox/rc.xml ~/.config/openbox
cp /etc/xdg/openbox/menu.xml ~/.config/openbox
</code>
idesk TODO Hier fehlt etwas Detaillierung
* in der Konsole einmal
starten
*
mkdir .idesktop
* Symboldateien
*.lnk im Verzeichnis
.idesktop anlegen
rfkill TODO vorbereitete Konfigurationsdateien, Symbole und Bilder aus einem Git-Repository laden und scriptgesteuert an passende Orte im Dateisystem einspielen:
* Openbox-Kontextmenü
* Bildschirmhintergründe
* Zeichensätze
* Desktopsymbole
===== 7) Extras =====
==== Benutzer für Tablet ====
Das Tablet verbindet sich über WLAN mit einem speziellen VNC-Server
der mit einer anderen als der physischen Bildschirmauflösung
arbeitet. Damit kann eine verbesserte Darstellung erzielt werden.
<code>
adduser tablet
apt-get install rungetty xvfb
</code>
<file conf /etc/inittab>
[…]
1:2345:respawn:/sbin/rungetty tty1 -u root – login -f tablet
</file>
Die folgende Zeile kann in den Autostart von Openbox mit aufgenommen werden:
<code>
x11vnc -create -env FD_PROG=/usr/bin/openbox -env X11VNC_CREATE_GEOM=${1:-1024x768x16} -nopw -no6 -forever
</code>
==== Serververbindung ====
Falls ein eigener Server im Internet vorhanden ist, kann eine VPN-Verbinding
zu diesem hergestellt werden. Ich empfehle Wireguard:
apt-get install wireguard
Damit kann das OBP60P über den Server von außen zuverlässig erreicht werden.
Voraussetzung ist natürlich daß das MFD permanent an ist.
==== WLAN ====
Um WLAN zu nutzen muß dieses zuvor konfiguriert werden:
<file conf /etc/network/interfaces>
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
</file>
<file conf /etc/wpa_supplicant/wpa_supplicant.conf>
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=0
network={
ssid=„BORDWLAN“
psk=„“
key_mgmt=WPA-PSK
}
</file>
Aktueller Status:
wpa_cli status
==== Bluetooth ====
deaktivieren mit Kernel-Kommandozeile
rfkill.default_state=1, eintragen in
cmdline.txt''
apt-get install bluetooth rfkill
Gerät koppeln
bluetoothctl pairable on scan on ... warten bis Gerät sichtbar ... scan off trust <MAC> connect <MAC> exit
Für Videocapture-freundliche Auflösung von 1280×720 kann dieses mit xrandr eingestellt werden:
xrandr --output HDMI-1 --mode 1280x720