rx7900xtx: only one screen mode, 1024x768

Hi,

Regarding the rx7900xtx; monitor: viewsonic vp-2771; will do 4K (3840 x 2160).

I've got my graphics driver installed and I've got the xserver up and running, and I am presently running a Mate desktop. But I've only got one screen mode, 1024x768. The displays interface doesn't show any other available modes.

I understand xrandr controls the screen modes. I also remember that there used to be various xf86 and xorg files (in unix and linux) where one would specify the modes, but I think this approach legacy, now. I've read chapters 5 and 8 several times but the application of additional screen modes still eludes to me. One section recommended creating a specific file, but when I did this the xserver crashed, so either I read the instructions incorrectly or applied the file incorrectly.

I've got the xserver back up and running (only one screen mode 1024x768), and I don't want to crash it again. I've consulted other sources but their recommendations are ambiguous at best. So, I am here asking for assistance from others who used this os.

All recommendations appreciated. Thank you.

lc
 
Are you sure you have andgpu loaded.

Or are you merely using System Console Frame Buffer?
_Assumed I was using the System Console Frame Buffer, since there was no reference to amdgpu in /etc/rc.conf.
So, I added kld_list=amdgpu as the last line to /etc/rc.conf.
Rebooted, but xserver was no longer active

_Attempt to return to original state (1024x768)
Rebooted into single use mode
Logged-in as root
Attempted to edit /etc/rc.conf to remove the kld_list=amdgpu (as root: ee /etc/rc.conf)
Removed kld_list=amdgpu -but file will not save (error: cannot create /etc/rc.conf)

Is single user mode not the right mode for editing system files such as /etc/rc.conf?
If it is not, then which mode ought I select in order to edit /etc/rc.conf to remove the kld=amdgpu line?
I just want to get back to baseline and go from there.

Thank you.

lc
 
Is single user mode not the right mode for editing system files such as /etc/rc.conf?
If it is not, then which mode ought I select in order to edit /etc/rc.conf to remove the kld=amdgpu line?
I just want to get back to baseline and go from there.
The filesystem is mounted as read-only on the single-user-mode. So you just have to remount it with read/write rights.

# mount -u -o rw / that works for my ZFS-On-Root system.
 
Is single user mode not the right mode for editing system files such as /etc/rc.conf?
If it is not, then which mode ought I select in order to edit /etc/rc.conf to remove the kld=amdgpu line?
When you have problems like a blank/black screen (or even a panic) that might be caused by a configuration setting in for example /etc/rc.conf, then you can certainly try to use single user mode; most configuration files are not used in single user mode. Problems might also show up when you try to start X automatically, for example by using a display server such as x11/sddm or x11/lightdm to login.

So, I added kld_list=amdgpu as the last line to /etc/rc.conf.
Rebooted, but xserver was no longer active
When you have booted normally into the command line there are other options. To edit system files under normal circumstances from the command line in multiuser mode, you need elevated execution rights, you can use:
sudo(8) is commonly used on UNIX-like systems and can be configured for a very wide variety of situations. doas(1) can be viewed as a simple version of sudo(8). See doas mastery for how to configure it; very well explained.
 
What version of FreeBSD are you using? Can you share your version of installed graphics driver modules package a.k.a drm-kmod? You can learn it by running this command below, that will show the version of the package.

$ pkg info -x drm
 
What version of FreeBSD are you using? Can you share your version of installed graphics driver modules package a.k.a drm-kmod? You can learn it by running this command below, that will show the version of the package.

$ pkg info -x drm
Remounting the filesystem to read/write worked great.
Remounted the fs as rw, removed the offending line (kld_list=amdgpu) from /etc/rc.conf. OS boots with original 1024x768 graphical desktop.
Thank you, nxjoseph.

Regarding the FreeBSD version and drm pkg information...

OS version: FreeBSD v14.3

drm pkg report:
querey: $ pkg info -x drm

