Solved X does not start with Radeon RX 6700 XT GPU / FreeBSD 13.0-RELEASE - no screens found

THREAD SUMMARY: Drivers for AMD Radeon RX 6700 XT GPUs are unavailable as of May 8, 2021. However, this GPU is VESA-compatible, so using the vesa driver works as a sufficient drop-in.



I'm a professional programmer with around two decades of experience using Linux as a development environment. I recently built a new PC and wanted to play around with FreeBSD. I installed X Windows per the instructions in the FreeBSD Handbook, but it will not start. The logs are clear about the problem (no screens found seems to be a smoking gun), but I don't know how to fix it or where to start. I've updated the GPU driver in /usr/local/etc/X11/xorg.conf.d/device.conf between amdgpu and radeon to no avail.

The contents of /usr/local/etc/X11/xorg.conf.d/device.conf and output from several commands recommended from the FreeBSD Wiki have been attached or are visible inline below.

I'd really like to use X on this system but I'm stumped—any ideas?

Thanks for all of your help. :)

-Dan




Hardware (generated from hw-probe -all -upload): https://bsd-hardware.info/?probe=cbbf4f86cd

Per SirDice's suggestion, I updated /etc/rc.conf to only load amdgpu but I get a similar failure on running startx.

Code:
[dan@freebsd2021 /var/log]$ cat Xorg.0.log
[   367.515]
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[   367.515] Build Operating System: FreeBSD 13.0-RELEASE amd64
[   367.515] Current Operating System: FreeBSD freebsd2021 13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr  9 04:24:09 UTC 2021     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
[   367.515] Build Date: 15 April 2021  07:24:13AM
[   367.515]
[   367.515] Current version of pixman: 0.40.0
[   367.515]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[   367.515] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   367.515] (==) Log file: "/var/log/Xorg.0.log", Time: Mon May  3 14:22:19 2021
[   367.515] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[   367.515] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[   367.515] (==) No Layout section.  Using the first Screen section.
[   367.515] (==) No screen section available. Using defaults.
[   367.515] (**) |-->Screen "Default Screen Section" (0)
[   367.515] (**) |   |-->Monitor "<default monitor>"
[   367.515] (==) No device specified for screen "Default Screen Section".
    Using the first device section listed.
[   367.515] (**) |   |-->Device "Card0"
[   367.515] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[   367.516] (==) Automatically adding devices
[   367.516] (==) Automatically enabling devices
[   367.516] (==) Not automatically adding GPU devices
[   367.516] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   367.516] (==) FontPath set to:
    /usr/local/share/fonts/misc/,
    /usr/local/share/fonts/TTF/,
    /usr/local/share/fonts/OTF/,
    /usr/local/share/fonts/Type1/,
    /usr/local/share/fonts/100dpi/,
    /usr/local/share/fonts/75dpi/,
    catalogue:/usr/local/etc/X11/fontpath.d
[   367.516] (==) ModulePath set to "/usr/local/lib/xorg/modules"
[   367.516] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[   367.516] (II) Loader magic: 0x4359f0
[   367.516] (II) Module ABI versions:
[   367.516]     X.Org ANSI C Emulation: 0.4
[   367.516]     X.Org Video Driver: 24.1
[   367.516]     X.Org XInput driver : 24.1
[   367.516]     X.Org Server Extension : 10.0
[   367.516] (--) PCI:*(12@0:0:0) 1002:73df:1da2:e445 rev 193, Mem @ 0xd0000000/268435456, 0xe0000000/2097152, 0xfcc00000/1048576, I/O @ 0x0000e000/256, BIOS @ 0x????????/65536
[   367.516] (II) LoadModule: "glx"
[   367.516] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[   367.516] (II) Module glx: vendor="X.Org Foundation"
[   367.516]     compiled for 1.20.11, module version = 1.0.0
[   367.516]     ABI class: X.Org Server Extension, version 10.0
[   367.516] (II) LoadModule: "amdgpu"
[   367.516] (II) Loading /usr/local/lib/xorg/modules/drivers/amdgpu_drv.so
[   367.516] (II) Module amdgpu: vendor="X.Org Foundation"
[   367.516]     compiled for 1.20.11, module version = 19.1.0
[   367.516]     Module class: X.Org Video Driver
[   367.516]     ABI class: X.Org Video Driver, version 24.1
[   367.516] (II) AMDGPU: Driver for AMD Radeon:
    All GPUs supported by the amdgpu kernel driver
