sampsonf
(Sampson Fung)
May 20, 2021, 3:54am
1
Continuing the discussion from F34 hanging after boot :
From the bugzilla entry, it is suggested that the problem might be on the radeon driver.
How can I find and load different version of the radeon driver to see if it helps?
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kaveri [Radeon R7 Graphics] (pro
g-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd Device d000
Flags: bus master, fast devsel, latency 0, IRQ 46, IOMMU group 0
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at d0000000 (64-bit, prefetchable) [size=8M]
I/O ports at f000 [size=256]
Memory at feb00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: radeon
Kernel modules: radeon, amdgpu
glb
(Gregory Lee Bartholomew)
May 20, 2021, 4:55am
2
I just searched AMD’s website and found this:
Unfortunately, it says it only works with Linux kernels up to version 3.19
I think your card is one of the “Southern Islands” series:
Codenamed Pitcairn, the Radeon HD 7800 series was formally unveiled on March 5, 2012, with retail availability from March 19, 2012. Products include the Radeon HD 7870 and Radeon HD 7850. The Radeon HD 7870 features 1280 usable stream cores, whereas the Radeon HD 7850 has 1024 usable stream cores. Both cards are equipped with 2GB GDDR5 memory (some 7850s offer 1GB) and manufactured on TSMC's 28 nm process.
It looks like there has been recent support added for them in the Linux open source amdgpu driver:
Arch’s Wiki has some notes on how to enable the experimental support for southern islands cards:
ArchWiki - AMDGPU
You might try passing si_support=1
to the amdgpu
driver. I think you would need to create a .conf
file under /etc/modprobe.d
containing the following line:
options amdgpu si_support=1
2 Likes
sampsonf
(Sampson Fung)
May 20, 2021, 5:38am
3
Thanks for looking into my issue!
Yes, I am trying to use amdgpu instead of radeon to see if it makes a difference.
I created /etc/modprobe.d/amdgpu.conf
options amdgpu si_support=1
But lspci -v still shows radeon is still in use.
According to ArchWiki:
Specify the correct module order
Even when AMDGPU support for SI/CIK has been enabled by the kernel, the radeon driver may be loaded before the amdgpu
driver.
Make sure amdgpu
has been set as first module in the Mkinitcpio#MODULES array, e.g. MODULES=(amdgpu radeon)
.
Fedora uses dracut instead of mkinitcpio. I have no idea how this module ordering can be specified in dracut.
2 Likes
glb
(Gregory Lee Bartholomew)
May 20, 2021, 2:53pm
4
The only thing I’m aware of is the rd.driver.pre=
kernel parameter (see man dracut.cmdline
). I think you’d have to be sure the amdgpu kernel module (and your custom .conf
file) is included in dracut.
Also, it looks like the radeon
module also takes the si_support=1
parameter. If the system requires both modules, you may need to specify that option for both of them.
1 Like
sampsonf
(Sampson Fung)
May 20, 2021, 4:57pm
5
I tried:
rd-driver.pre=amdgpu rd.driver.blacklist=radeon boot parameters
and created /etc/modprobe.d/amdgpu.conf
options amdgpu si_support=1
options radeon si_support=1
After reboot, lspci -v still reporting:
Kernel driver in use: radeon
And gdm still hanging on start.
glb
(Gregory Lee Bartholomew)
May 20, 2021, 6:04pm
6
Did you regenerate the initramfs? I think for rd.driver.pre
to work, the module(s) must be in the initramfs. Also, it looks like you might have misspelled rd.driver.pre
.
sampsonf
(Sampson Fung)
May 20, 2021, 6:22pm
7
I successfully load the amdgpu driver with
$ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.11.21-300.fc34.x86_64 root=UUID=bda68cec-a76d-4e6a-be52-fefcff9f76a6 ro rootflags=subvol=root amdgpu.dc=0 radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1
So it turns out A10-K7850K is using Sea Islands graphics instead of South Islands graphics.
Now my lspci -v reads:
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kaveri [Radeon R7 Graphics] (prog-if 00 [VGA cont
roller])
Subsystem: Gigabyte Technology Co., Ltd Device d000
Flags: bus master, fast devsel, latency 0, IRQ 48, IOMMU group 0
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at d0000000 (64-bit, prefetchable) [size=8M]
I/O ports at f000 [size=256]
Memory at feb00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [270] Secondary PCI Express
Capabilities: [2b0] Address Translation Service (ATS)
Capabilities: [2c0] Page Request Interface (PRI)
Capabilities: [2d0] Process Address Space ID (PASID)
Kernel driver in use: amdgpu
Kernel modules: radeon, amdgpu
And GDM started OK.
Thank you very much for your continued support!
2 Likes
lff
(*)
May 25, 2021, 7:46pm
8
very cool ! I have a Pitcairn series Radeon as well and a Kaveri CPU !
1 Like
How can I reproduce this on my system ?? I’m using an AMD A6-7310 APU on my laptop.
sampsonf
(Sampson Fung)
May 26, 2021, 2:44pm
10
sampsonf:
I successfully load the amdgpu driver with
$ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.11.21-300.fc34.x86_64 root=UUID=bda68cec-a76d-4e6a-be52-fefcff9f76a6 ro rootflags=subvol=root amdgpu.dc=0 radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1
So it turns out A10-K7850K is using Sea Islands graphics instead of South Islands graphics.
You need to find out if yoour chip is Sea Islands of Southern Islands. And add the kernel boot parameter accordingly.
What command should I use to know that ??
sampsonf
(Sampson Fung)
May 26, 2021, 2:48pm
12
The most secure way to find out is by testing the two set of parameters - and see which one worked.
I determine it by looking in these charts, especially sections 5-10.
https://www.x.org/wiki/RadeonFeature/
3 Likes