report:
drm-61-kmod-6.1.128.1403000_5
drm-kmod-20250428
libdrm-2.4.123,1

lc
 
drm-61-kmod-6.1.128.1403000_5
It seems there isn't a problem with the version, i'll suggest you to look at that old rx7900xtx thread if you didn't yet. I'm afraid your gpu may not be supported yet, i don't know. If it isn't supported, you scan use the UEFI framebuffer device, scfb. It can let you open a browser but won't have much 3d acelleration things, i think it's ok to watch video with it.

 
Yes, I've seen this thread (https://forums.freebsd.org/threads/amd-radeon-7900xtx-unsupported.92057/).

About half way down the page (April 10, 2025) bsd_user_1234 reports that "Gentlemen, the RX 7900 XTX works!!!" He was using FreeBSD v14.2 with openbox. I will have to research openbox further. I don't know if he built the OS as a virtual KVM (sandbox type) build or if he is on bare metal. Mine is built on bare metal.
I'll look into openbox later today. Thanks again, nxjoseph.
lc
 
I run FreeBSD 14.3-Release with an Radeon 7900XTX without problems.
I just fetched the latest ports tree and built drm-kmod from source, added to kld_list and there is nothing more to it really.
Running hyprland without any problems.
 
In which case, I'd suggest making sure that the syntax in /etc/rc.conf is correct. As in:
Code:
kld_list="amdgpu"
Yep, double-quote characters are also included. Sometimes a small detail like that trips everything else up, so it really helps to be that anal about details.
 
In which case, I'd suggest making sure that the syntax in /etc/rc.conf is correct. As in:
Code:
kld_list="amdgpu"
Yep, double-quote characters are also included. Sometimes a small detail like that trips everything else up, so it really helps to be that anal about details.
I did include double-quote characters. Still no joy.

I think the drm-kmod may require a build from source, as suggested by the it-people cat above.
 
I run FreeBSD 14.3-Release with an Radeon 7900XTX without problems.
I just fetched the latest ports tree and built drm-kmod from source, added to kld_list and there is nothing more to it really.
Running hyprland without any problems.
I'll look a bit further first, but this may turnout to be the solution. Thank you, it-people.
 
Okay. So, I went to openbox-org. Openbox is a desktop interface tweaking tool; it runs atop/with either gnome or kde. It combines with either the gnome or kde desktops to extend the desktop's configurablity, giving the user more detailed customization for the desktop environment beyond what either gnome or kde address in their respective interfaces. It seeks as a priority to start off simply, allowing further, more complex configuration options as the user may prefer.

Given the openbox description, I would be surprised if this was what made the difference in the functionality of the RX 7900xtx on the thread: https://forums.freebsd.org/threads/amd-radeon-7900xtx-unsupported.92057/. Unless I misread something on that thread, I just don't see how openbox, as described on its home page (a high-level gui tweak tool), would be useful for addressing lower, system-level files and functions that control peripheral components such as graphics cards. Please feel free to correct me if I missed something. Thank you.

lc
 
I run FreeBSD 14.3-Release with an Radeon 7900XTX without problems.
I just fetched the latest ports tree and built drm-kmod from source, added to kld_list and there is nothing more to it really.
Running hyprland without any problems.
hey, can you please post the output of
kldstat | grep amdgpu? This should tell us which firmware your GPU is actually using.

Also, I think the drm-kmod that OP is using is out of date. OP is using 6.1, while the current version is 6.6.... which needs to be compiled from ports.
 
GPU: AMD Radeon RX 7900 XTX

Sure here is the output from kldstat | grep amdgpu

