AMD-gebaseerde FreeBSD Desktop Reloaded

Wat betreft de hardware vroeg ik me af wat ik precies moest kopen, zeker gezien de huidige prijzen door de AI-hype. Voor een van mijn eerdere projecten die mislukte (waar ik hopelijk ooit over zal publiceren), had ik een AMD Ryzen 4750GE CPU met een TDP van 35W, maar nog steeds met 8 cores en 16 threads op het AM4-socket. Om de prijs-prestatieverhouding niet te verslechteren met een DDR5- en AM5-setup, heb ik gekozen voor een degelijke AM4-optie.

Behuizing

De vorige build maakte gebruik van de Silverstone SG05 behuizing; deze nieuwe build gebruikt de Silverstone SG13, wat vrijwel hetzelfde is.

KenmerkSG05SG13
Breedte218mm222mm
Hoogte175mm181mm
Diepte276mm285mm
Volume10.5L10.8L

Men zou kunnen zeggen dat het slechts een kleine toename van 5% in grootte is, maar dit was een welkom en noodzakelijk verschil.

Prestatieverschillen

De nieuwe setup is ongeveer 25% sneller wat betreft de CPU en 40-60% sneller op het gebied van de GPU, afhankelijk van de werklast. De SSD/NVMe-snelheden blijven gelijk aangezien het nog steeds hetzelfde AM4-platform is, en het RAM-geheugen is vergelijkbaar omdat er opnieuw DDR4-modules zijn gebruikt.

Assemblage

Nadat de onderdelen een kwartaal lang hadden rondgelegen (ik had het druk), dwong mijn zoon me uiteindelijk om de computer in elkaar te zetten. Dit was een positieve impuls; we gingen in de eetkamer zitten met alle onderdelen en ik begon met de assemblage, terwijl mijn zoon zeer nieuwsgierig was naar hoe het bouwen van een computer in zijn werk gaat.

Eerst ging de CPU op het moederbord en de NVMe in het M.2-slot. Daarna volgden de koelpasta en de ventilator op de CPU. Eerlijk gezegd was dat makkelijker gezegd dan gedaan; de Thermalright AXP-90 X47 heeft installatie-opties voor zowel AMD als Intel, en het kostte me even tijd om alle juiste schroeven en accessoires te selecteren.

Vervolgens plaatste ik het moederbord in de behuizing. Daarna was het tijd voor het RAM of de GPU. Omdat de GPU tot op de millimeter nauwkeurig zou moeten passen in deze behuizing, begon ik met de GPU.

Maar hoeveel ik het ook probeerde, vanuit welke hoek ik het ook aanvloog: de GPU paste simpelweg niet in de behuizing. Ik vond het grappig dat de GPU-naam "Challenger" was, want het was inderdaad een enorme uitdaging om hem in de kast te krijgen. Naar aanleiding hiervan heb ik besloten het systeem ook "Challenger" te noemen. Ik ben een groot fan van Dodge Challenger-auto's en bezit er zelf een, alleen nog geen Challenger.

Bij het inspecteren van de GPU viel één detail me op: de plastic kap met de ventilatoren was ongeveer 1 cm breder dan de PCB van de kaart. Ik besloot de kap precies op die plek door te knippen. Dit kostte ongeveer 2 tot 3 minuten werk.

Nadat ik de kap weer had bevestigd, probeerde ik de GPU opnieuw te plaatsen, maar de inkeping was niet genoeg. Ik veranderde van strategie: ik demonteerde het bracket van het expansieslot, plaatste het bracket in de behuizing en probeerde de kaart opnieuw te passen, zodat ik later de schroeven weer kon toevoegen. Dit lukte nog steeds niet, dus werd het bracket het volgende 'slachtoffer' van de schaar.

Pas na deze aanpassing kon ik de GPU eindelijk aan het moederbord bevestigen. Daarna volgden de RAM-modules en de SATA SSD. Samen met de voeding was het systeem grotendeels compleet. Het is prettig dat de Thermaltake Toughpower Grand 750W voeding afneembare kabels heeft, zodat ik één kabel minder in mijn behuizing heb (ironie bedoeld).

Over het algemeen houd ik van bouwen, maar één ding irriteert me altijd: de kabels van de behuizingsknoppen naar het moederbord. Ter illustratie: toen ik in 2006 een gaming-pc voor een vriend bouwde, startte ik de pc soms gewoon op met een schroevendraaier.

FreeBSD

Het belangrijkste deel van dit artikel is het delen dat al deze onderdelen – en vooral de GPU – zeer goed werken met FreeBSD, mits gebruik wordt gemaakt van drm-kmod en de x11-drivers/xlibre-xf86-video-amdgpu XLibre AMD Radeon GPU-driver. Nadat ik heb ontdekt hoeveel mensen bij Red Hat X11 wilden beperken of uitschakelen, ga ik niet terug naar de Xorg X11-implementatie. XLibre X11 is mijn thuis. Over Wayland doe ik liever geen uitspraken; de details daarover staan in het artikel over de "200 MB RAM FreeBSD Desktop".

