Корпус

Предыдущий сборок использовал корпус 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.

CPU в сокете

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

Куллер и RAM

Честно говоря, это оказалось не так просто, как звучит. 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», я понимаю, что школьная система — просто огромный прикол. Математика, физика, английский нужны и полезны, но остальное? Опционально. Я так чувствовал и так поступал, когда был в школе. Просто огромная трата времени — зубрить для экзамена и забывать всё, чтобы получить оценку.

Смешно, что мой сын никогда не играл в игры, которые я писал, а я уже сыграл в две его игры. Хочу, чтобы каждый родитель испытал то же самое.