15 1 0xffffffff84600000 6638d8 amdgpu.ko
22 1 0xffffffff844cb000 48ae0 amdgpu_gc_11_0_0_mes_2_bin.ko
23 1 0xffffffff84514000 35bd0 amdgpu_gc_11_0_0_mes1_bin.ko
24 1 0xffffffff8454a000 438f0 amdgpu_psp_13_0_0_sos_bin.ko
25 1 0xffffffff8458e000 3d5e0 amdgpu_psp_13_0_0_ta_bin.ko
26 1 0xffffffff84c64000 49748 amdgpu_smu_13_0_0_bin.ko
27 1 0xffffffff84cae000 474f0 amdgpu_dcn_3_2_0_dmcub_bin.ko
28 1 0xffffffff845cc000 225e0 amdgpu_gc_11_0_0_imu_bin.ko
29 1 0xffffffff84cf6000 34d50 amdgpu_gc_11_0_0_pfp_bin.ko
30 1 0xffffffff84d2b000 30530 amdgpu_gc_11_0_0_me_bin.ko
31 1 0xffffffff84d5c000 2f380 amdgpu_gc_11_0_0_rlc_bin.ko
32 1 0xffffffff84d8c000 65700 amdgpu_gc_11_0_0_mec_bin.ko
33 1 0xffffffff845ef000 a7e0 amdgpu_sdma_6_0_0_bin.ko
34 1 0xffffffff84df2000 5fe30 amdgpu_vcn_4_0_0_bin.ko
 
hey, can you please post the output of
kldstat | grep amdgpu? This should tell us which firmware your GPU is actually using.

Also, I think the drm-kmod that OP is using is out of date. OP is using 6.1, while the current version is 6.6.... which needs to be compiled from ports.

Output in above message.
I'm using kmod 6.1-kmod, which is the highest you can use on release and stable, it is the default dependency for drm-kmod. 6.6 is only supported on current as of now.

Everything is working fine here.
 
Output in above message.
I'm using kmod 6.1-kmod, which is the highest you can use on release and stable, it is the default dependency for drm-kmod. 6.6 is only supported on current as of now.

Everything is working fine here.
Thanks, this is what I was looking for. Yeah, the more recent GPUs don't have proper codenames attached to firmwares that are in FreeBSD's Ports Collection. The firmwares are available in the Ports Collection, the GPU's work, but double-checking that we have all the correct parts (and connecting the dots correctly) is a bit harder than earlier.
 
I'll look a bit further first, [...]
Amd firmware packages have special versions that match a 14.3-RELEASE kernel; when having those you should have the correct versions installed with the string 1403000. When using packages, these should be shown as from the FreeBSD-kmods repository. Please verify that you have those specific 1403000 versions installed. When building the ports from source locally, you'll get these 14.3-RELEASE specific versions as well.

GPU: AMD Radeon RX 7900 XTX

Sure here is the output from kldstat | grep amdgpu

15 1 0xffffffff84600000 6638d8 amdgpu.ko
22 1 0xffffffff844cb000 48ae0 amdgpu_gc_11_0_0_mes_2_bin.ko
23 1 0xffffffff84514000 35bd0 amdgpu_gc_11_0_0_mes1_bin.ko
24 1 0xffffffff8454a000 438f0 amdgpu_psp_13_0_0_sos_bin.ko
25 1 0xffffffff8458e000 3d5e0 amdgpu_psp_13_0_0_ta_bin.ko
26 1 0xffffffff84c64000 49748 amdgpu_smu_13_0_0_bin.ko
27 1 0xffffffff84cae000 474f0 amdgpu_dcn_3_2_0_dmcub_bin.ko
28 1 0xffffffff845cc000 225e0 amdgpu_gc_11_0_0_imu_bin.ko
29 1 0xffffffff84cf6000 34d50 amdgpu_gc_11_0_0_pfp_bin.ko
30 1 0xffffffff84d2b000 30530 amdgpu_gc_11_0_0_me_bin.ko
31 1 0xffffffff84d5c000 2f380 amdgpu_gc_11_0_0_rlc_bin.ko
32 1 0xffffffff84d8c000 65700 amdgpu_gc_11_0_0_mec_bin.ko
33 1 0xffffffff845ef000 a7e0 amdgpu_sdma_6_0_0_bin.ko
34 1 0xffffffff84df2000 5fe30 amdgpu_vcn_4_0_0_bin.ko
Based on the output of it-people , taking for example,
27 1 0xffffffff84cae000 474f0 amdgpu_dcn_3_2_0_dmcub_bin.ko