Firmware

Na de installatie en herstart gebruikte ik het commando fwget(8) om alle benodigde firmware voor FreeBSD op te halen:

challenger # fwget -v
Trying to match device 0x747e in class video and vendor amd with pci_video_amd
Trying to match device 0x8168 in class network and vendor realtek with pci_network_realtek
Trying to match device 0x24fb in class network and vendor intel with pci_network_intel
Needed firmware packages: 'wifi-firmware-iwlwifi-kmod-7000'

Dit bleek echter niet voldoende, aangezien ik bij elke opstart van FreeBSD de volgende foutmeldingen kreeg:

iwmbtfw: iwmbt_fw_read: open: /usr/local/share/iwmbt-firmware/ibt-hw-37.8.bseq: No such file or directory
iwmbtfw: main: Firmware download failed!

Ik ben gaan zoeken naar de oorzaak en controleerde de /etc/rc.d services op de naam iwmbtfw:

challenger # grep -r iwmbtfw /etc
/etc/devd/iwmbtfw.conf: action "/usr/sbin/iwmbtfw -d $cdev -f /usr/local/share/iwmbt-firmware";

challenger # ls /usr/local/share/iwmbt-firmware
ls: /usr/local/share/iwmbt-firmware: No such file or directory

De map /usr/local/share/iwmbt-firmware ontbrak. Via de man-pagina's ontdekte ik dat de firmware-bestanden beschikbaar zijn in de comms/iwmbt-firmware port:

challenger # man iwmbtfw | grep firmware
Firmware files are available in the comms/iwmbt-firmware port.

challenger # pkg search -o iwmbt
comms/iwmbt-firmware           Intel Wireless bluetooth adaptor firmwares used by iwmbtfw(8)

challenger # pkg install iwmbt-firmware
# ... (installatieproces) ...
[1/1] Installing iwmbt-firmware-20251111...
[1/1] Extracting iwmbt-firmware-20251111: 100%

Na een herstart verscheen de foutmelding niet meer.

Hardware overzicht

Hieronder staat de exacte hardware met de betaalde prijzen in EUR. Sommige onderdelen zijn nieuw gekocht, andere gebruikt.

OnderdeelPrijs (EUR)Specificaties
Behuizing55Silverstone SG13
Voeding55Thermaltake Toughpower Grand 750W
Moederbord100ASRock B550M-ITX/ac
CPU145AMD Ryzen 7 4750GE 8C/16T 35W TDP
GPU340ASRock ATI Radeon 7700XT 12GB Challenger
Koelpasta10Grizzly Thermal Kryonaut 2g
Koeler40Thermalright AXP-90 X47
Ventilator5Savio BLADEX1 120mm PWM
SSD45ADATA SU650 512GB
NVME50Phison ESO512GYLCT-EP3-2L 512GB
RAM1502 x 16GB Goodram DDR4 3600MHz 1.35V CL18
Totaal995

Ik weet niet zeker of het het waard was, maar ik heb het gedaan. Ondertussen heb ik mijn oude HP E221c FullHD monitor vervangen door een HP E271i FullHD, inclusief een HP soundbar onder het scherm (monitor ca. 70 EUR, soundbar ca. 15 EUR).

XLibre X11 configuratie

Ik heb de volgende pakketten geïnstalleerd:

challenger # \
pkg install -y \
drm-kmod \
xlibre \
openbox \
xterm \
xinit \
mesa-demos \
scrot \
radeontop \
screen \
lsblk \
beadm \
smartmontools

Daarna startte ik XLibre X11 als gewoonlijk:

vermaden@challenger % echo openbox > ~/.xinitrc
vermaden@challenger % xinit -- -dpi 75 -nolisten tcp

Na controle van de logs bleek dat ik de software scfb driver gebruikte en dat ik niet in de video groep zat. Dit heb ik als volgt opgelost:

challenger # pw groupmod video -m vermaden

Vervolgens zocht ik naar de amdgpu driver:

challenger # pkg search -o amdgpu
x11-drivers/xf86-video-amdgpu         X.Org amdgpu display driver
x11-drivers/xlibre-xf86-video-amdgpu  XLibre amdgpu display driver

Het is belangrijk om x11-drivers/xlibre-xf86-video-amdgpu te installeren, omdat de andere versie je dwingt om XLibre te verwijderen en Xorg te installeren.

De AMD Radeon X11-configuratie ziet er als volgt uit:

challenger # cat /usr/local/etc/X11/xorg.conf.d/card.conf
Section "Device"
    Identifier "Card0"
    Driver "amdgpu"
    Option "TearFree" "true"
