CM4-IO-Base-B von Waveshare

Seit einer Weile sind Raspberry Pi 4 eher schlecht zu bekommen. Ich hatte mir wg. meiner Bestellung des Homeassistant Yellow bereits ein Compute Module 4 gekauft, also quasi das Herz des Raspi nur ohne I/O. Die Lieferung des Yellow hat sich leider weiter und weiter verschoben (aktuell auf Ende Jan 2023), so daß ich auf die Idee kam mit einem anderen I/O Board einen Computer zu vervollständigen.

Das im Titel genannte CM4-IO-BASE-B gefiel mir ganz gut und kam mit Netzteil, Gehäuse, Lüfter etc. (dauerte nach Amazon-Bestellung ein paar Wochen, bis es aus China geliefert war).

So konnte ich schon mal üben, wie ich mit usbboot/rpiboot und dem Raspberry Imager die EMMC bespielte, funktionierte ungewohnt, aber auf Anhieb. Meine Versuche, die NVMe-SSD als Bootmedium zu benutzen, scheiterten mehrfach.

Ich fand dann diesen Blogpost, der das Prozedere so beschrieb, wie es dann auch für mich funktionierte. Abweichend von dem Blogpost nutzte ich rpi-clone (Danke, Volker), um /boot und die root-partition von EMMC auf NVMe zu kopieren und die entsprechenden Einträge zu ändern.

In unserem Fall mußte noch eine Zeile gepatched werden wie hier beschrieben auf:

if [[ $dst_disk == *"mmcblk"* || $dst_disk == *"nvme"* ]] # update this line

Zu guter letzt habe ich noch die Schritte ab Abschnitt 5 in diesem Blogpost nachvollzogen, um die rtc / hwclock auch zu benutzen. Davor hatte ich wie auf der oben bereits verlinkten Produktseite beschrieben die Anweisungen für den Lüfter (Achtung, nie den Lüfterstecker stecken oder ziehen, wenn der Raspi Strom hat!) und die rtc befolgt.

Weil ich vor meinen ersten Erfolgen sehr oft geimaged und Lüfter/RTC Treiber installiert habe, hatte ich mir dazu ein rudimentäres Script gebaut (der hostname sei waveshare):

ssh-copy-id pi@waveshare
ssh pi@waveshare "sudo apt update ; sudo apt full-upgrade ; sudo apt install dkms git raspberrypi-kernel-headers"
ssh pi@waveshare "mkdir -p ~/src ; cd ~/src ; git clone https://github.com/neg2led/cm4io-fan.git ; cd cm4io-fan ; sudo chmod 777 install.sh ; sudo ./install.sh"
ssh pi@waveshare 'echo "echo dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi >>/boot/config.txt" >install-rtc.sh'

# die einfachen Anführungszeichen bewirken, daß alles dazwischen von ssh an den raspi übertragen und dort interpretiert wird, nicht lokal auf meinem Mac (incl. der Ausgabeumlenkungen)
ssh pi@waveshare chmod +x install-rtc.sh
ssh pi@waveshare sudo ./install-rtc.sh
ssh pi@waveshare tail /boot/config.txt
echo "Taste …"
read a
ssh pi@waveshare sudo reboot

Viel Spaß beim Nachbasteln 🙂

Update: ein mir vorher nicht klarer “Nachteil” dieses I/O Boards ist, daß nur kleine M2 NVMe-SSDs verbaut werden können (2230 oder 2242). Die vom Hersteller empfohlene hätte ich nur in Asien bestellen können, eine andere wäre aus USA geshipped worden. Teilweise wurde berichtet, daß doppelseitig bestückte SSDs geliefert wurden (zu Artikelbeschreibungen/-bildern von einseitig bestückten), die leider nicht passen. Ich hab mich letztlich für “Samsung SSD 256GB PM991 M.2 2242 42mm PCIe 3.0 x4 NVMe MZALQ256HAJD MZ-ALQ2560 Solid State Drive für Lenovo Dell HP Acer Asus Andere” auf Amazon entschieden, die passt und funktioniert gut.

Update2: um zu erfahren, wo es Raspis oder CM4 auf Lager gibt, hilft rpilocator (für andere schwer lieferbare HW hilft hwlocator)


Posted

in

by

Tags: