В день выпуска Raspberry Pi CM5 я опубликовал краткий обзор комплекта разработчика Raspberry Pi для CM5 с инструкцией по сборке и загрузке Raspberry Pi OS, а также запустил тест производительности sbc-bench. К сожалению, процессор Broadcom BCM2712 демонстрировал троттлинг, что указывало на недостаточное охлаждение при размещении платы расширения CM5 в штатном корпусе с пассивным охлаждением. Поэтому сегодня тест повторен с альтернативными решениями: официальным радиатором Raspberry Pi для CM5 и активным кулером EDATEC для CM5 (аналогичным кулеру для Raspberry Pi 5, но адаптированным под вычислительный модуль).
Перед тестированием требуется устранить технические проблемы: в предыдущей конфигурации при загрузке Raspberry Pi OS с NVMe SSD камера не функционировала. Далее описывается опыт установки ОС на встроенную eMMC-память и настройки камеры, поскольку оба процесса сопровождались сложностями.
Установка Raspberry Pi OS на eMMC-память CM5
Теоретически установка должна быть простой согласно официальной документации .
Необходимо установить перемычку на разъём J6 («Fit jumper to disable eMMC boot») и подключить плату к хосту через USB-C, как показано ниже.
Затем требуется запуск утилиты rpiboot для распознавания eMMC-накопителя как USB-устройства.
sudo apt install rpiboot
sudo rpiboot
Утилита зависла в ожидании подключения… Система не обнаружила новое USB-устройство.
RPIBOOT: build-date Jan 31 2022 version 0~20220315+git6fa2ec0+nowin-0ubuntu1
Waiting for BCM2835/6/7/2711...
После нескольких попыток возникло предположение о устаревшей версии rpiboot в репозитории Ubuntu 22.04. Утилита была пересобрана из исходного кода:
sudo apt remove rpiboot
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
sudo make install
Вывод команды стал корректным…
jaufranc@CNX-LAPTOP-5:~/usbboot$ sudo rpiboot
RPIBOOT: build-date Dec 20 2024 version 20240422~085300 ef721cda
If the device fails to connect then please see https://rpltd.co/rpiboot for debugging tips.
Waiting for BCM2835/6/7/2711/2712...
2712: Directory not specified using default /usr/share/rpiboot/mass-storage-gadget64/
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711/2712...
Second stage boot server
File read: mcb.bin
File read: memsys00.bin
File read: memsys01.bin
File read: memsys02.bin
File read: memsys03.bin
File read: bootmain
Loading: /usr/share/rpiboot/mass-storage-gadget64//config.txt
File read: config.txt
Loading: /usr/share/rpiboot/mass-storage-gadget64//boot.img
File read: boot.img
Second stage boot server done
В Raspberry Pi Imager выбрана 64-битная ОС и устройство «Raspberry Pi multi-function USB device» (31.3 ГБ, соответствующее eMMC-памяти модуля).
Прошивка образа на CM5 выполнена аналогично записи на microSD-карту.
После завершения ОС успешно загрузилась с eMMC.
Состояние разделов eMMC проверено командой lsblk:
pi@raspberrypi:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 28.6G 0 part /
mmcblk0boot0 179:32 0 4M 1 disk
mmcblk0boot1 179:64 0 4M 1 disk
Поддержка камеры на Raspberry Pi CM5
Как отмечено ранее, Raspberry Pi Camera Module 3 не работала при подключении к разъёму CAM/DISP 0.
pi@raspberrypi:~ $ rpicam-hello --list
No cameras available!
Документация по активации камеры для CAM/DISP 0 и CAM/DISP 1 содержит неточности и неполные сведения.
После правки /boot/firmware/config.txt (отключение camera_auto_detect и добавление оверлея для Camera Module 3):
# Automatically load overlays for detected cameras
#camera_auto_detect=1
dtoverlay=imx708,cam0
Проблема устранена перезагрузкой.
pi@raspberrypi:~ $ rpicam-hello --list
Available cameras
-----------------
0 : imx708 [4608x2592 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a)
Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
Настройка заняла минимум времени.
Для второй камеры на CAM/DISP 1 требуется установка двух перемычек на J6.
Для теста использовалась Raspberry Pi AI-камера. Поскольку кабель Raspberry Pi Zero был только один, одновременная работа двух камер не проверялась. AI-камера отсутствует в документации CM, но необходимый оверлей доступен на GitHub :
# Automatically load overlays for detected cameras
#camera_auto_detect=1
dtoverlay=imx708,cam0
dtoverlay=imx500-pi5,cam1
Дополнительно установлен пакет imx500 с последующей перезагрузкой:
sudo apt install imx500-all
sudo reboot
Камера не обнаружилась. После подключения Raspberry Pi Camera Module 3 к CAM/DISP 1 и редактирования config.txt:
# Automatically load overlays for detected cameras
#camera_auto_detect=1
#dtoverlay=imx708,cam0
dtoverlay=imx708,cam1
Результат аналогичен:
pi@raspberrypi:~ $ rpicam-hello --list
No cameras available!
Успешное распознавание AI-камеры на CAM/DISP 0 достигнуто с оверлеем imx500-pi5.
pi@raspberrypi:~ $ rpicam-hello --list
Available cameras
-----------------
0 : imx500 [4056x3040 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx500@1a)
Modes: 'SRGGB10_CSI2P' : 2028x1520 [30.02 fps - (0, 0)/4056x3040 crop]
4056x3040 [10.00 fps - (0, 0)/4056x3040 crop]
Работа CAM/DISP 1 осталась необеспеченной. Возможно, второй разъём активируется только при одновременном подключении двух камер. Для проверки к CAM/DISP 0 подключён Raspberry Pi Touch Display 2, к CAM/DISP 1 — AI-камера с конфигурацией:
# Automatically load overlays for detected cameras
#camera_auto_detect=1
#dtoverlay=imx708,cam0
dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0
dtoverlay=imx500-pi5,cam1
# Automatically load overlays for detected DSI displays
#display_auto_detect=1
Дисплей функционирует, но камера на втором разъёме не работает, хотя датчик imx500 фиксируется в логах ядра…
pi@raspberrypi:~ $ dmesg | grep csi
[ 0.958143] platform 1f00128000.csi: Fixed dependency cycle(s) with /axi/pcie@120000/rp1/i2c@88000/imx500@1a
[ 0.964771] platform 1f00128000.csi: bcm2712_iommu_probe_device: MMU 1000005280.iommu
[ 0.964774] platform 1f00128000.csi: bcm2712_iommu_device_group: MMU 1000005280.iommu
[ 0.964778] platform 1f00128000.csi: Adding to iommu group 2
[ 0.964795] platform 1f00128000.csi: bcm2712_iommu_attach_dev: MMU 1000005280.iommu
[ 2.484827] rp1-cfe 1f00128000.csi: bcm2712_iommu_of_xlate: MMU 1000005280.iommu
[ 2.485163] rp1-cfe 1f00128000.csi: DW dphy Host HW v1.20
[ 2.485175] rp1-cfe 1f00128000.csi: PiSP FE HW v0.1
[ 2.487088] rp1-cfe 1f00128000.csi: found subdevice /axi/pcie@120000/rp1/i2c@88000/imx500@1a
pi@raspberrypi:~ $ rpicam-hello --list
No cameras available!
Тестирование приостановлено…
Установка радиатора Raspberry Pi и активного кулера CM5
Возвращаемся к основной теме — монтажу систем охлаждения.
Официальный радиатор Raspberry Pi и активный кулер EDATEC поставляются с идентичной фурнитурой (винты, толстые шайбы) и тремя термопрокладками на нижней поверхности.
Комплект EDATEC дополнен вентилятором. Сначала установлен радиатор: снята защитная плёнка с термопрокладок…
радиатор размещён на модуле CM5 с ориентацией, исключающей помехи встроенной антенне.
Четыре шайбы установлены между платой расширения и модулем CM5, конструкция зафиксирована винтами.
Процедура для активного кулера EDATEC аналогична, но требует подключения кабеля вентилятора.
Тестирование производительности и температуры процессора с радиатором Raspberry Pi для CM5
Запущен тест sbc-bench.sh с мониторингом температуры через rpi-monitor (пассивное охлаждение):
pi@raspberrypi:~ $ sudo ./sbc-bench.sh -r
Starting to examine hardware/software for review purposes...
sbc-bench v0.9.68
Installing needed tools: distro packages already installed, mhz, cpufetch, cpuminer. Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (11 minutes elapsed).
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
Full results uploaded to https://0x0.st/XCd-.txt
# Raspberry Pi Compute Module 5 Rev 1.0
Tested with sbc-bench v0.9.68 on Sat, 21 Dec 2024 14:35:20 +0700. Full info: [https://0x0.st/XCd-.txt](http://0x0.st/XCd-.txt)
### General information:
Information courtesy of cpufetch:
SoC: Broadcom BCM2712
Technology: 16nm
Microarchitecture: Cortex-A76
Max Frequency: 2.400 GHz
Cores: 4 cores
Features: NEON,SHA1,SHA2,AES,CRC32
BCM2712, Kernel: aarch64, Userland: arm64
CPU sysfs topology (clusters, cpufreq members, clockspeeds)
cpufreq min max
CPU cluster policy speed speed core type
0 0 0 1500 2400 Cortex-A76 / r4p1
1 0 0 1500 2400 Cortex-A76 / r4p1
2 0 0 1500 2400 Cortex-A76 / r4p1
3 0 0 1500 2400 Cortex-A76 / r4p1
4041 KB available RAM
### Governors/policies (performance vs. idle consumption):
Original governor settings:
cpufreq-policy0: performance / 2400 MHz (conservative ondemand userspace powersave performance schedutil / 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400)
Tuned governor settings:
cpufreq-policy0: performance / 2400 MHz
Status of performance related policies found below /sys:
/sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave
### Clockspeeds (idle vs. heated up):
Before at 52.9°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
After at 79.3°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
### Performance baseline
* memcpy: 5607.4 MB/s, memchr: 14150.3 MB/s, memset: 12426.6 MB/s
* 16M latency: 117.8 118.8 118.3 118.0 119.6 119.6 141.0 135.3
* 128M latency: 133.8 132.8 134.0 144.3 133.9 132.6 133.3 134.4
* 7-zip MIPS (3 consecutive runs): 11145, 10906, 11012 (11020 avg), single-threaded: 3203
* `aes-256-cbc 540078.51k 1003701.74k 1256093.44k 1332879.02k 1365472.60k 1367829.16k`
* `aes-256-cbc 540615.20k 1003659.80k 1255990.53k 1332837.72k 1365235.03k 1368178.69k`
### PCIe and storage devices:
* Raspberry RP1 PCIe 2.0 South Bridge: Speed 5GT/s, Width x4, driver in use: rp1,
* 29.1GB "Samsung BJTD4R" HS400 Enhanced strobe eMMC 5.1 card as /dev/mmcblk0: date 07/2024, manfid/oemid: 0x000015/0x0100, hw/fw rev: 0x0/0x0300000000000000
### Swap configuration:
* /var/swap on /dev/mmcblk0p2: 512.0M (0K used) on MMC storage
### Software versions:
* Debian GNU/Linux 12 (bookworm)
* Build scripts: http://archive.raspberrypi.com/debian/ bookworm main
* Compiler: /usr/bin/gcc (Debian 12.2.0-14) 12.2.0 / aarch64-linux-gnu
* OpenSSL 3.0.15, built on 3 Sep 2024 (Library: OpenSSL 3.0.15 3 Sep 2024)
* ThreadX: 26826259 / 2024/09/23 14:02:56
### Kernel info:
* `/proc/cmdline: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave smsc95xx.macaddr=2C:CF:67:B2:8D:E8 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=4825a0d7-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=TH`
* Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
* Vulnerability Spectre v1: Mitigation; __user pointer sanitization
* Vulnerability Spectre v2: Mitigation; CSV2, BHB
* Kernel 6.6.62+rpt-rpi-2712 / CONFIG_HZ=250
All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.
Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V)
14:35:21: 2400/2400MHz 3.51 2% 0% 2% 0% 0% 0% 73.8°C 0.8945V 2.9W 5.13V
^C
Cleaning up. Done.
Checking cpufreq OPP again. Done.
Clockspeeds now at 72.7°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
При температуре окружающей среды ~26°C троттлинг отсутствовал. Пиковая температура под нагрузкой (CPUminer) достигла 79.3°C. В тесте 7-zip (многоядерный режим) показатель не превышал 68.8°C.
Сравнение с результатами для штатного корпуса CM5 со встроенным вентилятором (без радиатора, температура среды: 32°C).
Радиатор Raspberry Pi подходит для большинства сценариев, но при эксплуатации в условиях повышенных температур (>35°C) или закрытых корпусах его эффективности может быть недостаточно.
Дополнительно проведён ночной мониторинг: график демонстрирует влияние температуры среды на температуру процессора в режиме простоя.
Показатель снизился с 46°C (16:00) до 38°C (6:00) при падении комнатной температуры с 27°C до 19°C (по данным метеосводки).
Тестирование производительности и температуры с активным кулером EDATEC для CM5
Результаты теста с активным охлаждением:
pi@raspberrypi:~ $ sudo ./sbc-bench.sh -r
Starting to examine hardware/software for review purposes...
sbc-bench v0.9.68
Installing needed tools: distro packages already installed. Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (11 minutes elapsed).
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
Full results uploaded to https://0x0.st/8rH_.txt
# Raspberry Pi Compute Module 5 Rev 1.0
Tested with sbc-bench v0.9.68 on Sun, 22 Dec 2024 14:18:35 +0700. Full info: [https://0x0.st/8rH_.txt](http://0x0.st/8rH_.txt)
### General information:
Information courtesy of cpufetch:
SoC: Broadcom BCM2712
Technology: 16nm
Microarchitecture: Cortex-A76
Max Frequency: 2.400 GHz
Cores: 4 cores
Features: NEON,SHA1,SHA2,AES,CRC32
BCM2712, Kernel: aarch64, Userland: arm64
CPU sysfs topology (clusters, cpufreq members, clockspeeds)
cpufreq min max
CPU cluster policy speed speed core type
0 0 0 1500 2400 Cortex-A76 / r4p1
1 0 0 1500 2400 Cortex-A76 / r4p1
2 0 0 1500 2400 Cortex-A76 / r4p1
3 0 0 1500 2400 Cortex-A76 / r4p1
4040 KB available RAM
### Governors/policies (performance vs. idle consumption):
Original governor settings:
cpufreq-policy0: ondemand / 2400 MHz (conservative ondemand userspace powersave performance schedutil / 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400)
Tuned governor settings:
cpufreq-policy0: performance / 2400 MHz
Status of performance related policies found below /sys:
/sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave
### Clockspeeds (idle vs. heated up):
Before at 43.0°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2398
After at 65.5°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
### Performance baseline
* memcpy: 5707.8 MB/s, memchr: 14187.6 MB/s, memset: 12935.3 MB/s
* 16M latency: 118.9 117.1 119.8 117.9 120.3 118.9 141.0 136.2
* 128M latency: 133.6 132.5 133.7 142.7 134.3 132.3 133.1 134.4
* 7-zip MIPS (3 consecutive runs): 11154, 11152, 11174 (11160 avg), single-threaded: 3209
* `aes-256-cbc 540286.17k 1003793.09k 1255994.45k 1332805.63k 1365428.91k 1367692.63k`
* `aes-256-cbc 540545.85k 1003955.39k 1256114.35k 1332834.30k 1364443.14k 1367905.62k`
### PCIe and storage devices:
* Raspberry RP1 PCIe 2.0 South Bridge: Speed 5GT/s, Width x4, driver in use: rp1,
* 29.1GB "Samsung BJTD4R" HS400 Enhanced strobe eMMC 5.1 card as /dev/mmcblk0: date 07/2024, manfid/oemid: 0x000015/0x0100, hw/fw rev: 0x0/0x0300000000000000
### Swap configuration:
* /var/swap on /dev/mmcblk0p2: 512.0M (0K used) on MMC storage
### Software versions:
* Debian GNU/Linux 12 (bookworm)
* Build scripts: http://archive.raspberrypi.com/debian/ bookworm main
* Compiler: /usr/bin/gcc (Debian 12.2.0-14) 12.2.0 / aarch64-linux-gnu
* OpenSSL 3.0.15, built on 3 Sep 2024 (Library: OpenSSL 3.0.15 3 Sep 2024)
* ThreadX: 26826259 / 2024/09/23 14:02:56
### Kernel info:
* `/proc/cmdline: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave smsc95xx.macaddr=2C:CF:67:B2:8D:E8 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=4825a0d7-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=TH`
* Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
* Vulnerability Spectre v1: Mitigation; __user pointer sanitization
* Vulnerability Spectre v2: Mitigation; CSV2, BHB
* Kernel 6.6.62+rpt-rpi-2712 / CONFIG_HZ=250
All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.
Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V)
14:18:36: 2400/2400MHz 3.78 39% 0% 39% 0% 0% 0% 60.6°C 0.8942V 2.6W 5.13V
^C
Cleaning up. Done.
Checking cpufreq OPP again. Done.
Clockspeeds now at 58.4°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
* ondemand cpufreq governor used by distro but io_is_busy not set to 1 on all cores -> http://tinyurl.com/44pbmw79
При температуре среды ~25°C троттлинг отсутствовал. Максимальная температура (CPUminer) — 67.2°C, в 7-zip — 63.9°C.
Решение эффективно, но обнаружена проблема: вентилятор работает на полной мощности при выключенной системе, потребляя 2.3 Вт…
Финальный тест проведён с активным кулером внутри штатного корпуса. Плата закреплена винтами, подключена внешняя Wi-Fi-антенна. Вентилятор с верхней части корпуса демонтирован.
Собранная система помещена в корпус. Вентилятор установлен со смещением, но обеспечивает достаточный воздухообмен.
Запущен sbc-bench.sh:
pi@raspberrypi:~ $ sudo ./sbc-bench.sh -r
Starting to examine hardware/software for review purposes...
sbc-bench v0.9.68
Installing needed tools: distro packages already installed. Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (11 minutes elapsed).
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
Full results uploaded to https://0x0.st/8rHy.txt
# Raspberry Pi Compute Module 5 Rev 1.0
Tested with sbc-bench v0.9.68 on Sun, 22 Dec 2024 14:55:29 +0700. Full info: [https://0x0.st/8rHy.txt](http://0x0.st/8rHy.txt)
### General information:
Information courtesy of cpufetch:
SoC: Broadcom BCM2712
Technology: 16nm
Microarchitecture: Cortex-A76
Max Frequency: 2.400 GHz
Cores: 4 cores
Features: NEON,SHA1,SHA2,AES,CRC32
BCM2712, Kernel: aarch64, Userland: arm64
CPU sysfs topology (clusters, cpufreq members, clockspeeds)
cpufreq min max
CPU cluster policy speed speed core type
0 0 0 1500 2400 Cortex-A76 / r4p1
1 0 0 1500 2400 Cortex-A76 / r4p1
2 0 0 1500 2400 Cortex-A76 / r4p1
3 0 0 1500 2400 Cortex-A76 / r4p1
4044 KB available RAM
### Governors/policies (performance vs. idle consumption):
Original governor settings:
cpufreq-policy0: ondemand / 2400 MHz (conservative ondemand userspace powersave performance schedutil / 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400)
Tuned governor settings:
cpufreq-policy0: performance / 2400 MHz
Status of performance related policies found below /sys:
/sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave
### Clockspeeds (idle vs. heated up):
Before at 44.1°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
After at 68.8°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
### Performance baseline
* memcpy: 5704.2 MB/s, memchr: 14175.1 MB/s, memset: 12902.3 MB/s
* 16M latency: 117.0 116.9 120.3 123.1 120.1 118.7 140.4 133.6
* 128M latency: 133.6 132.6 133.9 143.8 133.9 132.2 132.9 134.0
* 7-zip MIPS (3 consecutive runs): 11056, 10937, 11060 (11020 avg), single-threaded: 3201
* `aes-256-cbc 540240.68k 1003708.86k 1256076.37k 1332945.24k 1365475.33k 1367780.01k`
* `aes-256-cbc 540632.86k 1003822.31k 1256136.02k 1332974.93k 1365194.07k 1368216.92k`
### PCIe and storage devices:
* Raspberry RP1 PCIe 2.0 South Bridge: Speed 5GT/s, Width x4, driver in use: rp1,
* 29.1GB "Samsung BJTD4R" HS400 Enhanced strobe eMMC 5.1 card as /dev/mmcblk0: date 07/2024, manfid/oemid: 0x000015/0x0100, hw/fw rev: 0x0/0x0300000000000000
### Swap configuration:
* /var/swap on /dev/mmcblk0p2: 512.0M (0K used) on MMC storage
### Software versions:
* Debian GNU/Linux 12 (bookworm)
* Build scripts: http://archive.raspberrypi.com/debian/ bookworm main
* Compiler: /usr/bin/gcc (Debian 12.2.0-14) 12.2.0 / aarch64-linux-gnu
* OpenSSL 3.0.15, built on 3 Sep 2024 (Library: OpenSSL 3.0.15 3 Sep 2024)
* ThreadX: 26826259 / 2024/09/23 14:02:56
### Kernel info:
* `/proc/cmdline: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave smsc95xx.macaddr=2C:CF:67:B2:8D:E8 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=4825a0d7-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=TH`
* Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
* Vulnerability Spectre v1: Mitigation; __user pointer sanitization
* Vulnerability Spectre v2: Mitigation; CSV2, BHB
* Kernel 6.6.62+rpt-rpi-2712 / CONFIG_HZ=250
All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.
Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V)
14:55:29: 2400/2400MHz 3.60 49% 0% 49% 0% 0% 0% 63.4°C 0.8948V 2.8W 5.13V
14:56:29: 2400/2400MHz 1.32 0% 0% 0% 0% 0% 0% 60.0°C 0.8948V 2.3W 5.13V
14:57:29: 2400/2400MHz 0.48 0% 0% 0% 0% 0% 0% 59.5°C 0.8953V 2.7W 5.13V
^C
Cleaning up. Done.
Checking cpufreq OPP again. Done.
Clockspeeds now at 60.0°C:
cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2399
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* No swapping
* Background activity (%system) OK
* No throttling
* ondemand cpufreq governor used by distro but io_is_busy not set to 1 on all cores -> http://tinyurl.com/44pbmw79
При температуре среды ~25°C пиковые значения: 68.3°C (CPUminer), 65.5°C (7-zip) — на несколько градусов выше показателей без корпуса.
Сравнение решений охлаждения для Raspberry Pi CM5
Сводные результаты четырёх протестированных конфигураций.
IO case with fan | Raspberry Pi Cooler | EDATEC active cooler | EDATEC active cooler in IO case | |
---|---|---|---|---|
7-zip bechmark (MIPS) | 9300 | 11020 | 11160 | 11020 |
Max CPU temp (7-zip) | 85.9°C | 68.8°C | 63.9°C | 65.5°C |
Max CPU temp (CPUminer) | 86.5°C | 79.3°C | 67.2°C | 68.3°C |
CPU throttling | Yes | No | No | No |
Power consumption (off) | 2.5W | 1.6W | 2.3W | 2.3W |
Power consumption (idle) | 2.3W | 2.3W | 2.4W | 2.4W |
Троттлинг наблюдался только в штатном корпусе с вентилятором (без радиатора). При температуре среды 25-26°C оба альтернативных решения (радиатор Raspberry Pi, активный кулер EDATEC) предотвращают перегрев. Пассивного охлаждения достаточно для большинства задач, но при высоких температурах среды (>35°C) или разгоне рекомендуется активное решение.
Отключение вентилятора при выключении платы расширения CM5
Примечание: следующие инструкции не требуются для Raspberry Pi Compute Module 5 IO Board R2 .
Высокое энергопотребление в выключенном состоянии у систем с активным охлаждением вызвано работой вентилятора на полной мощности. Представители Raspberry Pi пояснили , что настройка «POWER_OFF_ON_HALT=0» в EEPROM должна решить проблему ценой незначительного увеличения потребления. После изучения обсуждения выяснилось, что решение неработоспособно. 19 декабря выпущено исправление . Обновлённая прошивка pieeprom пока недоступна через apt, поэтому требуется ручная установка из GitHub:
wget https://github.com/timg236/rpi-eeprom/raw/927596fc312b6c2ddcf33f7b7608938241403586/firmware-2712/latest/pieeprom-2024-12-19.bin
sudo rpi-eeprom-update -d -f ./pieeprom-2024-12-19.bin
Выполненные команды:
*** CREATED UPDATE ./pieeprom-2024-12-19.bin ***
CURRENT: Sun Dec 15 12:16:50 AM UTC 2024 (1734221810)
UPDATE: Thu Dec 19 11:57:13 AM UTC 2024 (1734609433)
BOOTFS: /boot/firmware
'/tmp/tmp.4SKLxJWPj1' -> '/boot/firmware/pieeprom.upd'
UPDATING bootloader. This could take up to a minute. Please wait
*** Do not disconnect the power until the update is complete ***
If a problem occurs then the Raspberry Pi Imager may be used to create
a bootloader rescue SD card image which restores the default bootloader image.
flashrom -p linux_spi:dev=/dev/spidev10.0,spispeed=16000 -w /boot/firmware/pieeprom.upd
Verifying update
VERIFY: SUCCESS
UPDATE SUCCESSFUL
Планируемое изменение конфигурации EEPROM не потребовалось — параметр POWER_OFF_ON_HALT уже имел значение 0:
pi@raspberrypi:~ $ sudo rpi-eeprom-config
[all]
BOOT_UART=1
POWER_OFF_ON_HALT=0
# Default BOOT_ORDER for provisioning
# SD -> NVMe -> USB -> Network
BOOT_ORDER=0xf2461
Проблема сохранилась. Несмотря на обновлённую прошивку, использовалась конфигурация из её образа…
pi@raspberrypi:~ $ sudo rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Thu Dec 19 11:57:13 AM UTC 2024 (1734609433)
LATEST: Sun Dec 15 12:16:50 AM UTC 2024 (1734221810)
RELEASE: latest (/lib/firmware/raspberrypi/bootloader-2712/latest)
Use raspi-config to change the release.
pi@raspberrypi:~ $ sudo rpi-eeprom-config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
Требовалось явное указание «POWER_OFF_ON_HALT=0»:
sudo rpi-eeprom-config --edit
После перезагрузки проверены версия загрузчика и конфигурация:
pi@raspberrypi:~ $ sudo rpi-eeprom-config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
POWER_OFF_ON_HALT=0
pi@raspberrypi:~ $ sudo rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Sun Dec 15 12:16:50 AM UTC 2024 (1734221810)
LATEST: Sun Dec 15 12:16:50 AM UTC 2024 (1734221810)
RELEASE: latest (/lib/firmware/raspberrypi/bootloader-2712/latest)
Use raspi-config to change the release.
Обнаружен откат к старой прошивке (вероятно, из-за ошибки в новом загрузчике и активации резервного образа). Повторная прошивка (без импорта конфигурации) и перезагрузка устранили проблему:
pi@raspberrypi:~ $ sudo rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Thu Dec 19 11:57:13 AM UTC 2024 (1734609433)
LATEST: Sun Dec 15 12:16:50 AM UTC 2024 (1734221810)
RELEASE: latest (/lib/firmware/raspberrypi/bootloader-2712/latest)
Use raspi-config to change the release.
pi@raspberrypi:~ $ sudo rpi-eeprom-config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
POWER_OFF_ON_HALT=0
pi@raspberrypi:~ $ sudo shutdown now
Вентилятор отключился, потребление в выключенном состоянии снизилось до 1.6 Вт. Для дальнейшей оптимизации установите WAKE_ON_GPIO=0 (как для Raspberry Pi 5 2GB ). Это может нарушить работу некоторых HAT-модулей…
Благодарю Raspberry Pi за предоставленный комплект разработчика CM5 и EDATEC за активный кулер. Комплект доступен у дистрибьюторов по цене $130, активный кулер CM5 на Digikey стоит менее $7 , но временно отсутствует в наличии.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.