Compute Module 4

Das Compute Module 4 (CM4) ist vereinfacht gesagt ein Raspberry Pi 4B ohne I/O Anschlüsse.
„Was soll das?“ hab ich mich auch zunächst gefragt als ich das erste Mal davon hörte, aber der Vorteil besteht darin, du kannst die sehr kleine Platine auf ein spezielles I/O Boards aufstecken, dass für den Anwendungszweck zugeschnitten ist. Im einen Fall kann das Board SATA Anschlüsse zur Verfügung stellen, im anderen einen PCI-X Steckplatz haben, ebenso kannst es direkt auf die Platine eines Displays stecken, ohne ein HDMI oder DSI-Kabel zu benutzen. Die Möglichkeiten sind fast unbegrenzt.

Hardware des Compute Module 4

Das CM4 ist eine Platine mit den Abmessungen 55 * 44mm. Darauf sitzen im Wesentlichen ein BCM2711C0 als SoC, der eine ARM Cortex-A72 CPU beinhaltet, dies entspricht den Daten des Raspberry Pi 4B 8GB. Außerdem sind auf dem CM4 wahlweise 1, 2,4, 8GB Hauptspeicher verbaut. Dazu kann je nach Modell noch ein eMMC Chip mit 8, 16 oder 32GB Kapazität vorhanden sein. Außerdem gibt es das Modul mit oder ohne WLAN, wodurch 32 verschiedene Varianten des CM4 auf dem Markt sind. Die Varianten mit WLAN bringen auch Bluetooth 5.0LE mit.

Auf der Unterseite des CM4 befinden sich zwei 100-polige Kontaktleisten(Hosiden DF40 Series), mit denen das Modul auf das jeweilige Carrierboard aufgesteckt wird. Diese führen nicht nur GPIO, USB und andere Kontakte des Raspberry Pi 4 nach draußen sondern auch eine PCI-X 2.0×1 Lane.

Compute Module 4 ohne WLAN Modul
Olli Graf - raspithek.de
cm4Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Compute Module 4 ohne WLAN Modul
CM4 mit WLAN Modul
Olli Graf -raspithek.de
cm4-wlan-emmcCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
CM4 mit WLAN Modul
Unterseite des Moduls mit den beiden DF40 Kontaktleisten (links &rechts)
Olli Graf -raspithek.de
cm4-back-1Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Unterseite des Moduls mit den beiden DF40 Kontaktleisten (links &rechts)

I/O Board

Raspberry Pi I/O-Board mit aufgestecktem Compute Module 4
Olli Graf - raspithek.de
raspi-io-board-mit-cm4-1Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Raspberry Pi I/O-Board mit aufgestecktem Compute Module 4

Das I/O Board der Raspberry Pi Foundation ist eine Referenzplatine, die eine Vielzahl von Schnittstellen für das CM4 zur Verfügung stellt. Neben bekannten Schnittstellen wie HDMI, USB und MicroSD ist auch ein PCIe 1x Slot sowie jeweils zwei FPC Konnektoren für DSI und CSI. Die Vielzahl an Schnittellen zeigt, welches Potential im CM4 steckt. Allerdings ist das I/O Board sehr klobig, wir benötigen es aber, um das CM4 in Betrieb nehmen zu können.

eMMC flashen

Um das Betriebssystem auf das eMMC Modul zu flashen, benötigst du das I/O Board und ein passendes Netzteil. Stecke das Compute Module vorsichtig auf die Kontaktleisten bis es fest sitzt.

Zum Flashen benutze ich den DietPi Raspi und installiere zunächst mal die notwendigen Packages:

sudo apt install git libusb-1.0-0-dev pkg-config build-essential -y

Im nächsten Schritt klonen wir das rpiboot Repository

git clone --depth=1 https://github.com/raspberrypi/usbboot

rpiboot ist ein Programm, dass einen Raspberry Pi (und das CM4) mit einem speziellen Bootloader bootet, so dass er das eMMC Modul als Massenspeicher zur Verfügung stellt.

Im nächsten Schritt musst du das rpiboot Programm aus dem Quellcode bauen

cd usbboot
make

Danach sollte im Verzeichnis ein ausführbares Programm namens rpiboot liegen:

-rwxr-xr-x 1 pi pi 1023128 Nov 12 10:39 rpiboot
Detailvergrößerung dieser Jumper muss für den Flash Vorgang geschlossen sein.
Olli Graf -raspithek.de
ioboard-jumperCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Detailvergrößerung dieser Jumper muss für den Flash Vorgang geschlossen sein.

Jetzt schließt du das I/O-Board an den Raspi an. Dazu benötigst du ein USB-A auf Micro-USB Datenkabel. Ich hatte zunächst ein reines Ladebabel erwischt und es passierte natürlich nichts. Wichtig ist, dass der Jumper 1 neben den DSP Ports geschlossen ist. Dummerweise wird keine Steckbrücke mitgeliefert und ich musste einen aus einer alten IDE Platte zweckentfremden. Das Board wird dann über die Hohlstecker-Buchse mit 12V Spannung versorgt, darauf hin wird auf dem Raspi ein neues USB Gerät sichtbar.

