SunFounder Pironman – это корпус для Raspberry Pi 4, вдохновленный самодельным мини-сервером на Raspberry Pi 4 от Michael Klement с OLED-дисплеем и системой охлаждения ICE Tower , а также включающий ряд улучшений, таких как корпус из алюминиевого сплава и акрила, поддержку M.2 SATA SSD, кнопку питания для безопасного выключения, ИК-приемник и RGB-ленту.
Компания предоставила комплект Pironman без Raspberry Pi 4 для тестирования. В обзоре будет рассмотрена комплектация, процесс сборки, установка ПО и тестирование перечисленных уникальных функций.
Распаковка Pironman
Основные характеристики указаны на боковой стороне упаковки.
Корпус поставляется в разобранном виде и включает плату Pironman, металлические и акриловые панели, RGB-ленту, OLED-дисплей, радиатор, вентилятор, адаптеры, плоские кабели, винты, стойки и другие компоненты.
На верхней стороне платы Pironman (JMS580-V1.8) расположены мост JMicron JMS580 USB 3.2 Gen 2 – SATA 6Gb/s, слот для microSD карты, USB-порт для SSD, USB-порт для питания, а также разъемы для GPIO-экспандера, OLED-дисплея и моста microSD карты, а также контакты для подключения вентилятора, кнопки питания и RGB-ленты.
На нижней стороне находится разъем M.2 SATA, поддерживающий накопители форматов 2230, 2242, 2260 и 2280, три RGB-светодиода и 40-контактный GPIO-разъем.
В комплекте также имеется руководство по сборке. Оно достаточно подробное и значительно упрощает процесс сборки.
Дополнительно доступна подробная онлайн-документация .
Сборка Pironman с Raspberry Pi 4 и M.2 SATA SSD
Необходимо подготовить одноплатный компьютер Raspberry Pi 4 и карту MicroSD с установленной Raspberry Pi OS, а также, опционально, SSD-накопитель формата M.2 SATA.
Первым шагом устанавливаются стойки в монтажные отверстия платы Pironman, а также подключается OLED-дисплей к соответствующему разъему. Для этого необходимо поднять черную защелку, вставить гибкий плоский кабель (FFC) в разъем и зафиксировать защелку. Важно убедиться, что кабель правильно ориентирован, как показано на фото ниже.
Затем дисплей крепится к панели B корпуса, после чего устанавливается выключатель питания.
Теперь можно подключить четыре провода от выключателя питания: красный к контакту 5V, черный к GND, а два зеленых — к оставшимся контактам рядом с 5V/GND (порядок не важен). Аналогичным образом подключаются мост для карты microSD, RGB-светодиод и плата расширения GPIO.
Пространство внутри корпуса довольно ограничено, но сборка возможна. Наибольшую сложность вызвало подключение FFC-кабеля для GPIO. Черная защелка не поднимается, а поворачивается, и либо кабель слишком толстый, либо разъем слишком узкий — закрыть его было крайне сложно. В итоге пришлось использовать плоскогубцы, обмотанные толстой пластиковой лентой, чтобы зафиксировать защелку как на небольшой переходной плате, так и на основной плате Pironman.
Провода, используемые для подключения кнопки питания, RGB-светодиода и, как будет показано позже, вентилятора, кажутся недостаточно надежно закрепленными. Не исключено, что они могут отсоединиться при транспортировке корпуса. Однако в данном случае таких проблем не возникло.
Теперь можно установить Raspberry Pi 4, зафиксировав его дополнительными стойками и шестигранным ключом из комплекта. Также подключаются мосты GPIO и microSD, как показано выше.
Следующий шаг — подготовка радиатора: необходимо соединить две опоры (важно соблюсти правильную ориентацию) и разместить две термопрокладки под радиатором.
Затем радиатор устанавливается поверх платы Raspberry Pi и фиксируется четырьмя винтами.
На этом этапе можно начать добавлять акриловые и металлические панели. Вентилятор можно установить на любую из акриловых панелей, но в инструкции рекомендуется крепить его к крышке с отверстием для GPIO.
Перед установкой нижней крышки необходимо подключить SSD-накопитель M.2 SATA.
Сборка почти завершена: осталось разместить демпфирующие прокладки на нижней крышке (здесь можно было бы сделать аккуратнее).
Было замечено, что RGB-лента установлена неправильно. Шаг 16 в инструкции гласит: «RGB-лента должна быть приклеена к нижней части металлической панели A», но не было понятно, как именно. На самой ленте не оказалось двустороннего скотча, поэтому она была размещена в центре с надеждой на лучшее. Позже обнаружились два оставшихся черных скотча.
После этого верхняя крышка была снята, и RGB-лента зафиксирована по бокам корпуса.
Наконец, с одной стороны устанавливаются карта microSD и мост для SSD, а с другой — оставшаяся небольшая акриловая панель, закрывающая OLED-дисплей.
Готово! Сборка выглядит аккуратно и, надеюсь, выполнена правильно.
### Установка ПО и тестирование функций
Проверим систему сразу после подключения к HDMI-дисплею и включения питания. Все работает корректно, SSD-накопитель определяется как «NEO Storage».
Однако ранее была допущена ошибка: красный кабель от USB-адаптера был подключен не к USB-C порту Pironman, а напрямую к Raspberry Pi 4. В результате после установки ПО OLED-дисплей сначала отображал данные о загрузке CPU и памяти, а затем постоянно показывал «Power OFF». После переподключения блока питания к USB-C порту на задней панели проблема была решена.
Теперь необходимо следовать онлайн-инструкциям для установки драйверов и ПО, обеспечивающих работу OLED-дисплея, ИК-приемника, кнопки питания и других компонентов.
Сначала потребуется отредактировать /boot/config.txt добавив две строки в конец файла для поддержки кнопки питания и ИК-приемника:
1 2 |
dtoverlay=gpio-poweroff,gpio_pin=26,active_low=0 dtoverlay=gpio-ir,gpio_pin=13 |
Далее потребуется установить Python-скрипт pironman:
1 2 3 4 |
cd ~ git clone https://github.com/sunfounder/pironman.git cd ~/pironman sudo python3 install.py |
Для полной работоспособности может потребоваться перезагрузка. Вот как выглядит система после установки скрипта.
На OLED-дисплее отображается IP-адрес, загрузка CPU, температура процессора, а также использование памяти и хранилища.
Текущую конфигурацию можно проверить следующей командой:
1 2 3 4 5 6 7 8 9 10 |
pi@raspberrypi:~ $ pironman -c config file:/home/pi/.config/pironman/config.txt temp_unit = C fan_temp = 50 screen_always_on = False screen_off_time = 60 rgb_switch = True rgb_style = breath rgb_color = 0a1aff rgb_blink_speed = 50 |
Скрипт pironman предоставляет несколько опций для настройки: порог температуры включения вентилятора, цвета и режимы работы RGB-светодиода, поведение экрана. Также можно переключаться между шкалами Цельсия и Фаренгейта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
pi@raspberrypi:~ $ pironman config file: /home/pi/.config/pironman/config.txt Usage: pironman <OPTION> <input> Options: start start pironman service stop stop pironman service restart restart pironman service -h,--help help, show this help -c,--check show all configurations -a,--auto [ on ],enable auto-start at boot [ off ], disable auto-start at boot -u,--unit [ C/F ], set the unit of temperature, C or F (Celsius/Fahrenheit) -f,--fan [ temp ], Temperature at which the fan switches on, in celsius (default 50),in range (30 ~ 80) -al,--always_on [on/off], whether the screen is always on, default False -s,--staty_time [time], screen display duration in second, in second, default 30 -rw,--rgb_sw [on/off], rgb strip switch -rs,--rgb_style rgb strip display style, default: breath, in [breath / leap / flow / raise_up / colorful] -rc,--rgb_color [(HEX)color], set the color of rgb strip, default: 0a1aff -rb,--rgb_speed [speed], rgb blink speed (0 ~ 100, default 50) |
Скрипт можно модифицировать, так как он написан на Python. Также возможно использование других скриптов, поскольку это стандартный OLED-дисплей. Вот краткая демонстрация работы RGB-ленты и вентилятора.
Работу RGB-ленты, OLED-дисплея и вентилятора уже проверили. Короткое нажатие кнопки включает дисплей, а удержание в течение 2 секунд выключает Raspberry Pi. Повторное нажатие кнопки включает компьютер.
Протестируем ИК-приемник с LIRC:
1 |
$ sudo apt install lirc |
После установки LIRC проверим прием команд с пульта ДУ телевизора:
1 2 3 4 5 6 7 8 9 |
$ mode2 -d /dev/lirc0 Using driver devinput on device /dev/lirc0 Trying device: /dev/lirc0 Using device: /dev/lirc0 code: 0xffffff003096a2007800000103570003 code: 0xffffff0077887900cd0f00019a0f0000 code: 0x28020001cd07000029020001cf070000 code: 0x26020001cd07000028020001cd070000 code: 0x29020001e603000028020001cc070000 |
ИК-приемник работает корректно. Его можно использовать с Kodi и другими медиацентрами.
SATA-накопитель был распознан, но производительность еще не проверяли. Установим iozone3 для тестирования:
1 2 3 4 5 |
wget http://www.iozone.org/src/current/iozone3_494.tgz tar xvf iozone3_494.tgz cd iozone3_494/src/current/ make -j4 linux-arm sudo cp iozone /usr/local/bin/ |
Перед запуском теста iozone3 перейдем в точку монтирования (/mediap/pi/NEO Storage):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
pi@raspberrypi:/media/pi/NEO Storage $ iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 Iozone: Performance Test of File I/O Version $Revision: 3.494 $ Compiled for 32 bit mode. Build: linux-arm Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 1024000 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 85561 293438 325212 325262 iozone test complete. |
Скорость чтения (~325 МБ/с) через USB 3.0 нормальная, как и скорость перезаписи, но скорость записи (~85 МБ/с) неожиданно низкая. Повторные тесты дают тот же результат. Проблема не наблюдалась при тестировании этого SSD в USB-C доке под Windows . Накопитель отформатирован в файловой системе exFAT:
1 2 |
$ mount | grep NEO /dev/sda1 on /media/pi/NEO Storage type exfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2) |
Видно, что для устройства используется драйвер uas (поддержка UASP):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
pi@raspberrypi:/media/pi/NEO Storage $ lsusb Bus 002 Device 002: ID 152d:0580 JMicron Technology Corp. / JMicron USA Technology Corp. USB to ATA/ATAPI Bridge Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 1c4f:0003 SiGma Micro HID controller Bus 001 Device 003: ID 1a2c:0002 China Resource Semico Co., Ltd USB Keykoard Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub pi@raspberrypi:/media/pi/NEO Storage $ lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |
Запустим SBC bench для оценки эффективности охлаждения:
1 2 3 4 5 6 7 |
$ sudo ./sbc-bench.sh -c Average load and/or CPU utilization too high (too much background activity). Waiting... Too busy for benchmarking: 10:23:07 up 44 min, 3 users, load average: 0.52, 0.50, 0.30, cpu: 4% Too busy for benchmarking: 10:23:12 up 44 min, 3 users, load average: 0.48, 0.50, 0.30, cpu: 4% Too busy for benchmarking: 10:23:18 up 44 min, 3 users, load average: 0.44, 0.49, 0.30, cpu: 5% |
Но скрипт не запускается, а загрузка CPU даже немного возрастает в простое!
Это происходит потому, что скрипт Pironman использует 4-5% CPU при активном OLED-дисплее. В основном цикле установлена задержка 0.5 секунды, но при включенном дисплее есть дополнительный цикл с задержкой всего 0.01 секунды для мониторинга кнопки. Изначально дисплей был настроен на постоянную работу для контроля температуры и загрузки CPU, но позже настройки были изменены на автоматическое отключение дисплея после бездействия. После этого удалось запустить скрипт SBC-bench.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Checking cpufreq OPP again. Done (20 minutes elapsed). It seems neither throttling nor frequency capping has occured. Memory performance memcpy: 2566.6 MB/s memset: 3399.8 MB/s 7-zip total scores (3 consecutive runs): 5400, single-threaded: 1655 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 61461.41k 75719.87k 82240.51k 84407.30k 84751.70k 84683.43k aes-128-cbc 61748.61k 76364.71k 82733.91k 84307.29k 84789.93k 84781.74k aes-192-cbc 55657.62k 66900.16k 71660.20k 72982.53k 73187.33k 73405.78k aes-192-cbc 55676.30k 66874.01k 71821.48k 72860.67k 73444.01k 73220.10k aes-256-cbc 50343.01k 59848.85k 63227.48k 64422.57k 64432.81k 64574.81k aes-256-cbc 50459.91k 59570.86k 63347.20k 64332.12k 64476.50k 64623.96k Full results uploaded to http://ix.io/4jVw. Please check the log for anomalies (e.g. swapping or throttling happenend). |
График температуры представлял собой практически прямую линию благодаря массивному радиатору и вентилятору, который периодически включался при однопоточных тестах и работал постоянно во время многопоточного теста 7-zip.
Это также подтвердилось наблюдениями на OLED-дисплее во время теста 7-zip.
Дополнительные тесты не проводились, так как уже были протестированы возможности ICE Tower с вентилятором и без, а также при разгоне Raspberry Pi 4 до 2.0 ГГц . Данная система охлаждения более чем достаточна, даже с избытком, для Raspberry Pi 4 в большинстве сценариев, включая разгон до 2.x ГГц.
Заключение
Pironman представляет собой отличный корпус для Raspberry Pi 4. Инструкции подробные, программная поддержка на уровне, а дизайн привлекательный. Есть несколько моментов для улучшения: возникли сложности с установкой FFC-кабеля для GPIO-адаптера, а соединительные кабели могут ослабляться при транспортировке. Также остался открытым вопрос о низкой скорости записи (но не перезаписи) на M.2 SATA накопитель.
Благодарим SunFounder за предоставленный для обзора корпус Pironman. Комплект из обзора можно приобрести за $63.99 плюс доставка , либо полный комплект с Raspberry Pi 4 (2GB RAM) и картой MicroSD на 32GB за $237.97. Корпус Pironman также доступен для покупки на Amazon US .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.