Корпус
Предыдущий сборок использовал корпус Silverstone SG05, новый — Silverstone SG13, практически идентичные по концепции:
ХАРАКТЕРИСТИКА SG05 SG13 Ширина 218mm 222mm Высота 175mm 181mm Глубина 276mm 285mm Объём 10.5L 10.8L
Прирост размеров всего на 5%, но необходимый и оценённый по достоинству.
Производительность
Новая конфигурация примерно на 25% быстрее по CPU и на 40-60% быстрее в части GPU, в зависимости от нагрузки. Скорость SSD/NVMe останется той же, так как платформа всё ещё AM4, и оперативная память — опять DDR4.
Сборка
Спустя три месяца ожидания компоненты наконец собрали. Сын участвовал в сборке и с интересом наблюдал процесс. Сначала CPU в сокет материнской платы и NVMe в слот M.2.

Потом — термопаста и куллер на процессор.

Честно говоря, это оказалось не так просто, как звучит. Thermalight AXP-90 X47 поставляется с вариантами крепления для AMD и Intel, и потребовалось время, чтобы разобраться с правильными винтами и комплектующими.

Затем — материнская плата в корпус.

Следующий этап — установка оперативной памяти или видеокарты. Поскольку измерения показали, что видеокарта влезет с точностью до миллиметра, начали именно с неё.

Но как бы ни пытались, с какого бы угла ни подходили — видеокарта просто не лезла в корпус.
Прикольно, что видеокарта называлась Challenger, и она и правда была вызывающе сложна в установке. Система получила имя challenger в её честь. Любитель Dodge Challenger, хоть и владею Dodge, но Challenger пока только мечта.
Осмотрел видеокарту со всех сторон и заметил одну деталь.

Пластиковый кожух с вентиляторами был на сантиметр шире самой PCB, поэтому решил аккуратно его обрезать.

Вот как выглядел пластиковый кожух после обрезки по размеру PCB.

Работа заняла примерно 2-3 минуты.

После переустановки кожуха попробовал протолкнуть видеокарту в корпус ещё раз — но обрезка оказалась недостаточной. Пришлось переходить к плану Б: разобрал кронштейн слота расширения видеокарты, поставил его на место в корпусе и снова попытался установить карту, чтобы позже прикрутить кронштейн обратно. Но и это не помогло. Следующей "жертвой" обрезки стал сам кронштейн.

И после обрезки.