Das I/O-Board mit aufgestecktem CM4 ist als "Broadcom Corp. BCM2711 Boot" als USB Gerät verfügbar.
Olli Graf -raspithek.de
ioboard-connectedCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Das I/O-Board mit aufgestecktem CM4 ist als „Broadcom Corp. BCM2711 Boot“ als USB Gerät verfügbar.

Der Name Broadcom Corp. BCM2711 Boot weist daraufhin, dass sich das Modul im Bootloader Modus befindet und wir jetzt unser neues Programm zum Einsatz bringen können.

sudo ./rpiboot

rpiboot sucht sich jetzt selbst das USB Gerät raus und schreibt einen Bootloader auf das Compute Module, der das eMMC Modul als Massenspeicher zur Verfügung stellt.

Ausgabe des erfolgreichen rpiboot Aufrufs.
Olli Graf -raspithek.de
cm4-flashedCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Ausgabe des erfolgreichen rpiboot Aufrufs.

Nach dem Lauf leuchtet neben der roten Power LED auch die grüne Status LED auf dem I/O-Board leuchtet (zwischen den beiden HDMI Buchsen).

Auch auf dem Raspberry Pi sieht das jetzt anders aus:

Der eMMC Speicher ist unter /dev/sda verfügbar, das CM4 hat jetzt den Namen Broadcom Corp. Compute Module
Olli Graf -raspithek.de
cm4-lsblkCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Der eMMC Speicher ist unter /dev/sda verfügbar, das CM4 hat jetzt den Namen Broadcom Corp. Compute Module

Das Compute Module at am USB jetzt den Namen Broadcom Corp. Compute Module, was anzeigt, dass es im Massenspeichermodus ist und das Modul ist unter /dev/sda als Blockgerät mit einer Kapazität von 32GB verfügbar. Jetzt kannst du Raspberry Pi OS 5 auf das Modul schreiben und das CM4 ist einsatzbereit.

Nachdem das Betriebssystem jetzt auf dem eMMC Speicher installiert ist, ist es an der Zeit, den neuen XL-Raspi zu booten. Dazu trennst du ihn vom Strom und entfernst die Steckbrücke vom Jumper J1. Wenn der Strom wieder verbunden ist, kannst du dich nach kurzer Zeit per ssh anmelden.

neofetch Ausgabe des CM4 auf dem I/O-Board
Olli Graf -raspithek.de
jimbo-loginCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
neofetch Ausgabe des CM4 auf dem I/O-Board

neofetch zeigt eigentlich keinen großen Unterschied zu der beim Raspberry Pi 4, lediglich unter Host: steht jetzt „Raspberry Pi Compute Module 4 Rev 1.0“ und nicht mehr „Raspberry Pi 4 Model B Rev 1.1“.

Das Compute Module kann jetzt in jedes beliebige Baseboard eingebaut werden.

Compute Module umbauen

Um das Compute Module auf sein endgültiges Board zu stecken, musst du es zunächst vom I/O Board ab hebeln. Ich empfehle dir dazu einen flachen nicht scharfen Hebel, damit die Platinen nicht beschädigt werden. Sei dabei sehr vorsichtig, ich bezweifle dass die beiden Steckleisten für häufiges Umstecken entworfen wurden.

Ich benutze zur Demonstration das CM4-I-O-Base-A von Waveshare.

Das Waveshare CM4-I-O-Base-A nimmt das geflashte CM4 auf
Olli Graf -raspithek.de
waveshare-base-aCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Das Waveshare CM4-I-O-Base-A nimmt das geflashte CM4 auf

Dieses Baseboard ist relativ einfach gehalten, es bietet einen Gigabit Ethernet Anschluss, zwei USB 2.0 Buchsen, sowie zwei FPC Anschlüsse für Kameras und einen für DSP. Auf der Unterseite befindet sich ein M.2 M-Key Sockel, um ein 2230 oder 2242 NVME Flash-Laufwerk zu montieren.

Nach dem Umstecken des CM4 ist es wichtig, dass der Schalter direkt neben der HDMI Buchse in der OFF-Position steht, damit das Baseboard vom eMMC Modul des Moduls bootet.

Wenn das alles geklappt hat, hat dein CM4 auf einmal eine ganz andere Hardwareausstattung.

Auf dem Waveshare Board taucht ein Terminus Technologe Inc. Hub als USB Gerät auf.
Olli Graf -raspithek.de
terminus-hubCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Auf dem Waveshare Board taucht ein Terminus Technologe Inc. Hub als USB Gerät auf.

Fazit

Mit dem Compute Module CM4 eröffnen sich für Bastler ungeahnte Möglichkeiten, da die Schnittstellen je nach geplantem Einsatz individuell angepasst werden können.

Der Flash-Prozess mit dem sperrigen I/O-Board ist für meinen Geschmack etwas zu kompliziert.

Diesen Blog-Post habe ich bereits vor ein paar Monaten begonnen, durch die Chip-Knappheit musste ich lange warten, bis ich die notwendige Hardware bestellen konnte.

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner