PC on Libre/Free Software: hardware selection, RockPro64

I've been using a libreboot-ed ThinkPad T500, but USB system started to show its age - only one port works, and it's a random one on each boot.

Started to look for a replacement with these requirements:

  • Supported by Libre/Free Software - linux-libre, upstream U-boot without vendor blobs
  • Ability to install OS to SATA/NVMe drive. SD/eMMC/USB are too slow/unreliable
  • Sharing Internet connection via twisted pair and WiFi
  • Working Bluetooth
  • Upstream software: linux-libre, U-boot. I don't want to install forks of outdated versions.

Main candidates:

  • Blackbird, POWER9 CPU. Has a BMC, all firmware sources are available. Firmware for built-in NIC is in development, described here. Drawbacks are price and the fact that you can't order it (logistical problems due to covid, according to Talospace)
  • MNT Reform. ARM64 laptop, no vendor blobs except 16KiB one to initialize RAM. Shipping next year
  • RockPro64 - RK3399 SBC, 4G RAM, good-enough CPU (2xA72 + 4xA53), PCIe x4, 4xUSB, 1xRJ-45 (1 Gbit/s). Gentoo approves
  • Gigabyte GA-G41M-ES2L for libreboot treatment
  • HoneyComb LX2 aarch64, 16 A72 cores, a full-fledged motherboard. More expensive than RockPro64 (it has much more functionality). I couldn't find if it requires vendor blobs, and it's not in U-boot repo (by name)

I chose RockPro64. Pine64 sells a SATA card for it but it uses an ASM chip. Judging by forum threads and my experience ASM chips are not reliable - my mPCIe card on ASM1061 works with HDD but not SSD for some reason. Found this card - 4 ports, Marvell 88SE9215 chip, supported by Linux. Bluetooth and WiFi adapters that do not require vendor blobs were found on H-node (an excellent resource).

Resulting BOM:

  • SATA controller PCE4SAT-M02 (PCIe)
  • Bluetooth controller Asus BT400 (USB)
  • WiFi D-Link DWA-126 (USB) - Access Point mode
  • Ethernet D-Link Dub-E100 100Mbit/s (USB) - for ISP connection
  • 2 USB hubs
  • Chipset cooler Zalman ZM-NB32J - fits, here is an old review
  • Aluminum box 155x85x120 mm
  • Regular PC PSU (I already had one)

DIY power connector Molex -> DC barrel:

power-molex-barrel.jpg

Bolted a small aluminum plate to SATA card to hold the cables:

rockpro64-sata-1


rockpro64-sata-2


More photos:

rockpro64-hw-2


rockpro64-hw-2


rockpro64-hw-2


rockpro64-hw-3


rockpro64-hw-4


rockpro64-hw-5


Next up: installing U-boot and Arch Linux ARM.

ПК на свободном ПО: выбор железа, RockPro64

Довольно давно использовал дома ThinkPad T500 прошитый свободным libreboot-ом, но у него начала барахлить USB система - работает только 1 порт, причём при каждой загрузке разный.

Начал искать замену с такими требованиями:

  • Максимальная поддержка свободным софтом - ядро linux-libre, U-boot апстрим без вендорских блобов
  • Установка ОС на SATA/NVMe диск. Запускать с SD/eMMC/USB слишком медленно/проблематично
  • Возможность раздавать интернет через витую пару и WiFi
  • Рабочий Bluetooth
  • Софт из апстрима: linux-libre, U-boot. Не хочу ставить форки старых версий.

Основные кандидаты:

  • Blackbird, CPU на архитектуре POWER9. Есть BMC, все исходники доступны. Только прошивку встроенной сетевой карты делают энтузиасты, ситуация описана тут. Недостатки - цена, недоступность для заказа (пишут проблемы с логистикой из-за covid)
  • MNT Reform. Ноутбук на ARM64 , не требует бинарных блобов кроме 16KiB для инициализации RAM. Производство ещё не поставили на поток
  • RockPro64 - SBC на RK3399, 4G RAM, нормальный CPU (2xA72 + 4xA53), PCIe x4, 4xUSB, 1xRJ-45 (1 Gbit/s). Gentoo одобряет
  • Gigabyte GA-G41M-ES2L под прошивку libreboot-ом
  • HoneyComb LX2 aarch64, 16 A72 ядер, полноценная материнка. Дороже RockPro64 (другой класс), не нашёл нужны ли вендорские блобы, в U-boot репозитории её нет

Остановился на RockPro64. Pine64 продаёт к нему SATA карту, но она на ASM чипе. Судя по отзывам и опыту они ненадёжные - у меня mPCIe карта на ASM1061 работает с HDD, но не с SSD. Нашёл вот эту на 4 порта, на чипе Marvell 88SE9215 , линуксом поддерживается. Адаптеры Bluetooth и WiFi, не требующие блобов, подобрал на H-node (отличный ресурс).

В результате получился такой набор:

  • SATA controller PCE4SAT-M02 (PCIe)
  • Bluetooth controller Asus BT400 (USB)
  • WiFi D-Link DWA-126 (USB) - есть режим Access Point
  • Ethernet D-Link Dub-E100 100Mbit/s (USB) - для провайдерского шнурка
  • 2 USB хаба
  • Радиатор чипсетный Zalman ZM-NB32J - подошёл по размеру, старый обзор
  • Алюминиевый корпус 155x85x120 мм
  • Обычный компьютерный блок питания (уже был)

DIY питание от Molex разъёма к бочонку:

power-molex-barrel.jpg

К SATA карте привинтил алюминиевую пластину как держатель кабелей:

rockpro64-sata-1


rockpro64-sata-2


Ещё фото:

rockpro64-hw-2


rockpro64-hw-2


rockpro64-hw-2


rockpro64-hw-3


rockpro64-hw-4


rockpro64-hw-5


В следующем посте - установка U-boot и Arch Linux ARM.