[   367.517] (--) Using syscons driver with X support (version 2.0)
[   367.517] (--) using VT number 9

[   367.517] (II) AMDGPU(0): [KMS] drm report modesetting isn't supported.
[   367.517] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[   367.517] (EE) Screen 0 deleted because of no matching config section.
[   367.517] (II) UnloadModule: "amdgpu"
[   367.517] (EE) Device(s) detected, but none match those in the config file.
[   367.517] (EE)
Fatal server error:
[   367.517] (EE) no screens found(EE)
[   367.517] (EE)
Please consult the The X.Org Foundation support
     at http://wiki.x.org
for help.
[   367.517] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   367.517] (EE)
[   367.517] (EE) Server terminated with error (1). Closing log file.

Code:
[dan@freebsd2021 ~]$ pkg info | grep ^x > pkginfo.txt
[dan@freebsd2021 ~]$ devinfo -vr > devinfo.txt
[dan@freebsd2021 ~]$ sudo pciconf -lvbce > pciconf.txt
[dan@freebsd2021 ~]$ dmesg > dmesg.txt
[dan@freebsd2021 ~]$ xrandr
Can't open display
[dan@freebsd2021 ~]$ sysctl hw.model
hw.model: AMD Ryzen 7 3700X 8-Core Processor
[dan@freebsd2021 ~]$ cat /usr/local/etc/X11/xorg.conf.d/device.conf
Section "Device"
    Identifier  "Card0"
    Driver      "radeon"
    BusID       "PCI:10:0:0"
EndSection
[dan@freebsd2021 ~]$ startx
xauth:  file /home/dan/.serverauth.54689 does not exist


X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
Build Operating System: FreeBSD 13.0-RELEASE amd64
Current Operating System: FreeBSD freebsd2021 13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr  9 04:24:09 UTC 2021     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
Build Date: 15 April 2021  07:24:13AM

Current version of pixman: 0.40.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon May  3 13:43:34 2021
(==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
     at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
[dan@freebsd2021 ~]$ cp /var/log/Xorg.0.log Xorg.0.log.txt
 

Attachments

Last edited:
Don't load both:
Code:
[drm] amdgpu kernel modesetting enabled.
[drm] radeon kernel modesetting enabled.
 
Got it, thanks. I updated /etc/rc.conf to only load amdgpu but I get a similar failure on running startx.

Code:
[dan@freebsd2021 /var/log]$ cat Xorg.0.log
[   367.515]
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[   367.515] Build Operating System: FreeBSD 13.0-RELEASE amd64
[   367.515] Current Operating System: FreeBSD freebsd2021 13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr  9 04:24:09 UTC 2021     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
[   367.515] Build Date: 15 April 2021  07:24:13AM
[   367.515]
[   367.515] Current version of pixman: 0.40.0
[   367.515]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[   367.515] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   367.515] (==) Log file: "/var/log/Xorg.0.log", Time: Mon May  3 14:22:19 2021
[   367.515] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[   367.515] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[   367.515] (==) No Layout section.  Using the first Screen section.
[   367.515] (==) No screen section available. Using defaults.
[   367.515] (**) |-->Screen "Default Screen Section" (0)
[   367.515] (**) |   |-->Monitor "<default monitor>"
[   367.515] (==) No device specified for screen "Default Screen Section".
    Using the first device section listed.
[   367.515] (**) |   |-->Device "Card0"
[   367.515] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[   367.516] (==) Automatically adding devices
[   367.516] (==) Automatically enabling devices
[   367.516] (==) Not automatically adding GPU devices
[   367.516] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   367.516] (==) FontPath set to:
    /usr/local/share/fonts/misc/,
    /usr/local/share/fonts/TTF/,
    /usr/local/share/fonts/OTF/,
    /usr/local/share/fonts/Type1/,
    /usr/local/share/fonts/100dpi/,
    /usr/local/share/fonts/75dpi/,
    catalogue:/usr/local/etc/X11/fontpath.d