EndSection

In /var/log/Xorg.0.log is te zien dat de driver correct is geladen:

[2026-09-05 14:48:22] (II) LoadModule: "amdgpu"
[2026-09-05 14:48:22] (II) Loading /usr/local/lib/xorg/modules/xlibre-25/drivers/amdgpu_drv.so
[2026-09-05 14:48:22] (II) Module amdgpu: vendor="X.Org Foundation"
[2026-09-05 14:48:22] (II) AMDGPU: Driver for AMD Radeon:
All GPUs supported by the amdgpu kernel driver

De output van pciconf(8) bevestigt de hardware:

challenger # pciconf -lv vgapci0
vgapci0@pci0:3:0:0:     class=0x030000 rev=0xff hdr=0x00 vendor=0x1002 device=0x747e subvendor=0x1849 subdevice=0x5323
vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
device     = 'Navi 32 [Radeon RX 7700 XT / 7800 XT]'
class      = display
subclass   = VGA

Hieronder het resourcegebruik in een X11 XLibre sessie:

challenger # top -b -ores
# ...
PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
90382 vermaden     16   0    0   319M   136M select   6   0:01   0.00% Xorg
92537 vermaden      2   0    0    50M    22M select  12   0:00   0.00% openbox

Mijn /etc/rc.conf configuratie is vrij eenvoudig:

challenger # cat /etc/rc.conf
hostname="challenger.local"
ifconfig_re0="inet 10.0.0.5/24 up"
defaultrouter="10.0.0.1"
kld_list="${kld_list} amdgpu amdtemp"
syslogd_flags="-ss"
sshd_enable="YES"
powerd_enable="YES"
dumpdev="AUTO"
zfs_enable="YES"

Stroomverbruik

Het stroomverbruik is vergelijkbaar met het oudere model, maar iets lager.

StatusVerbruik
IDLE (zonder amdgpu.ko)47W
IDLE (met amdgpu.ko)39W
BUSY (16 x 100% CPU @ 1.4GHz)45W
BUSY (16 x 100% CPU @ 3.1GHz)80W

De Turbo-frequentie voor de AMD Ryzen 7 4750GE is 4.3GHz, maar ik ben er niet zeker van of deze daadwerkelijk wordt gebruikt. Daarnaast wordt alleen de C1-status ondersteund, wat jammer is.

challenger # sysctl dev.cpu.0
dev.cpu.0.temperature: 47.0C
dev.cpu.0.cx_method: C1/hlt
dev.cpu.0.cx_supported: C1/1/0
dev.cpu.0.freq_levels: 3100/3778 1700/1615 1400/1277
dev.cpu.0.freq: 1400

De output van sensors(8) laat het volgende zien:

SYSTEM/TEMPERATURES
------------------------------------
dev.cpu.0.temperature: 47.1C
...
dev.cpu.15.temperature: 47.1C
DISKS/TEMPERATURES
------------------------------------
smart.ada0.temperature_celsius: 34.0C
smart.nvme0.temperature: 39.0C

PKGBASE Upgrade

Omdat ik de standaard 15.1-RELEASE had geïnstalleerd, ben ik overgestapt naar de nieuwste 15.1-pX release:

challenger # pkg upgrade -r FreeBSD-base
# ... (upgrade proces van 52 pakketten) ...

Alles verliep soepel en na een herstart werkte alles perfect.

Off-topic

Een half jaar na de build kwam mijn 10-jarige zoon naar me toe en vroeg: "Hé pap, ik heb met ChatGPT een PC Builder-game geschreven, wil je hem spelen?". Toen ik het bekeek, was ik positief geschokt. Toen ik 10 was, had ik nog niet eens mijn AMIGA 600; ik speelde games op een Pegasus (een goedkope Poolse NES-kloon). Pas rond mijn 12e kreeg ik een AMIGA 600, en zelfs toen speelde ik games als Sensible World of Soccer of Cannon Fodder in plaats van zelf iets te creëren.

Mijn zoon verraste me ook met zijn aanpak. Wanneer hij tegen de tokenlimiet van ChatGPT aanliep, kopieerde hij zijn werk simpelweg naar een andere AI (zoals Perplexity, Claude of Gemini) om daar verder te gaan. Als ik mijn zoon zo zie werken – een echte "Vibe Coder" in spe – heb ik het gevoel dat het huidige schoolsysteem een grap is. Wiskunde, natuurkunde en talen zijn nuttig, maar de rest? Optioneel, om het zacht te zeggen. Het is zonde van de tijd om te stampen voor een examen om vervolgens alles direct te vergeten zodra je het cijfer hebt.

Het grappige is dat mijn zoon nog nooit een game heeft gespeeld die ik heb geschreven, terwijl ik al twee games van hem heb gespeeld. Ik gun elke ouder hetzelfde.