[Bug ?] Radeon driver won't load with mobility HD 3450 (RV620/M82)

Hi there !

I’ve got a problem with my eeeBox B206 (Atom N270 1.6, 2Gb, mobility HD3450 RV620/M82). I post here before opening an issue on GitHub.

When I launch the live ditrib, I get a black screen, no flower.

What I did :

  • live nosplash tty retroarch=0 and switched to console
  • launch manually retroarch -v : KMS says “couldn’t find a suitable DRM device”
  • lspci -nnk shows the ATI HD3450 but no kernel module loaded (“radeon” should be loaded I suppose ?)

I tried with 2.0 and 2.1 RC4, i686 of course.

According to the arch linux wiki, this old chip should work with the open source ATI driver.

I hope I gave all needed information :slight_smile:

YosheE

Hi,

Please provide the complete log of Lakka system and graphic card logs and the output of

for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done

Strange it doesn’t find drm device…

Thank you.

Hi gouchi

Here is the complete system log :

    RetroArch [INFO] :: This is RetroArch version 1.5.0 (Git 882fe09)
    RetroArch [INFO] :: === Build =======================================
    Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3
    Built: Jul 20 2017
    RetroArch [INFO] :: Version: 1.5.0
    RetroArch [INFO] :: Git: 882fe09
    RetroArch [INFO] :: =================================================
    RetroArch [INFO] :: [Config]: Loading default config.
    RetroArch [INFO] :: [Config]: loading config from: (null).
    RetroArch [INFO] :: Looking for config in: "/storage/.config/retroarch/retroarch.cfg".
    RetroArch [INFO] :: Looking for config in: "/storage/.retroarch.cfg".
    RetroArch [WARN] :: Config: using skeleton config "/etc/retroarch.cfg" as base for a new config file.
    RetroArch [WARN] :: Config: Created new config file in: "/storage/.config/retroarch/retroarch.cfg".
    RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
    RetroArch [INFO] :: Redirecting save file to "/storage/savefiles/.srm".
    RetroArch [INFO] :: Redirecting savestate to "/storage/savestates/.state".
    RetroArch [INFO] :: Version of libretro API: 1
    RetroArch [INFO] :: Compiled against API: 1
    RetroArch [INFO] :: [Audio]: Set audio input rate to: 29970.03 Hz.
    RetroArch [INFO] :: Found shader "/tmp/shaders/slang-conversion-template.glsl"
    RetroArch [INFO] :: Found shader "/tmp/shaders/stock.glsl"
    RetroArch [INFO] :: [Video]: Video @ fullscreen
    RetroArch [INFO] :: [Video]: Starting threaded video driver ...
    RetroArch [ERROR] :: [KMS]: Couldn't find a suitable DRM device.
    RetroArch [INFO] :: [GL]: Found GL context: null
    RetroArch [INFO] :: [GL]: Detecting screen resolution 320x240.
    RetroArch [INFO] :: [GL]: Vendor: (null), Renderer: (null).
    RetroArch [INFO] :: [GL]: Version: (null).
    Segmentation fault (core dumped)

Here is the graphic card log :

03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV620/M82 [Mobility Radeon HD 3450/3470] [1002:95c4]

    Subsystem: ASUSTeK Computer Inc. RV620/M82 [Mobility Radeon HD 3450/3470] [1043:8378]
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV620 HDMI Audio [Radeon HD 3450/3470/3550/3570] [1002:aa28]

    Subsystem: ASUSTeK Computer Inc. RV620 HDMI Audio [Radeon HD 3450/3470/3550/3570] [1043:aa28]

And for the last command :

Lakka:~ # for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat
 $p; done
/sys/class/drm/*: cat: can't open '/sys/class/drm/*/status': No such file or directory
Lakka:~ # ls -l /sys/class/drm/*
lrwxrwxrwx    1 root     root             0 Sep  1 20:32 /sys/class/drm/ttm -> ../../devices/virtual/drm/ttm
-r--r--r--    1 root     root          4096 Sep  1 20:32 /sys/class/drm/version
Lakka:~ # ls -l /sys/class/drm/*/
total 0
drwxr-xr-x    2 root     root             0 Sep  1 20:38 power
lrwxrwxrwx    1 root     root             0 Sep  1 20:32 subsystem -> ../../../../class/drm
-rw-r--r--    1 root     root          4096 Sep  1 20:32 uevent

Thank you

Indeed it seems that drm device is not there.

Is it possible to boot with in the boot prompt

live drm.debug=0x1e log_buf_len=1M

then get the output of dmesg ?

Thank you.

Here are the dmesg logs regarding drm :

[    0.377479] [drm] Initialized
[    0.377535] [drm] radeon kernel modesetting enabled.
[    0.378398] [drm] initializing kernel modesetting (RV620 0x1002:0x95C4 0x1043:0x8378 0x00).
[    0.378424] [drm] register mmio base: 0xFEBF0000
[    0.378426] [drm] register mmio size: 65536
[    0.380669] ATOM BIOS: M82ME
[    0.380730] radeon 0000:03:00.0: VRAM: 256M 0x0000000000000000 - 0x000000000FFFFFFF (256M used)
[    0.380736] radeon 0000:03:00.0: GTT: 512M 0x0000000010000000 - 0x000000002FFFFFFF
[    0.380745] [drm] Detected VRAM RAM=256M, BAR=256M
[    0.380747] [drm] RAM width 64bits DDR
[    0.380901] [TTM] Zone  kernel: Available graphics memory: 435884 kiB
[    0.380904] [TTM] Zone highmem: Available graphics memory: 1029616 kiB
[    0.380906] [TTM] Initializing pool allocator
[    0.380970] [drm] radeon: 256M of VRAM memory ready
[    0.380974] [drm] radeon: 512M of GTT memory ready.
[    0.381068] [drm] Loading RV620 Microcode
[    0.381152] radeon 0000:03:00.0: Direct firmware load for radeon/R600_rlc.bin failed with error -2
[    0.381157] r600_cp: Failed to load firmware "radeon/R600_rlc.bin"
[    0.381167] [drm:r600_init] *ERROR* Failed to load firmware!
[    0.381171] radeon 0000:03:00.0: Fatal error during GPU init
[    0.381175] [drm] radeon: finishing device.
[    0.388273] [TTM] Finalizing pool allocator
[    0.388350] [TTM] Zone  kernel: Used memory at exit: 0 kiB
[    0.388360] [TTM] Zone highmem: Used memory at exit: 0 kiB
[    0.388363] [drm] radeon: ttm finalized
[    0.388999] radeon: probe of 0000:03:00.0 failed with error -2
[    0.389153] [drm] amdgpu kernel modesetting enabled.
[    0.389319] [drm:nouveau_drm_init] Loading Nouveau with parameters:
[    0.389324] [drm:nouveau_drm_init] ... tv_disable   : 0
[    0.389328] [drm:nouveau_drm_init] ... ignorelid    : 0
[    0.389331] [drm:nouveau_drm_init] ... duallink     : 1
[    0.389335] [drm:nouveau_drm_init] ... nofbaccel    : 0
[    0.389339] [drm:nouveau_drm_init] ... config       : (null)
[    0.389342] [drm:nouveau_drm_init] ... debug        : (null)
[    0.389346] [drm:nouveau_drm_init] ... noaccel      : 0
[    0.389349] [drm:nouveau_drm_init] ... modeset      : -1
[    0.389353] [drm:nouveau_drm_init] ... runpm        : -1
[    0.389356] [drm:nouveau_drm_init] ... vram_pushbuf : 0

I can provide the full dmesg output if you like, but not sure that it will be helpful :slight_smile:

Note that I just tried to boot a Mint Xfce without problem, dmesg log is the same but firmware loads correctly and drm finds outputs etc, graphical mode works well. Hope this helps

It seems we didn’t enable the firmware for i386 as it doesn’t find R600_rlc.bin.

We will have to enable it.