[   367.516] (==) ModulePath set to "/usr/local/lib/xorg/modules"
[   367.516] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[   367.516] (II) Loader magic: 0x4359f0
[   367.516] (II) Module ABI versions:
[   367.516]     X.Org ANSI C Emulation: 0.4
[   367.516]     X.Org Video Driver: 24.1
[   367.516]     X.Org XInput driver : 24.1
[   367.516]     X.Org Server Extension : 10.0
[   367.516] (--) PCI:*(12@0:0:0) 1002:73df:1da2:e445 rev 193, Mem @ 0xd0000000/268435456, 0xe0000000/2097152, 0xfcc00000/1048576, I/O @ 0x0000e000/256, BIOS @ 0x????????/65536
[   367.516] (II) LoadModule: "glx"
[   367.516] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[   367.516] (II) Module glx: vendor="X.Org Foundation"
[   367.516]     compiled for 1.20.11, module version = 1.0.0
[   367.516]     ABI class: X.Org Server Extension, version 10.0
[   367.516] (II) LoadModule: "amdgpu"
[   367.516] (II) Loading /usr/local/lib/xorg/modules/drivers/amdgpu_drv.so
[   367.516] (II) Module amdgpu: vendor="X.Org Foundation"
[   367.516]     compiled for 1.20.11, module version = 19.1.0
[   367.516]     Module class: X.Org Video Driver
[   367.516]     ABI class: X.Org Video Driver, version 24.1
[   367.516] (II) AMDGPU: Driver for AMD Radeon:
    All GPUs supported by the amdgpu kernel driver
[   367.517] (--) Using syscons driver with X support (version 2.0)
[   367.517] (--) using VT number 9

[   367.517] (II) AMDGPU(0): [KMS] drm report modesetting isn't supported.
[   367.517] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[   367.517] (EE) Screen 0 deleted because of no matching config section.
[   367.517] (II) UnloadModule: "amdgpu"
[   367.517] (EE) Device(s) detected, but none match those in the config file.
[   367.517] (EE)
Fatal server error:
[   367.517] (EE) no screens found(EE)
[   367.517] (EE)
Please consult the The X.Org Foundation support
     at http://wiki.x.org
for help.
[   367.517] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   367.517] (EE)
[   367.517] (EE) Server terminated with error (1). Closing log file.
 
(From hw-probe) The Navi 22 [Radeon RX 6700/6700 XT / 6800M] (release date March and April 2021) seems not to be supported on FreeBSD. There is no reference to those models upstream [1] [2] (maximum supported Navi model is 14).

I've updated the GPU driver in /usr/local/etc/X11/xorg.conf.d/device.conf between amdgpu and radeon to no avail.
Most likely the model you have is currently unsupported, nevertheless try without setting a driver in device.conf. If there is no positive result you could open an issue upstream and ask for support, but don't expect a working driver any time soon.

Alternatively instead testing FreeBSD on bare metal you could run it in a VM. It runs well on VirtualBox for example.
 
  • Thanks
Reactions: dlo
I have AMD Radeon 8330 which is for Kabini APUs such as QC5000-ITX. My log is similiar to the one reported here
 
Hi,

Take what I say with a grain of salt I am not a dev but if I am not mistaken I've read here (or on GitHub I don't remember exactly) that the current amdgpu driver on FreeBSD 13 is based on the one coming from Linux kernel 5.4. And on Linux, to work the AMD GPUs 6xxx series need at least the kernel 5.10 and even with the 5.11 there are still bugs around if I understand it well which is quite normal for a recent hardware. So I would not be surprised to see the 6xxx series supported only starting from FreeBSD 14. But again guys feel free to correct me if I am wrong about it.
 
I had the same problem, first I follow an advice : I installed graphics/drm-kmod and second I added kld_list="amdgpu" at /etc/rc.conf.
Rebooted , and X started
 
Last edited by a moderator:
Hello dlo,

