X error screens not found despite configuring X and having correct drivers freeBSD 14 - RX480 + Ryzen 2200

Hey everyone, I scoured what feels like a million forum posts and followed the handbook to a T but I'm still running into an error. I was hoping someone here could help me out. I'm guessing it has something to do with the integrated graphics from my CPU tripping up X? I'm not sure, hence me asking for help.

I was following the instructions for configuring X for AMDGPU as well as installing XFCE as my DE. I have attached my X config files as well as the log I get when I try to start X using startx as well as with startxfce4

Anyone got any ideas?

EDIT: Also I apologize if this isn't posted in the correct section
 

Attachments

  • rc.conf
    240 bytes · Views: 52
  • 20-monitor.conf
    88 bytes · Views: 40
  • 10-screen.conf
    306 bytes · Views: 46
  • 30-amdgpu.conf
    260 bytes · Views: 43
  • Xorg.0.log.txt
    3.9 KB · Views: 43
From your info I'm thinking this a laptop. Are you describing the situation where you only want to start/display X on one screen, your laptop screen? No attachted external monitor(s)?
 
From your info I'm thinking this a laptop. Are you describing the situation where you only want to start/display X on one screen, your laptop screen? No attachted external monitor(s)?
Thank you so much for the reply, this is a desktop system! I just want X to work at all, it just gives the "no screens" error and I can't tell why or how to have it not do that, my display is attached to my GPU. Do my files look okay?
 
Right, AMD Radeon RX 480 hardly fits into a laptop ;)

But I'm deducing from your X configs only one monitor; correct?

I haven't had this kind of set up at hand, but I'll try to give some suggestions.

You are using the Xorg amdgpu driver from x11-drivers/xf86-video-amdgpu, that probably isn't necessary. While amdgpu is not a legacy driver, the Xorg modesetting driver (comes with X by default) is usually the default choice; it may be the right choice here. You have to play with the Xorg configs settings. One aspect in those configs settings is that unique Identifier-s are used to link several sections. I find Example 6 for multiple video cards badly choosen in the Handbook:
Code:
Section "Device"
    Identifier "Card0"
    Driver     "intel"
    BusID     "pci0:0:2:0"
EndSection

Section "Device"
    Identifier "Card0"
    Driver     "nvidia"
    BusID     "pci0:0:2:1"
EndSection
Better:
Rich (BB code):
Section "Device"
    Identifier "Card0"
    Driver     "intel"
    BusID     "PCI:0:2:0"
EndSection

Section "Device"
    Identifier "Card1"
    Driver     "nvidia"
    BusID     "PCI:0:2:1"
EndSection
Card0 and Card1 are identifiers and as such should be unique. This holds as well for the Identifier entry used in the Screen Section, xorg.conf(5):
Rich (BB code):
SCREEN SECTION
[...]
       The  Identifier	entry  specifies the unique name for this screen.
The BusID designation I took also from xorg.conf(5) (I've seen reported (edit: here) that sometimes pci0: ... does not work).

Your X configs, all in one:
Rich (BB code):
>>> 30-amdgpu.conf
Section "Device"
    Identifier "AMDGPU" 
    Driver "amdgpu"
    Option "DRI" "3"
    Option "TearFree" "on"
    BusID "pci0:16:0:0"        <-- could be ok but I'd use PCI:16:0:0 
EndSection

Section "Device"
    Identifier "AMDAPU"
    Driver "amdgpu"
    Option "DRI" "3"
    Option "TearFree" "on"
    BusID "pci0:56:0:0"       <-- could be ok but I'd use PCI:56:0:0 
EndSection

>>> 10-screen.conf
Section "Screen"
    Identifier "Screen0"       <-- identifier not unique
    Device "AMDGPU"
    Monitor "Monitor0"      <-- tries to bind its output to monitor0
    DefaultDepth 24
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen0"      <-- identifier not unique
    Device "AMDAPU"
    Monitor "Monitor0"      <-- tries to bind its output to monitor0 as well!
    DefaultDepth 24
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

>>> 20-monitor.conf
Section "Monitor"
    Identifier "Monitor0"
    Option "PreferredMode" "1920x1080"
EndSection

I'd try the config settings first with one file only (say my-amd.conf) for testing (later you can split things up again to your hearts desire); remove other .conf files in that directory.
  • Instead of using Driver "amdgpu", try Driver "modesetting" as well.
  • I'm not entirely sure, but when only one monitor is attached, you might not need to specify an unused Section "Device" where the graphics belonging to that BusID does not have a monitor attached.
  • You probably won't have to specify a Section "Monitor" with only one monitor. See Monitor Section of xorg.conf(5): "... but a default configuration will be created when one isn't specified." In that case the line Monitor "Monitor0" in Section "Screen" is probably not needed as well.
I suggest you try:
Rich (BB code):
Section "Device"
	Identifier "AMDGPU"
	Driver     "amdgpu"
	BusID      "PCI:16:0:0"
EndSection

Section "Device"
	Identifier "AMDAPU"
	Driver     "amdgpu"
	BusID      "PCI:56:0:0"
EndSection

Section "Screen"
	Identifier  "Screen0"
	Device      "AMDGPU"
#	Monitor     "Monitor0" 
EndSection

# You'll have to choose which screen to send to Monitor0, depending on where your monitor is attached:
# discrete graphics card or internal graphics ("PCI:16:0:0" versus "PCI:56:0:0")  
#Section "Screen"
#	Identifier  "Screen1"
#	Device      "AMDAPU"
#	Monitor     "Monitor0"
#EndSection
I've stripped a bit of extra options, add again if necessary or desired.

When replying, please post your my-amd.conf and the accompanying Xorg log together, as before.

And, last but not least, welcome to the forum.
 
Last edited:
On your 30-amdgpu.conf

Try "modesetting" rather than "amdgpu" in your driver section.

Edit: looks like that was already suggested. On my RX 560 DE I had to make that change for X to work. I think. Can't be for sure though. 😄
 
You may want to try

Remove the files 20-monitor.conf 10-screen.conf 30-amdgpu.conf
Just to backup them copy them somewhere else but delete them in the folder they are.
Leave rc.conf as it is.
Make sure your user is member of the video group

Reboot
 
Right, AMD Radeon RX 480 hardly fits into a laptop ;)

But I'm deducing from your X configs only one monitor; correct?

I haven't had this kind of set up at hand, but I'll try to give some suggestions.

You are using the Xorg amdgpu driver from x11-drivers/xf86-video-amdgpu, that probably isn't necessary. While amdgpu is not a legacy driver, the Xorg modesetting driver (comes with X by default) is usually the default choice; it may be the right choice here. You have to play with the Xorg configs settings. One aspect in those configs settings is that unique Identifier-s are used to link several sections. I find Example 6 for multiple video cards badly choosen in the Handbook:
Code:
Section "Device"
    Identifier "Card0"
    Driver     "intel"
    BusID     "pci0:0:2:0"
EndSection

Section "Device"
    Identifier "Card0"
    Driver     "nvidia"
    BusID     "pci0:0:2:1"
EndSection
Better:
Rich (BB code):
Section "Device"
    Identifier "Card0"
    Driver     "intel"
    BusID     "PCI:0:2:0"
EndSection

Section "Device"
    Identifier "Card1"
    Driver     "nvidia"
    BusID     "PCI:0:2:1"
EndSection
Card0 and Card1 are identifiers and as such should be unique. This holds as well for the Identifier entry used in the Screen Section, xorg.conf(5):
Rich (BB code):
SCREEN SECTION
[...]
       The  Identifier    entry  specifies the unique name for this screen.
The BusID designation I took also from xorg.conf(5) (I've seen reported that sometimes pci0: ... does not work).

Your X configs, all in one:
Rich (BB code):
>>> 30-amdgpu.conf
Section "Device"
    Identifier "AMDGPU"
    Driver "amdgpu"
    Option "DRI" "3"
    Option "TearFree" "on"
    BusID "pci0:16:0:0"        <-- could be ok but I'd use PCI:16:0:0 
EndSection

Section "Device"
    Identifier "AMDAPU"
    Driver "amdgpu"
    Option "DRI" "3"
    Option "TearFree" "on"
    BusID "pci0:56:0:0"       <-- could be ok but I'd use PCI:56:0:0 
EndSection

>>> 10-screen.conf
Section "Screen"
    Identifier "Screen0"       <-- identifier not unique
    Device "AMDGPU"
    Monitor "Monitor0"      <-- tries to bind its output to monitor0
    DefaultDepth 24
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen0"      <-- identifier not unique
    Device "AMDAPU"
    Monitor "Monitor0"      <-- tries to bind its output to monitor0 as well!
    DefaultDepth 24
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

>>> 20-monitor.conf
Section "Monitor"
    Identifier "Monitor0"
    Option "PreferredMode" "1920x1080"
EndSection

I'd try the config settings first with one file only (say my-amd.conf) for testing (later you can split things up again to your hearts desire); remove other .conf files in that directory.
  • Instead of using Driver "amdgpu", try Driver "modesetting" as well.
  • I'm not entirely sure, but when only one monitor is attached, you might not need to specify an unused Section "Device" where the graphics belonging to that BusID does not have a monitor attached.
  • You probably won't have to specify a Section "Monitor" with only one monitor. See Monitor Section of xorg.conf(5): "... but a default configuration will be created when one isn't specified." In that case the line Monitor "Monitor0" in Section "Screen" is probably not needed as well.
I suggest you try:
Rich (BB code):
Section "Device"
    Identifier "AMDGPU"
    Driver     "amdgpu"
    BusID      "PCI:16:0:0"
EndSection

Section "Device"
    Identifier "AMDAPU"
    Driver     "amdgpu"
    BusID      "PCI:56:0:0"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "AMDGPU"
#    Monitor     "Monitor0"
EndSection

# You'll have to choose which screen to send to Monitor0, depending on where your monitor is attached:
# discrete graphics card or internal graphics ("PCI:16:0:0" versus "PCI:56:0:0")
#Section "Screen"
#    Identifier  "Screen1"
#    Device      "AMDAPU"
#    Monitor     "Monitor0"
#EndSection
I've stripped a bit of extra options, add again if necessary or desired.

When replying, please post your my-amd.conf and the accompanying Xorg log together, as before.

And, last but not least, welcome to the forum.
Thank you for the very warm welcome, I really appreciate it a ton! This unfortunately did not work, not with amdgpu nor with modesetting. As I was presented with this error attached in the image, this would send my PC into a reboot loop. I was able to get out of it semi-unreliably by hitting ctrl+C at a specific point during the boot. I removed the config files and now I can at least boot again.

That being said I do really value the time you took out to teach me about X and the proper way of formatting these files. Do you reckon my GPU may just be broken?

On your 30-amdgpu.conf

Try "modesetting" rather than "amdgpu" in your driver section.

Edit: looks like that was already suggested. On my RX 560 DE I had to make that change for X to work. I think. Can't be for sure though. 😄

This had the same effect as above, sadly.

You may want to try

Remove the files 20-monitor.conf 10-screen.conf 30-amdgpu.conf
Just to backup them copy them somewhere else but delete them in the folder they are.
Leave rc.conf as it is.
Make sure your user is member of the video group

Reboot

This just lets me boot while it fails to initialize X, no boot loop tho.

I appreciate everyones help and answers so much, thank you a ton!
Does my desktop FreeBSD journey end here? Or is there anything else I can try?
 

Attachments

  • IMG_0832.jpg
    IMG_0832.jpg
    1.7 MB · Views: 45
[...] Do you reckon my GPU may just be broken?
[...] Does my desktop FreeBSD journey end here? Or is there anything else I can try?
That seems a bit premature. As far as I can see, the GPU of your ryzen and your discrete RX480 are supported by FreeBSD.

Looking at the screenshot you seem to be using a display manager (lightdm, if I'm correct); deactivate that in rc.conf while testing; you will now boot into a console prompt; for X use startx seperately.

Use freebsd-update(8) to check that your on the latest patch of 14.0-RELEASE. Verify that you are using graphics/drm-510-kmod (use for example pkg info | grep drm-5) as is reported in this thread it states that currently 14.0-RELEASE uses the "old" drm-510-kmod instead of drm-515-kmod, you may have the latter, if so get "510". You probably installed the meta port graphics/drm-kmod: IF that pulled in "515" delete the meta port and try reinstalling it.

If you can boot ok, with kld_list="amdgpu" in rc.conf, then start again with trying to get X working with your two "graphics cards". Start with a .conf for X that works, at least that starts X succesfullywithout panicking, start with your original settings if necessary (all your .conf files in one .conf file are easier to paste here). I do suggest though that you adjust the Identifiers and BusID as mentioned. I'm afraid I don't have any experience with "panic"s and I cannot see a lot from the screenshot. Try consulting the FreeBSD Handbook for that first; after that come back with appropriate logging: others may be able to help.

IF you want to have an easy first setup with only kld_list="amdgpu" and X without (almost certain) any configuration in .conf files for X, then temporarily physically remove your RX480 and work with only with your CPU/GPU. Your ryzen cpu alone should also give you access to fully accelerated X.

___
P.S. alternatively, you could also consider installing 13.2-RELEASE; that works with graphics/drm-510-kmod as well and should support your graphics hardware just as well.
 
That seems a bit premature. As far as I can see, the GPU of your ryzen and your discrete RX480 are supported by FreeBSD.

Looking at the screenshot you seem to be using a display manager (lightdm, if I'm correct); deactivate that in rc.conf while testing; you will now boot into a console prompt; for X use startx seperately.

Use freebsd-update(8) to check that your on the latest patch of 14.0-RELEASE. Verify that you are using graphics/drm-510-kmod (use for example pkg info | grep drm-5) as is reported in this thread it states that currently 14.0-RELEASE uses the "old" drm-510-kmod instead of drm-515-kmod, you may have the latter, if so get "510". You probably installed the meta port graphics/drm-kmod: IF that pulled in "515" delete the meta port and try reinstalling it.

If you can boot ok, with kld_list="amdgpu" in rc.conf, then start again with trying to get X working with your two "graphics cards". Start with a .conf for X that works, at least that starts X succesfullywithout panicking, start with your original settings if necessary (all your .conf files in one .conf file are easier to paste here). I do suggest though that you adjust the Identifiers and BusID as mentioned. I'm afraid I don't have any experience with "panic"s and I cannot see a lot from the screenshot. Try consulting the FreeBSD Handbook for that first; after that come back with appropriate logging: others may be able to help.

IF you want to have an easy first setup with only kld_list="amdgpu" and X without (almost certain) any configuration in .conf files for X, then temporarily physically remove your RX480 and work with only with your CPU/GPU. Your ryzen cpu alone should also give you access to fully accelerated X.

___
P.S. alternatively, you could also consider installing 13.2-RELEASE; that works with graphics/drm-510-kmod as well and should support your graphics hardware just as well.
Hi again, while all of these options (to my seemingly endless frustration) had failed, I managed to get X to work in the end. Thank you so much for helping me along the way, I am forever grateful!

The issue was in my motherboard not reading the devices correctly, this explains the abnormally high BusID's (when compared to what I've seen in other people's configs).
For anyone running into this same issue here is how I fixed it:

1. Update the BIOS of my motherboard (I doubt this had any effect but it also did let me use UEFI setup on this new BIOS version)
2. Fresh install as per the handbook
3. Specify the device WITH BusID and Screen in my X config file
4. Install the xf86-video-amdgpu package

I can now use the startx command without a hitch, I still need to get an actual DE on there but it looks like the headaches are over!

Thanks again to everyone for all the help and suggestions!
 
Back
Top