====== Raspberry Pi mit dot1X, RADIUS & MACsec ====== Diese Anleitung geht davon aus dass der Raspberry Pi 5 mit Raspberry Pi OS "Trixie" verwendet wird! ===== Kernel mit MACsec kompilieren ===== Um Zeit zu sparen, empfehle ich den Kernel/Module nicht auf dem Pi selbst zu kompilieren, sondern in einer Debian-VM die auf einem ARM-basierten System läuft (z.B. MacBook Pro mit M1(+) Prozessor) - alternativ mit Cross-Compile Toolchain. benny@debian:~$ mkdir raspiOct benny@debian:~$ cd raspiOct benny@debian:~/raspiOct$ git clone --depth=1 --branch rpi-6.12.y https://github.com/raspberrypi/linux Cloning into 'linux'... remote: Enumerating objects: 92781, done. remote: Counting objects: 100% (92781/92781), done. remote: Compressing objects: 100% (82502/82502), done. remote: Total 92781 (delta 9561), reused 85758 (delta 9291), pack-reused 0 (from 0) Receiving objects: 100% (92781/92781), 258.36 MiB | 22.61 MiB/s, done. Resolving deltas: 100% (9561/9561), done. Updating files: 100% (87559/87559), done. benny@debian:~/raspiOct$ cd linux/ benny@debian:~/raspiOct/linux$ KERNEL=kernel_2712 benny@debian:~/raspiOct/linux$ make bcm2712_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/menu.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTLD scripts/kconfig/conf # # configuration written to .config # benny@debian:~/raspiOct/linux$ make menuconfig HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/mnconf-common.o HOSTLD scripts/kconfig/mconf *** End of the configuration. *** Execute 'make' to start the build or try 'make help'. benny@debian:~/raspiOct/linux$ make -j4 Image.gz modules dtbs ... benny@debian:~/raspiOct/linux$ mkdir modules benny@debian:~/raspiOct/linux$ env PATH=$PATH make INSTALL_MOD_PATH=/home/benny/raspiOct/linux/modules modules_install ... benny@debian:~/raspiOct/linux$ tar czf kernel-macsec.tar.gz arch/ benny@debian:~/raspiOct/linux$ tar czf modules-macsec.tar.gz modules benny@debian:~/raspiOct/linux$ scp kernel-macsec.tar.gz pi@192.168.11.199: The authenticity of host '192.168.11.199 (192.168.11.199)' can't be established. ED25519 key fingerprint is SHA256:QnYk4nWf6N14XBgP1mxamkrQGf+s2RugmcqEJ942J8o. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.11.199' (ED25519) to the list of known hosts. pi@192.168.11.199's password: kernel-macsec.tar.gz 100% 47MB 3.5MB/s 00:13 benny@debian:~/raspiOct/linux$ scp modules-macsec.tar.gz pi@192.168.11.199: pi@192.168.11.199's password: modules-macsec.tar.gz 100% 21MB 3.4MB/s 00:06 ===== Neuen Kernel auf dem Pi nutzen ===== [[https://www.raspberrypi.com/documentation/computers/linux_kernel.html|Offizielle Anleitung des Raspberry Pi Teams bzgl. Kernel kompilieren & Installation]] pi@MACsecPi:~ $ ls kernel-macsec.tar.gz modules-macsec.tar.gz pi@MACsecPi:~ $ tar xzf kernel-macsec.tar.gz pi@MACsecPi:~ $ tar xzf modules-macsec.tar.gz pi@MACsecPi:~ $ sudo mv modules/lib/modules/6.12.50-v8-16k+/ /lib/modules/ pi@MACsecPi:~ $ sudo chown -R root:root /lib/modules/6.12.50-v8-16k+/ pi@MACsecPi:~ $ sudo cp arch/arm64/boot/Image.gz /boot/firmware/kernel-macsec.img pi@MACsecPi:~ $ sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware pi@MACsecPi:~ $ sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/ pi@MACsecPi:~ $ sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/ ===== PKI mit OpenSSL erzeugen ===== Passwort: demoDEMOdemoOnly my-openssl.cnf [ ca ] default_ca = CA_default [ CA_default ] dir = ./demoCA certs = $dir/certs new_certs_dir = $dir/newcerts database = $dir/index.txt serial = $dir/serial private_key = $dir/private/ca.key certificate = $dir/certs/ca.crt default_days = 3650 default_md = sha256 policy = policy_strict x509_extensions = v3_ca [ policy_strict ] commonName = supplied countryName = optional stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional [ req ] default_bits = 4096 distinguished_name = req_distinguished_name string_mask = utf8only default_md = sha256 x509_extensions = v3_ca [ req_distinguished_name ] commonName = Common Name (CN) [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:TRUE keyUsage = critical,keyCertSign,cRLSign [ v3_server ] basicConstraints = CA:FALSE keyUsage = critical,digitalSignature,keyEncipherment extendedKeyUsage = serverAuth subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer [ v3_client ] basicConstraints = CA:FALSE keyUsage = critical,digitalSignature,keyEncipherment extendedKeyUsage = clientAuth subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer benny@Bennys-MacBook-Pro-8 MACsecCA % ls benny@Bennys-MacBook-Pro-8 MACsecCA % touch my-openssl.cnf benny@Bennys-MacBook-Pro-8 MACsecCA % vi my-openssl.cnf benny@Bennys-MacBook-Pro-8 MACsecCA % benny@Bennys-MacBook-Pro-8 MACsecCA % mkdir -p demoCA/{certs,newcerts,private} benny@Bennys-MacBook-Pro-8 MACsecCA % touch demoCA/index.txt benny@Bennys-MacBook-Pro-8 MACsecCA % echo 1000 > demoCA/serial benny@Bennys-MacBook-Pro-8 MACsecCA % openssl req -new -x509 -days 3650 -extensions v3_ca \ -keyout demoCA/private/ca.key -out demoCA/certs/ca.crt \ -config my-openssl.cnf -subj "/CN=MACsecCA" Generating a 4096 bit RSA private key ...................................................++++ ...................................++++ writing new private key to 'demoCA/private/ca.key' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: benny@Bennys-MacBook-Pro-8 MACsecCA % openssl req -new -nodes -out server.csr -newkey rsa:4096 -keyout server.key \ -subj "/CN=mein-radius.local" Generating a 4096 bit RSA private key ................++++ ...........................++++ writing new private key to 'server.key' ----- benny@Bennys-MacBook-Pro-8 MACsecCA % openssl ca -config my-openssl.cnf -extensions v3_server \ -in server.csr -out server.crt -days 1825 Using configuration from my-openssl.cnf Enter pass phrase for ./demoCA/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'mein-radius.local' Certificate is to be certified until Oct 3 18:02:51 2030 GMT (1825 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated benny@Bennys-MacBook-Pro-8 MACsecCA % openssl req -new -nodes -out client.csr -newkey rsa:4096 -keyout client.key \ -subj "/CN=MACsecPi" Generating a 4096 bit RSA private key .................................++++ ......++++ writing new private key to 'client.key' ----- benny@Bennys-MacBook-Pro-8 MACsecCA % openssl ca -config my-openssl.cnf -extensions v3_client \ -in client.csr -out client.crt -days 730 Using configuration from my-openssl.cnf Enter pass phrase for ./demoCA/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'MACsecPi' Certificate is to be certified until Oct 4 18:04:46 2027 GMT (730 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated benny@Bennys-MacBook-Pro-8 MACsecCA % openssl rsa -aes256 -in server.key -out server-enc.key writing RSA key Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ===== wpa_supplicant v2.11 kompilieren ===== Wurde offenbar ohne MACsec kompiliert in Raspberry Pi OS Trixie, daher mal manuell probieren. wpa_supplicant v2.11 reagiert nicht auf den "Key Server". pi@MACsecPi:~ wget https://w1.fi/releases/wpa_supplicant-2.11.tar.gz pi@MACsecPi:~ tar xzf wpa_supplicant-2.11.tar.gz pi@MACsecPi:~/wpa_supplicant-2.11/wpa_supplicant $ pi@MACsecPi:~/wpa_supplicant-2.11/wpa_supplicant $ cp defconfig .config pi@MACsecPi:~/wpa_supplicant-2.11/wpa_supplicant $ vi .config pi@MACsecPi:~/wpa_supplicant-2.11/wpa_supplicant $ sudo apt install dbus-1 libnl-3.0 libssl-dev libdbus-1-3 libdbus-1-dev libnl-3-dev libnl-genl-3-dev install libnl-route-3-dev pi@MACsecPi:~/wpa_supplicant-2.11/wpa_supplicant $ make ===== Konfiguration für 802.1X mit MACsec (802.1AE) ===== pi@MACsecPi:~ $ cat dot1X.conf eapol_version=3 ap_scan=0 network={ key_mgmt=IEEE8021X eap=TLS identity="MACsecPi" ca_cert="/home/pi/MACsecCA/radius_ca_chain.pem" client_cert="/home/pi/MACsecCA/client.crt" private_key="/home/pi/MACsecCA/client.key" eapol_flags=0 macsec_policy=1 macsec_port=30000 } ===== Befehl für Verbindungsaufbau ===== Es ist elementar wichtig hier "macsec_linux" als Treiber zu verwenden anstatt "wired"! pi@MACsecPi:~ $ sudo wpa_supplicant -i eth0 -D wired -c dot1X.conf -ddd # Funktioniert, bis es nicht mehr funktioniert ... Fehler: EAPOL type 5 will be handled by MKA pi@MACsecPi:~ $ sudo wpa_supplicant -i eth0 -D macsec_linux -c dot1X.conf –ddd pi@MACsecPi:~ $ sudo dhcpcd macsec0 ===== Ausgabe von "ip macsec show macsec0" ===== pi@MACsecPi:~ $ ip macsec show macsec0 4: macsec0: protect on validate strict sc off sa off encrypt on send_sci on end_station off scb off replay off cipher suite: GCM-AES-128, using ICV length 16 TXSC: 2ccf67b441497530 on SA 0 0: PN 71, state on, key cddd869e518389d333cc45e601000000 RXSC: 9424e16b34650001, state on 0: PN 484, state on, key cddd869e518389d333cc45e601000000 offload: off ===== Ausgaben vom Switch ===== ==== show unp user ==== -> show unp user User Port Username Mac address IP (V4/V6) Vlan Profile Type Status --------+--------------------+-----------------+----------------------------------------+----+--------------------------------+------------+----------- 1/1/3 MACsecPi 2c:cf:67:b4:41:49 192.168.15.155 15 vlan15 Bridge Active Total users : 1 ==== show unp user details ==== -> show unp user details Port: 1/1/3 MAC-Address: 2c:cf:67:b4:41:49 SAP = -, Service ID = -, VNID = -, VPNID = -, ISID = -, VPLSID = -, Access Timestamp = 11/10/2025 17:40:30, User Name = MACsecPi, IP-Address = 192.168.15.155, Vlan = 15, Authentication Type = 802.1x, Authentication Status = Authenticated, Authentication Failure Reason = -, Authentication Retry Count = 0, Authentication Server IP Used = 143.209.0.2, Authentication Server Used = UPAMRadiusServer, Server Reply-Message = -, Profile = vlan15, Profile Source = Auth - Pass - Default UNP, Profile From Auth Server = -, Implict Trust-Tag Source = -, RADIUS Alcatel-trust-tag-vlans = -, Session Timeout = 0, Classification Profile Rule = -, Role = -, Role Source = -, User Role Rule = -, Restricted Access = No, Location Policy Status = -, Time Policy Status = -, QMR Status = Passed, Redirect Url = -, SIP Call Type = Not in a call, SIP Media Type = None, Applications = None, Encap Value = -, Rule ID = -, Total users : 1 ==== show interfaces macsec dynamic ==== -> show interfaces macsec dynamic Server Transmit Key Operation Chas/Slot/Port Admin-State Mode Keychain Encryption Priority Interval(Sec) Server Status ----------------+-------------+----------+----------+------------+----------+---------------+--------+-------------- 1/1/3 Enabled radius NA Enabled 15 2 YES UP 1/1/5 Enabled radius NA Enabled 15 2 YES DOWN ==== show interfaces macsec 1/1/3 ==== -> show interfaces macsec 1/1/3 Chas/Slot/Port Admin-State Mode Encryption Exchange Data Session Time (Min) Cipher Suite ---------------+-------------+----------+--------------+---------------------+-----------------------+----------------- 1/1/3 Enabled Radius Enabled - - gcm-aes-128 ==== show interfaces macsec statistics 1/1/3 ==== -> show interfaces macsec statistics 1/1/3 Chassis/Slot/Port 1/1/3 Byte Transmitted : 11085688, Untagged TX Pkts : 0, Too Long TX Pkts : 0, Byte Received : 3619771305, Untagged RX Pkts : 0, No Tagged RX Pkts : 1466, Bad Tagged RX Pkts : 0, Unknown SCI RX Pkts : 0, No SCI RX Pkts : 0, Overrun RX Pkts : 0, SCI-TX: 0x9424e16b34650001 TX Protected Pkts : 0, TX Encrypted Pkts : 207, TX Octets Protected : 0, TX Octets Encrypted : 10865928, SA: 0 TX Protected Pkts : 0, TX Encrypted Pkts : 0, SCI-RX: 0x2ccf67b441497530 RX Unused SA Pkts : 0, RX No Using SA Pkts : 0, RX Late Pkts : 0, RX Not Valid Pkts : 0, RX Invalid Pkts : 0, RX Delayed Pkts : 0, RX Unchecked Pkts : 0, RX OK Pkts : 62, RX Octets Validated : 0, RX Octets Decrypted : 3619541905, SA: 0 RX Unused SA Pkts : 0, RX No Using SA Pkts : 0, RX Not Valid Pkts : 0, RX Invalid Pkts : 0, RX OK Pkts : 0, ===== Performance ===== ==== iPerf3 mit MACsec ==== ----------------------------------------------------------- Server listening on 5201 (test #1) ----------------------------------------------------------- Accepted connection from 192.168.15.155, port 39398 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.155 port 39414 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 110 MBytes 920 Mbits/sec [ 5] 1.00-2.00 sec 110 MBytes 921 Mbits/sec [ 5] 2.00-3.00 sec 110 MBytes 921 Mbits/sec [ 5] 3.00-4.00 sec 110 MBytes 921 Mbits/sec [ 5] 4.00-5.00 sec 110 MBytes 921 Mbits/sec [ 5] 5.00-6.00 sec 110 MBytes 921 Mbits/sec [ 5] 6.00-7.00 sec 110 MBytes 921 Mbits/sec [ 5] 7.00-8.00 sec 110 MBytes 921 Mbits/sec [ 5] 8.00-9.00 sec 110 MBytes 921 Mbits/sec [ 5] 9.00-10.00 sec 110 MBytes 921 Mbits/sec [ 5] 10.00-10.01 sec 718 KBytes 915 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 1.07 GBytes 921 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #2) ----------------------------------------------------------- Accepted connection from 192.168.15.155, port 56352 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.155 port 56362 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 110 MBytes 920 Mbits/sec [ 5] 1.00-2.00 sec 110 MBytes 921 Mbits/sec [ 5] 2.00-3.00 sec 110 MBytes 921 Mbits/sec [ 5] 3.00-4.00 sec 110 MBytes 921 Mbits/sec [ 5] 4.00-5.00 sec 109 MBytes 915 Mbits/sec [ 5] 5.00-6.00 sec 110 MBytes 921 Mbits/sec [ 5] 6.00-7.00 sec 110 MBytes 921 Mbits/sec [ 5] 7.00-8.00 sec 110 MBytes 921 Mbits/sec [ 5] 8.00-9.00 sec 110 MBytes 921 Mbits/sec [ 5] 9.00-10.00 sec 110 MBytes 921 Mbits/sec [ 5] 10.00-10.01 sec 635 KBytes 908 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 1.07 GBytes 920 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #3) ----------------------------------------------------------- Accepted connection from 192.168.15.155, port 57584 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.155 port 57596 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 110 MBytes 920 Mbits/sec [ 5] 1.00-2.00 sec 110 MBytes 921 Mbits/sec [ 5] 2.00-3.00 sec 110 MBytes 921 Mbits/sec [ 5] 3.00-4.00 sec 110 MBytes 921 Mbits/sec [ 5] 4.00-5.00 sec 110 MBytes 921 Mbits/sec [ 5] 5.00-6.00 sec 110 MBytes 921 Mbits/sec [ 5] 6.00-7.00 sec 110 MBytes 921 Mbits/sec [ 5] 7.00-8.00 sec 110 MBytes 921 Mbits/sec [ 5] 8.00-9.00 sec 110 MBytes 921 Mbits/sec [ 5] 9.00-10.00 sec 110 MBytes 921 Mbits/sec [ 5] 10.00-10.01 sec 783 KBytes 919 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 1.07 GBytes 921 Mbits/sec receiver ==== iPerf3 ohne MACsec ==== ----------------------------------------------------------- Server listening on 5201 (test #1) ----------------------------------------------------------- Accepted connection from 192.168.15.154, port 52334 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.154 port 52336 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 111 MBytes 933 Mbits/sec [ 5] 1.00-2.00 sec 111 MBytes 934 Mbits/sec [ 5] 2.00-3.00 sec 111 MBytes 934 Mbits/sec [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec [ 5] 4.00-5.00 sec 111 MBytes 933 Mbits/sec [ 5] 5.00-6.00 sec 111 MBytes 935 Mbits/sec [ 5] 6.00-7.00 sec 111 MBytes 933 Mbits/sec [ 5] 7.00-8.00 sec 111 MBytes 934 Mbits/sec [ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec [ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec [ 5] 10.00-10.00 sec 364 KBytes 933 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #2) ----------------------------------------------------------- Accepted connection from 192.168.15.154, port 57170 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.154 port 57186 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 111 MBytes 933 Mbits/sec [ 5] 1.00-2.00 sec 111 MBytes 932 Mbits/sec [ 5] 2.00-3.00 sec 111 MBytes 935 Mbits/sec [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec [ 5] 4.00-5.00 sec 111 MBytes 934 Mbits/sec [ 5] 5.00-6.00 sec 111 MBytes 934 Mbits/sec [ 5] 6.00-7.00 sec 111 MBytes 934 Mbits/sec [ 5] 7.00-8.00 sec 111 MBytes 934 Mbits/sec [ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec [ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec [ 5] 10.00-10.00 sec 128 KBytes 434 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 (test #3) ----------------------------------------------------------- Accepted connection from 192.168.15.154, port 58078 [ 5] local 192.168.2.1 port 5201 connected to 192.168.15.154 port 58090 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 111 MBytes 933 Mbits/sec [ 5] 1.00-2.00 sec 111 MBytes 934 Mbits/sec [ 5] 2.00-3.00 sec 111 MBytes 933 Mbits/sec [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec [ 5] 4.00-5.00 sec 111 MBytes 934 Mbits/sec [ 5] 5.00-6.00 sec 111 MBytes 934 Mbits/sec [ 5] 6.00-7.00 sec 111 MBytes 934 Mbits/sec [ 5] 7.00-8.00 sec 111 MBytes 934 Mbits/sec [ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec [ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec [ 5] 10.00-10.00 sec 344 KBytes 911 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver ==== Raspberry Pi bietet AES-Beschleunigung in Hardware ==== Der hohe Durchsatz trotz MACsec ist auf die AES-Beschleunigung in Hardware auf dem Pi zurückzuführen: pi@MACsecPi:~ $ cat /proc/cpuinfo processor : 0 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 processor : 1 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 processor : 2 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 processor : 3 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 Revision : c04180 Serial : b889764a77c11e15 Model : Raspberry Pi Compute Module 5 Rev 1.0