i recommend first to test the default modesetting driver by removing any custom created xorg configuartion before we should investigate more.
 
i recommend first to test the default modesetting driver by removing any custom created xorg configuartion before we should investigate more.
Will get to this in a few hours :)

I had the same problem, first I follow an advice : I installed graphics/drm-kmod and second I added kld_list="amdgpu" at /etc/rc.conf.
What GPU do you have on your machine?

Most likely the model you have is currently unsupported, nevertheless try without setting a driver in device.conf. If there is no positive result you could open an issue upstream and ask for support, but don't expect a working driver any time soon.
???

I don't suppose there's a way to get access to the GPU technical specs and tweak a driver for an existing GPU with a similar architecture? I looked around AMD's site and can't find any references besides the pre-provided drivers for macOS, Windows, and Linux. I'm going to test if I can use the Linux ABI compatibility layer to run the driver, but I have a feeling this won't work...
 
Will get to this in a few hours :)


What GPU do you have on your machine?


???

I don't suppose there's a way to get access to the GPU technical specs and tweak a driver for an existing GPU with a similar architecture? I looked around AMD's site and can't find any references besides the pre-provided drivers for macOS, Windows, and Linux. I'm going to test if I can use the Linux ABI compatibility layer to run the driver, but I have a feeling this won't work...
AMD64
 
What GPU do you have on your machine?
I have an AMD APU with Radeon graphics. All the details are found in the daily log by #dmesg | grep CPU:
It is a soldered chip known as Kabini. It works on GhostBSD so I suspect a configuration problem with FreeBSD.

All the amdgpu and Radeon firmwares are found in /boot/modules . I assume that, in my case, the kernel knows what a 'Kabini' APU is and it will work after some configuration detail.
 
I investigated why my video does not work with FreeBSD but works with the GhostBSD variant. The main difference is that kld_list="/boot/modules/amdgpu.ko" needs to be defined in rc.conf.

There are 24 modules in the "kabini" group which need to be indexed, I suppose.

kld_list="amdgpu" should be good enough as kldload looks in /boot/kernel as well as /boot/modules. In addition, the amdgpu.ko will figure out you have kabini and load the proper firmware modules (I see only 9 modules, not 24).
 
Also/alternatively: if you can get graphics with a boot from the .iso for GhostBSD 13-STABLE, you'll be able to get graphics with FreeBSD 13.0-RELEASE. https://www.ghostbsd.org/download

???

IMG_2846.png
 
There are some recommendations from users here to try different methods to make the video card work but all comes down to the fact the GPU needs a driver which must support the Radeon RX 6700 XT (Navi 22). Currently there is no such driver for FreeBSD (or derivates, i.e. GhostBSD).

Only the generic VESA driver (x11-drivers/xf86-video-vesa) is supported, assuming the GPU is VESA compatible, but it comes with poor screen resolution, performance etc. If those are no issue then use that driver. Configuration instructions: vesa(4).

The earlier suggested modesetting(4) driver "uses the Linux DRM KMS ioctls", meaning, in short, it needs a driver provided by graphics/drm-kmod, in this case amdgpu from graphics/drm-fbsd13-kmod (which currently doesn't support the RX 6700 XT).

I don't suppose there's a way to get access to the GPU technical specs and tweak a driver for an existing GPU with a similar architecture? I looked around AMD's site and can't find any references besides the pre-provided drivers for macOS, Windows, and Linux. I'm going to test if I can use the Linux ABI compatibility layer to run the driver, but I have a feeling this won't work...
The FreeBSD Linux ABI compatibility layer can't be used to run a Linux base kernel graphics driver. If you want to investigate how to introduce support for the GPU in FreeBSD better look at https://github.com/freebsd/drm-kmod.
 
Only the generic VESA driver (x11-drivers/xf86-video-vesa) is supported, assuming the GPU is VESA compatible, but it comes with poor screen resolution, performance etc. If those are no issue then use that driver. Configuration instructions: vesa(4).

Thank you! Setting the driver to "vesa" indeed works, but as you mention, the screen resolution options are limited and performance is slow.

It will work for now, though!
 
Back
Top