You should have similar corresponding output:
Rich (BB code):
[1-0] # pkg which amdgpu_dcn_3_2_0_dmcub_bin.ko
/boot/modules/amdgpu_dcn_3_2_0_dmcub_bin.ko was installed by package gpu-firmware-amd-kmod-dcn-3-2-0-20230625.1403000_2
[2-0] # pkg rquery -x '[%R] %o %n %v' 'gpu-firmware-amd-kmod-dcn-3-2-0' | column -t
[FreeBSD]        graphics/gpu-firmware-amd-kmod  gpu-firmware-amd-kmod-dcn-3-2-0  20230625.1402000_2
[FreeBSD-kmods]  graphics/gpu-firmware-amd-kmod  gpu-firmware-amd-kmod-dcn-3-2-0  20230625.1403000_2
[3-0] # pkg query -x '[%R] %o %n %v' 'gpu-firmware-amd-kmod-dcn-3-2-0' | column -t
[FreeBSD-kmods]  graphics/gpu-firmware-amd-kmod  gpu-firmware-amd-kmod-dcn-3-2-0  20230625.1403000_2
[4-0] # pkg query -x '[%R] %o %n %v' 'gpu-firmware-amd-kmod.*' | wc -l
      73
[5-0] # pkg rquery -x -r FreeBSD-kmods '[%R] %o %n %v' 'gpu-firmware-amd-kmod.*' | wc -l
      73

Using 'latest' of packages, you can see above (command line [5-0]) that there are currently 73 gpu-firmware-amd-kmod's in the FreeBSD-kmods; using pkg-query(8) as in [4-0] these should show a list of Amd firmware packages containing 1403000, including those specific ones for your RX 7900XTX.

The most recent commit for graphics/gpu-firmware-amd-kmod, Commit History :
Rich (BB code):
20230625_2
12 Jan 2024 10:13:42
[...]
graphics/gpu-firmware-amd-kmod: Add more GFX11/RDNA3 firmwares
Even though it might not cover all GPU's with the RDNA3 architecture, this does line up with AMD Radeon RX 7900TXT - specs:
Rich (BB code):
Graphics Processor

GPU Name
    Navi 31 

Codename
    Plum Bonito

GPU Variant
    Navi 31 XTX
    (215-145000146) 

Architecture
    RDNA 3.0
 
Okay. There is a lot of useful information developing here. Thank you, each, for your input.

To follow the progression of the thread...
1) xrandr returns only one screen, the default 1024x768.
2) kldstat | grep amdgpu returns no information. This makes sense as we established earlier that the -kld_list="amdgpu"- in /etc/rc.conf does not work in stock config.
3) openbox is not a candidate for having any affect on low-level system files.
4) likely course of action appears to be: "fetch the latest ports tree and built drm-kmod from source (it-people);" and; more specifically and to "verify that you have those specific 1403000 versions installed (Erichans, based on it-people's kldstat | grep amdgpu output)."

Resulting plan...
A) I will look into the FreeBSD-kmods repository to find the amd-gpu 1403000 and read the installation instructions, then attempt installation. I suspect that, since it-people built their configuration from latest ports and manually built drm-kmod, that there may be no 1403000 specific kmods in the repository. Still, I will look, just in case. If the intall does not work, then...
B) I will build, e.g., "fetch the latest ports tree and built drm-kmod from source.

I will report my results.

Thank you, to everyone who contributed to this thread. I appreciate your experience, knowledge, and assistance.

lc
 
Back
Top