Please note that this blog has been moved.
Now it has its own domain: mynixworld.info 🙂
If you want to read the latest version of this article (recommended) please click here and I open the page for you.
These days I had to install a Gentoo on a Compaq 6820s laptop that comes with a ATI Mobility Radeon X1350 (chipset RV515).
Although I followed all the guidelines from the following resources:
I encountered an unexpected error while loading the radeon module that was related to the Kernel Mode Setting (when KMS was disabled no error but no KMS too).
First I configured the Linux kernel to embed the radeon driver within the kernel:
and thus the system freeze at boot time, exactly when the kernel tried to initialize the ATI GPU.
Later I changed the kernel configuration so that the “ATI Radeon” to be built as a kernel module. I have also blacklisted the radeon module to make sure it won’t get loaded, so I would load the module manually after the kernel boots successfully. So I booted the kernel with the KMS set “off” by default:
grub> kernel /KERNEL root=ROOT radeon.modeset=0
then, after everything loaded successfully I was trying to load the radeon module with the modeset option set “on”:
modprobe radeon modeset=1
when the system completely froze (no CPU activity or I/O responsiveness whatsoever).
Later, I un-blacklisted the radeon module in order to get it loaded automatically after the kernel is successfully loaded and everything loaded just fine, except the fact that I had no KMS whatsoever (of course, I booted the system with radeon.modeset=0).
What I’ve done later was really tricky and it fixed my problem. I’ve unloaded the radeon module from memory and loaded back with modeset=1:
modprobe -r radeon modprobe radeon modeset=1
If you do this while you’re on X then I’m pretty sure your screen will turn into black. What I did to avoid that was to logoff from X session, kill the SLIM login manager then to stop the XDM service. After that I unloaded/loaded back the radeon module (as shown above) and then started XDM (which in turn started automatically the login manager) so that I got an wonderful X session with a full support of framebuffer that improved both the screen resolution and the user experience.
Now the thing is: “how to automate this” so that I won’t do that every time I boot the system?
You could try to create a simple BASH script that, in principle, would do the trick shown above then would do what your /etc/inittab would normally is doing in the last step (like loading the login/window manager).
In my case I just hack the /etc/X11/startDM.sh script that would normally load the X session (whatever it is: xfce4, gnome, lxde, …,etc). So just before that script (startDM.sh) executes the default desktop environment I’ve inserted that “modprobe” thing.
Now, every time I boot the system, just when the xdm service is started, the system switchs automatically to a framebuffer-enabled graphic, resulting in a higher resolution graphic and a better user experience.