Bug#557439: modules in /etc/initramfs-tools/modules cannot load firmware
i got the radeon firmware to load by editing /usr/share/initramfs-tools/init and
moving the lines that run the init-premount scripts from just after to
just before the lines that load the modules. see attached patch.
it's probably not a good generic solution, but as a quick hack to solve
this particular problem it works and doesn't seem to have any negative
side-effects (although it might on machines with unusual hardware with
fussier load-order requirements...i.e. "it works for me, YMMV"). so i'm
posting it here to document a temporary workaround to help anyone else
who just wants it working ASAP until a real fix is released.
after running 'update-initramfs -u -k 2.6.33' and rebooting, it changed
the kernel boot from this:
[ 0.732433] [drm] Loading RV730 Microcode
[ 0.732463] platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
[ 60.732037] r600_cp: Failed to load firmware "radeon/RV730_pfp.bin"
[ 60.732066] [drm:rv770_startup] *ERROR* Failed to load firmware!
[ 60.732094] radeon 0000:02:00.0: disabling GPU acceleration
[ 60.747032] radeon 0000:02:00.0: ffff88007ce80800 unpin not necessary
[ 60.747061] radeon 0000:02:00.0: ffff88007ce80800 unpin not necessary
to this:
[ 2.850592] [drm] Loading RV730 Microcode
[ 2.850621] platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
[ 2.854192] platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
[ 2.857795] platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
[ 2.909077] [drm] ring test succeeded in 1 usecs
[ 2.909222] [drm] radeon: ib pool ready.
[ 2.909323] [drm] ib test succeeded in 0 usecs
craig
--
craig sanders <cas@taz.net.au>
--- init.orig 2009-04-03 23:30:54.000000000 +1100
+++ init 2010-02-28 00:24:48.643737061 +1100
@@ -180,16 +180,16 @@
# Don't do log messages here to avoid confusing usplash
run_scripts /scripts/init-top
-maybe_break modules
-log_begin_msg "Loading essential drivers"
-load_modules
-log_end_msg
-
maybe_break premount
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/init-premount"
run_scripts /scripts/init-premount
[ "$quiet" != "y" ] && log_end_msg
+maybe_break modules
+log_begin_msg "Loading essential drivers"
+load_modules
+log_end_msg
+
maybe_break mount
log_begin_msg "Mounting root file system"
. /scripts/${BOOT}
Reply to: