Tiny Core Linux

Tiny Core Extensions => TCE Q&A Forum => Topic started by: Santos on February 20, 2021, 10:01:15 PM

Title: Direct firmware load failed with error -2 Tc 12 x86
Post by: Santos on February 20, 2021, 10:01:15 PM
Hello

I'm trying to get the most of a Thinkpad with a ATI Mobility Radeon 7500 with 32MB (graphic card).
Code: [Select]
http
://www.thinkwiki.
org/wiki/ATI_Mobility_Radeon_7500

This is what I do before loading Xorg-7.7 and Xor-7.7-3d:
firmware-radeon.tcz
xf86-video-ati.tcz

After loading those 2 extension (with their dependencies), dmesg output this:
Code: [Select]
[drm] radeon kernel modesetting enabled.
radeon 0000:01:00.0: vgaarb: deactivate vga console
Console: switching to colour dummy device 80x25
[drm] initializing kernel modesetting (RV200 0x1002:0x4C57 0x1014:0x0530 0x00).
[drm] Forcing AGP to PCI mode
radeon 0000:01:00.0: VRAM: 128M 0x00000000E0000000 - 0x00000000E7FFFFFF (32M used)
radeon 0000:01:00.0: GTT: 512M 0x00000000C0000000 - 0x00000000DFFFFFFF
[drm] Detected VRAM RAM=128M, BAR=128M
[drm] RAM width 64bits DDR
[TTM] Zone  kernel: Available graphics memory: 254664 KiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] radeon: 32M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] radeon: power management initialized
[drm] PCI GART of 512M enabled (table at 0x0000000004B80000).
radeon 0000:01:00.0: WB disabled
radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x00000000c0000000
[drm] radeon: irq initialized.
[drm] Loading R100 Microcode
radeon 0000:01:00.0: Direct firmware load for radeon/R100_cp.bin failed with error -2
radeon 0000:01:00.0: Falling back to sysfs fallback for: radeon/R100_cp.bin
[drm] radeon: ring at 0x00000000C0001000
[drm] ring test succeeded in 1 usecs
[drm] ib test succeeded in 0 usecs
[drm] Panel ID String: 1024x768               
[drm] Panel Size 1024x768
[drm] No TV DAC info found in BIOS
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm]   VGA-1
[drm]   DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
[drm]   Encoders:
[drm]     CRT1: INTERNAL_DAC1
[drm] Connector 1:
[drm]   DVI-D-1
[drm]   HPD1
[drm]   DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
[drm]   Encoders:
[drm]     DFP1: INTERNAL_TMDS1
[drm] Connector 2:
[drm]   LVDS-1
[drm]   Encoders:
[drm]     LCD1: INTERNAL_LVDS
[drm] Connector 3:
[drm]   SVIDEO-1
[drm]   Encoders:
[drm]     TV1: INTERNAL_DAC2
[drm] fb mappable at 0xE0040000
[drm] vram apper at 0xE0000000
[drm] size 1572864
[drm] fb depth is 16
[drm]    pitch is 2048
fbcon: radeondrmfb (fb0) is primary device
Console: switching to colour frame buffer device 128x48
radeon 0000:01:00.0: [drm] fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.50.0 20080528 for 0000:01:00.0 on minor 0

Does that mean it loaded the driver?
I don't think so, since I tried Slitaz which outputs no errors and basically I can confirm it by playing a standard mp4 from Youtube (640*380) smoothly, very different from TC after loading firmware, Xorg and mplayer-cli, with it I can basically see every frame being refreshed (not a smooth play).

Besides the previous question I have a few more.

What's the proper way or process to load the extensions in order for the driver to be picked up?
I'm having issues with a different laptop as well. I did successfully loaded the driver for this other one but I power it off and now I got same error message and can't play content I were able to play without any hiccups, but that's for another post.

Does it even have support or is it too old to work?

If the driver it's already loaded what can I do to have a smooth playblack?

Any help is appreciated, thank you.
Title: Re: Direct firmware load failed with error -2 Tc 12 x86
Post by: jazzbiker on February 20, 2021, 10:25:53 PM
Hi, Santos!

Have You  seen this topic http://forum.tinycorelinux.net/index.php/topic,24695.0.html ?

I place extensions in my onboot.lst following such sequence:

1. firmware
2. graphics-KERNEL
3. the rest stuff
Title: Re: Direct firmware load failed with error -2 Tc 12 x86
Post by: Santos on February 20, 2021, 11:03:26 PM
Hi!

Yes, I forgot to mention, I'm sorry. I did check it out, but the solution: blacklisting unused modules and setting radeon.agpmode=-1 as boot parameter doesn't work for me.

For the order you mentioned, I already tried it.

Another thing I didn't mention is that the error goes away with TC 6, it does load the firmware but I have a lot of issues trying to configure Xorg that it's better to check with new versions of Tiny Core instead of trying to a fix an old one.

Regards
Title: Re: Direct firmware load failed with error -2 Tc 12 x86
Post by: curaga on February 20, 2021, 11:38:46 PM
Quote
radeon 0000:01:00.0: Direct firmware load for radeon/R100_cp.bin failed with error -2
radeon 0000:01:00.0: Falling back to sysfs fallback for: radeon/R100_cp.bin
This is totally fine. The kernel didn't find the firmware directly, and loaded it using the userspace helper.

For good video playback, you want Xorg, xf86-video-ati, and use the xv output for mplayer.
Title: Re: Direct firmware load failed with error -2 Tc 12 x86
Post by: Santos on February 26, 2021, 04:48:33 PM
Hi everyone!

Sorry for the late answer, but I was rebooting, trying stuff, dowloading, and rebooting again.

After checking documentation and trying stuff out I finally have an almost perfect solution.

This is the one liner I use for video playback (after login in as root):

Renicing it just to make sure all cpu priority goes to mplayer's process.
Code: [Select]
#nice -20 mplayer -vo xvidix -zoom -fs ./video.mp4

The reason why I have to run it with elevated permissions was due to the fact permission was denied to access the graphics card, this can be resolved by changing mplayer's SUID or executing it as root.

Another interesting bit is that -vo xv is not always the best nor the fastest solution for video playback, I tried the same line in a different computer with mixed results (didn't have support for xvidix or worse performance compared to xv video driver).

The following can be append to mplayer (according to the warning message you get whenever the computer can't properly play a video file):

Code: [Select]
-vfm ffmpeg -lavdopts threads=2:lowres=1:fast:skiploopfilter=all

Some notes about the previous line:

-It will take an impact on the quality of the video, so is better to apply it as a last option (specially skiploopfilter=all).
-the threads=CORES parameter is specifically meaningful for multi-core CPU's. (In my test computer, a single core one, does make any difference, but keep it in mind as per my experience content that was barely playable becomes super smooth).

At the beginning of the post I said an "almost perfect" solution since I'm not fully aware of all possibilities within mplayer and TC itself.

Thank you for all you support!

EDIT:
Forgot to mention, now I can play the majority of 720 (hd) videos from youtube!
And SOLVED! :)