支援顯卡

參考FreeBSD官網支援列表 https://wiki.freebsd.org/Graphics/AMD-GPU-Matrix

如果FreeBSD 13+ 安裝 drm-510-kmod,FreeBSD 14+ 安裝 drm-515-kmod

在rc.conf 加上

kld_list="radeonkms"  ##amd舊顯卡,參考官網列表

Firmware

手動載入後,發現錯誤

[drm] radeon kernel modesetting enabled.
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
[drm] initializing kernel modesetting (CAICOS 0x1002:0x6779 0x1642:0x3A75 0x00).
[drm ERROR :radeon_atombios_init] Unable to find PCI I/O BAR; using MMIO for ATOM IIO
ATOM BIOS: C26402
drmn0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
drmn0: GTT: 1024M 0x0000000040000000 - 0x000000007FFFFFFF
[drm] Detected VRAM RAM=1024M, BAR=256M
[drm] RAM width 64bits DDR
[drm] radeon: 1024M of VRAM memory ready
[drm] radeon: 1024M of GTT memory ready.
[drm] Loading CAICOS Microcode
drmn0: could not load firmware image 'radeon/CAICOS_pfp.bin'
ni_cp: Failed to load firmware "radeon/CAICOS_pfp.bin"
[drm ERROR :evergreen_init] Failed to load firmware!
drmn0: Fatal error during GPU init
[drm] radeon: finishing device.
[drm] radeon: ttm finalized
Warning: can't remove non-dynamic nodes (dri)!
device_attach: drmn0 attach returned 2

安裝firmware

$ cd /usr/ports/gpu-firmware-radeon-kmod
$ make -V FLAVORS
$ aruba barts bonaire btc caicos cayman cedar cypress hainan hawaii juniper kabini kaveri mullins oland palm pitcairn r100 r200 r300 r420 r520 r600 r700 redwood rs600 rs690 rs780 rv610 rv620 rv630 rv635 rv670 rv710 rv730 rv740 rv770 sumo sumo2 tahiti turks verde
$ make FLAVOR=caicos install clean

還是報錯

drmn0: could not load firmware image 'radeon/BTC_rlc.bin'
ni_cp: Failed to load firmware "radeon/BTC_rlc.bin"
[drm ERROR :evergreen_init] Failed to load firmware!
drmn0: Fatal error during GPU init
drmn0: could not load firmware image 'radeon/SUMO_uvd.bin'
drmn0: radeon_uvd: Can't load firmware "radeon/SUMO_uvd.bin"
drmn0: failed UVD (-2) init.

安裝缺少的firmware: btc, sumo

成功

drm] Detected VRAM RAM=1024M, BAR=256M
[drm] RAM width 64bits DDR
[drm] radeon: 1024M of VRAM memory ready
[drm] radeon: 1024M of GTT memory ready.
[drm] Loading CAICOS Microcode
drmn0: successfully loaded firmware image 'radeon/CAICOS_pfp.bin'
drmn0: successfully loaded firmware image 'radeon/CAICOS_me.bin'
drmn0: successfully loaded firmware image 'radeon/BTC_rlc.bin'
drmn0: successfully loaded firmware image 'radeon/CAICOS_mc.bin'
drmn0: successfully loaded firmware image 'radeon/CAICOS_smc.bin'
[drm] Internal thermal controller with fan control
[drm] radeon: dpm initialized
drmn0: successfully loaded firmware image 'radeon/SUMO_uvd.bin'
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[drm] PCIE GART of 1024M enabled (table at 0x0000000000162000).
drmn0: WB enabled
drmn0: fence driver on ring 0 use gpu addr 0x0000000040000c00
drmn0: fence driver on ring 3 use gpu addr 0x0000000040000c0c
drmn0: fence driver on ring 5 use gpu addr 0x0000000000072118
drmn0: radeon: MSI limited to 32-bit
drmn0: radeon: using MSI.
[drm] radeon: irq initialized.
[drm] ring test on 0 succeeded in 3 usecs
[drm] ring test on 3 succeeded in 6 usecs
[drm] ring test on 5 succeeded in 2 usecs
[drm] UVD initialized successfully.
[drm] ib test on ring 0 succeeded in 0 usecs
[drm] ib test on ring 3 succeeded in 0 usecs
[drm] ib test on ring 5 succeeded
...