Немного, но это была необходимая модификация для установки Challenger в корпус.
После этого удалось наконец присоединить видеокарту к материнской плате. Установил оперативную память и SSD SATA — ничего примечательного, затем добавил БП и в целом всё было готово.
Приятно, что Thermaltake Toughpower Grand 750W имеет съёмные кабели, поэтому удалось освободиться от одного лишнего кабеля в корпусе.
Вообще люблю собирать всё, включая компьютеры, но одна вещь всегда раздражает при сборке ПК — кабели кнопок корпуса к материнской плате.
Ещё в 2006-м году, собирая игровой ПК для друга, это выглядело примерно так — запуск компьютера винтом 🙂
Сравнение производительности
Разница в производительности CPU между старым AMD Ryzen 7 1700 и новым AMD Ryzen 7 PRO 4750GE составляет примерно 25%. Что касается GPU между 5700XT 8GB и 7700XT 12GB — это где-то 40-60%.
Визуально системы практически не отличаются. Первая — старая.
И новая.
FreeBSD
Самая важная часть статьи — сообщить, что все компоненты, особенно видеокарта, отлично работают с FreeBSD с drm-kmod и x11-drivers/xlibre-xf86-video-amdgpu — драйвером XLibre для AMD Radeon GPU. После того как узнал, насколько красные ребята из Red Hat хотели покалечить и убить X11, туда я не вернусь. XLibre X11 — мой дом. И не начну про Wayland — подробности в статье про FreeBSD Desktop на 200 МБ ОЗУ.
Прошивка
После установки и перезагрузки запустил команду fwget(8), чтобы загрузить все необходимые прошивки для FreeBSD.
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'
Но оказалось, что этого недостаточно. При каждой загрузке FreeBSD выдавал эти ошибки:
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!
Начал копать. Сначала поискал iwmbtfw во всех сервисах /etc/rc.d:
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
Похоже, каталог /usr/local/share/iwmbt-firmware просто отсутствует:
challenger # man iwmbtfw | grep firmware
Firmware files are available in the comms/iwmbt-firmware port.
Нужно установить пакет comms/iwmbt-firmware:
challenger # pkg search -o iwmbt comms/iwmbt-firmware Intel Wireless bluetooth adaptor firmwares used by iwmbtfw(8) challenger # pkg install iwmbt-firmware Updating FreeBSD-ports repository catalogue... FreeBSD-ports repository is up to date. Updating FreeBSD-ports-kmods repository catalogue... FreeBSD-ports-kmods repository is up to date. Updating FreeBSD-base repository catalogue... FreeBSD-base repository is up to date. All repositories are up to date. The following 1 package(s) will be affected (of 0 checked): New packages to be INSTALLED: iwmbt-firmware: 20251111 [FreeBSD-ports] Number of packages to be installed: 1 The process will require 15 MiB more space. 5 MiB to be downloaded. Proceed with this action? [y/N]: y [1/1] Fetching iwmbt-firmware-20251111: 100% 4840 KiB 619.5 kB/s 00:08 Checking integrity... done (0 conflicting) [1/1] Installing iwmbt-firmware-20251111: 100% [1/1] Extracting iwmbt-firmware-20251111: 100%
После перезагрузки ошибка больше не появлялась — проблема решена.
Компоненты
Вот точный список оборудования с ценами в EUR. Часть куплена новой, часть — б/у.
ТИП EUR МОДЕЛЬ КОРПУС 55 Silverstone SG13 БП 55 Thermaltake Toughpower Grand 750W ПЛАТА 100 ASRock B550M-ITX/ac CPU 145 AMD Ryzen 7 4750GE 8C/16T 35W TDP GPU 340 ASRock ATI Radeon 7700XT 12GB Challenger ПАСТА 10 Grizzly Thermal Kryonaut 2g ОХЛАД 40 Thermalight AXP-90 X47 ВЕНТ 5 Savio BLADEX1 120mm PWM SSD 45 ADATA SU650 512GB NVME 50 Phison ESO512GYLCT-EP3-2L 512GB RAM 150 2 x 16GB Goodram DDR4 3600MHz 1.35V CL18 ИТОГО 995 СУММА
Не уверен, стоило ли это, но сделал же.
Кстати, заодно обновил монитор с HP E221c FullHD на HP E271i FullHD с дополнительной саундбаром HP, смонтированной под экраном. Ничего особенного — монитор примерно за 70 EUR, саундбар за 15 EUR.
XLibre X11
Установил эти пакеты:
challenger # \
pkg install -y \
drm-kmod \
xlibre \
openbox \
xterm \
xinit \
mesa-demos \
scrot \
radeontop \
screen \
lsblk \
beadm \
smartmontools
Затем запустил XLibre X11 как обычно:
vermaden@challenger % echo openbox > ~/.xinitrc
vermaden@challenger % xinit -- -dpi 75 -nolisten tcp
X11 XLibre запустился как ожидалось, но при проверке логов обнаружил, что используется драйвер scfb, и пользователь не входил в группу video. Добавил себя туда:
challenger # pw groupmod video -m vermaden
Поискал драйвер amdgpu:
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
Важно установить именно x11-drivers/xlibre-xf86-video-amdgpu, потому что другой вариант заставит удалить XLibre и установить Xorg.
Добавил конфиг AMD Radeon X11:
challenger # cat /usr/local/etc/X11/xorg.conf.d/card.conf
Section "Device"
Identifier "Card0"
Driver "amdgpu"
Option "TearFree" "true"
EndSection
Ничего сложного, но работает как надо.
Проверил /var/log/Xorg.0.log для верификации:
[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] compiled for 1.25.1.9, module version = 25.1.2
[2026-09-05 14:48:22] Module class: X.Org Video Driver
[2026-09-05 14:48:22] ABI class: X.Org Video Driver, version 28.1
[2026-09-05 14:48:22] (II) AMDGPU: Driver for AMD Radeon:
All GPUs supported by the amdgpu kernel driver
Именно то, что нужно было.
Вот как видеокарта выглядит в выводе pciconf(8):
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
Потребление ресурсов в X11 XLibre сессии на FreeBSD выглядит так:
challenger # top -b -ores
last pid: 5702; load averages: 0.08, 0.08, 0.02 up 0+00:30:16 14:35:51
34 processes: 1 running, 33 sleeping
CPU: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 99.9% idle
Mem: 92M Active, 101M Inact, 1512M Wired, 2056K Buf, 29G Free
ARC: 141M Total, 24M MFU, 113M MRU, 388K Anon, 670K Header, 2159K Other
88M Compressed, 207M Uncompressed, 2.35:1 Ratio
Swap: 4096M Total, 4096M Free
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
1117 vermaden 1 0 0 26M 14M select 13 0:00 0.00% xterm
77479 root 1 0 0 25M 10M select 14 0:00 0.00% sshd
17882 root 1 0 0 15M 4356K select 9 0:00 0.00% devd
89878 vermaden 1 1 0 16M 3808K wait 5 0:00 0.00% xinit
2151 vermaden 1 0 0 14M 3500K wait 2 0:00 0.00% sh
5702 root 1 0 0 15M 3492K CPU9 9 0:00 0.00% top
1924 root 1 0 0 14M 3280K wait 4 0:00 0.00% login
Вот как выглядит основной конфиг /etc/rc.conf FreeBSD:
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"
Ничего прессийного — просто базовые настройки.
Энергопотребление
Измерения показывают примерно такие же значения, как и на предыдущей системе, но слегка ниже:
МОЩНОСТЬ СОСТОЯНИЕ 47W ОЖИДАНИЕ без загруженного amdgpu.ko 39W ОЖИДАНИЕ с загруженным amdgpu.ko 45W НАГРУЗКА — 16 x 100% потоков @ 1.4GHz 80W НАГРУЗКА — 16 x 100% потоков @ 3.1GHz
Turbo-частота AMD Ryzen 7 4750GE достигает 4.3GHz, но не уверен, что используется. Например, CPU в ноутбуке показывает два финальных скорости как 1801/15000 1800/15000, где дополнительная 1 — это Turbo режим, но ничего подобного для этого Ryzen.
Также поддерживается только состояние C1, что печально 😦
challenger # sysctl dev.cpu.0
dev.cpu.0.temperature: 47.0C
dev.cpu.0.cx_method: C1/hlt
dev.cpu.0.cx_usage_counters: 259234
dev.cpu.0.cx_usage: 100.00% last 19092us
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_supported: C1/1/0
dev.cpu.0.freq_levels: 3100/3778 1700/1615 1400/1277
dev.cpu.0.freq: 1400
dev.cpu.0.%iommu:
dev.cpu.0.%parent: acpi0
dev.cpu.0.%pnpinfo: _HID=ACPI0007 _UID=0 _CID=none
dev.cpu.0.%location: handle=\_SB_.PLTF.C000
dev.cpu.0.%driver: cpu
dev.cpu.0.%desc: ACPI CPU
Вот как выглядит вывод sensors(8):
challenger # sensors
BATTERY/AC/TIME/FAN/SPEED
------------------------------------
dev.cpu.0.cx_supported: C1/1/0
dev.cpu.0.cx_usage: 100.00% last 10882us
dev.cpu.0.freq: 1400
hw.acpi.cpu.cx_lowest: C1
powerd(8): running
SYSTEM/TEMPERATURES
------------------------------------
dev.cpu.0.temperature: 47.1C
dev.cpu.1.temperature: 47.1C
dev.cpu.2.temperature: 47.1C
dev.cpu.3.temperature: 47.1C
dev.cpu.4.temperature: 47.1C
dev.cpu.5.temperature: 47.1C
dev.cpu.6.temperature: 47.1C
dev.cpu.7.temperature: 47.1C
dev.cpu.8.temperature: 47.1C
dev.cpu.9.temperature: 47.1C
dev.cpu.10.temperature: 47.1C
dev.cpu.11.temperature: 47.1C
dev.cpu.12.temperature: 47.1C
dev.cpu.13.temperature: 47.1C
dev.cpu.14.temperature: 47.1C
dev.cpu.15.temperature: 47.1C
DISKS/TEMPERATURES
------------------------------------
smart.ada0.temperature_celsius: 34.0C
smart.nvme0.temperature: 39.0C
Нормально. Ни плохо, ни хорошо.
Обновление PKGBASE
На новую систему установили FreeBSD 15.1-RELEASE, теперь обновимся до последнего доступного 15.1-pX релиза:
challenger # pkg upgrade -r FreeBSD-base Updating FreeBSD-base repository catalogue... FreeBSD-base repository is up to date. FreeBSD-base is up to date. Checking for upgrades (53 candidates): 100% Processing candidates (53 candidates): 100% The following 52 package(s) will be affected (of 0 checked): Installed packages to be UPGRADED: FreeBSD-audit: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-autofs: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-bhyve: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-bsnmp: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-clang: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-clang-dev: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-clibs: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-clibs-dev: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-clibs-dev-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-clibs-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-console-tools: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-ctl: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-jail: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-kernel-generic: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-kernel-generic-dbg: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-lib9p: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-lib9p-dev: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-lib9p-dev-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-lib9p-lib-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-libevent1: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-libevent1-dev: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-libevent1-dev-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-libevent1-lib32: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-mtree: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-natd: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-natd-dev: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-natd-dev-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-natd-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-ntp: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-openssl-dev: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-openssl-dev-lib32: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-openssl-lib: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-openssl-lib32: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-pmc: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-ppp: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-rescue: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-runtime: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-runtime-dev: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-runtime-dev-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-runtime-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-src: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-src-sys: 15.1 -> 15.1p3 [FreeBSD-base] FreeBSD-syslogd: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-utilities: 15.1 -> 15.1p2 [FreeBSD-base] FreeBSD-utilities-dev: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-utilities-dev-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-utilities-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-zfs-dev: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-zfs-dev-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-zfs-lib: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-zfs-lib32: 15.1 -> 15.1p1 [FreeBSD-base] FreeBSD-zoneinfo: 15.1 -> 15.1p2 [FreeBSD-base] Number of packages to be upgraded: 52 579 MiB to be downloaded. Proceed with this action? [y/N]: y
Всё прошло идеально. После обновления перезагрузился и всё работало как надо.
Отступление
Полгода спустя после сборки, которая была в столовой, мой 10-летний сын подошёл и говорит: «Папа, я написал вот эту игру PC Builder с помощью ChatGPT, хочешь поиграть?». После проверки я был по-настоящему поражён — в хорошем смысле. В 10 лет я не только не имел AMIGA 600, но и играл в игры на Pegasus — дешёвом польском клоне NES. AMIGA 600 получил примерно в 12 лет (если память не подводит) и то играл в Sensible World of Soccer или Cannon Fodder вместо того, чтобы что-то создавать. Вот как выглядит эта игра (после многих итераций с ИИ):
Да, на польском, но это просто один промпт в сторону английского/польского, когда нужно 🙂
Сын также удивил меня тем, что несколько раз говорил: «Папа, у меня закончились токены, я просто скопировал то, что было, и вставил в другой ИИ — он подхватил мою работу и добавил нужные изменения». Глядя, как сын делает это, будучи по сути начинающим «Vibe Coder», я понимаю, что школьная система — просто огромный прикол. Математика, физика, английский нужны и полезны, но остальное? Опционально. Я так чувствовал и так поступал, когда был в школе. Просто огромная трата времени — зубрить для экзамена и забывать всё, чтобы получить оценку.
Смешно, что мой сын никогда не играл в игры, которые я писал, а я уже сыграл в две его игры. Хочу, чтобы каждый родитель испытал то же самое.