I'll preface this by saying I've been searching high and low for a solution, and the closest thing I found was this thread over at Ask Different.

Background: I have an ailing MacBook Pro 1,1 that I am trying to breathe a second life into using Linux to do some C++ development work. Eclipse is my IDE of choice (mainly so I can be consistent with other computers I have around the house), so I kind of need X/a-GUI-of-some-sort. I've completed a plain Jane install of Debian (Jessie) using the i686 build, and the system is pretty damn solid. However, the system freezes with this error message on boot:

fb: switching to radeondrmfb from EFI VGA

The fix found at Think Different was to add nomodeset as a boot option. This gets me into the system, and it is passably usable, but can be better, I'm sure. Some information on the setup:

  • Debian (Jessie) build
  • I have tried recompiling a 3.x kernel to see if it was something in the newer 4.x kernel, but the problem persists
  • Using the latest rEFInd to boot into the system
  • lspci -nnk reports VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV530/M56-P [Mobility Radeon X1600] [1002:71c5] for my graphics card

The issue sounds similar to this one, which also does not have an answer. It has been almost a full decade (if not more) since I've played with Linux (think 2.2.x series kernels when PowerPC was cutting edge), so some of this stuff is very very new to me. So some high level questions.

  • What the heck is nomodeset, and what does it do? The closest answer I've found is that nomodeset tells the (newer) Linux kernels not to do any of the heavy lifting with the video card -- presumably this is because video drivers were moved into the kernel? I'm not sure how accurate that is.
  • Are there other kernel options I may be able to try? I could not find an exhaustive list of options - some are specific to distros, some to boot loaders, etc.
  • If I can boot into the system using nomodeset as a kernel prompt, is there a way to load the Radeon driver after the fact?
  • Barring that, can I not configure X in some way to use hardware video rendering vs. software video rendering? I envision booting into text-only mode, and then updating some config option in X, then launching X.

2 Answers 2


So, modesetting is a system wherein the kernel changes the graphic modes, rather than your X server. This was the first step necessary for the X server (or other display system) to not necessarily have to run as root, and the drivers for most modern hardware uses modesetting to do the graphic setting changes.

The problem though is that in order for modesetting to work, the hardware needs to have everything it requires for it to function properly. In the case of certain AMD GPUs, that means the kernel needs to upload the firmware to the GPU; otherwise the screen cannot be updated anymore. Note that this only causes the screen to freeze; it's not a crash. Thus, if your system is a server, you can ignore this; but for desktop machines or laptops, it's obviously not great.

Since the firmware in question is not free software as defined by Debian, it cannot be packaged into Debian's "main" repositories. However, that doesn't mean it's not packaged at all; it's just packaged in the non-free repository, instead. This also means it's not available from the installer.

To fix this issue, all you need to do is to:

  • boot with nomodeset (or ssh into the machine)
  • enable the non-free repository, by editing /etc/apt/sources.list and adding contrib non-free after the main that's on some of the lines there already
  • run apt-get update
  • install the firmware-amd-graphics package, which will now be pulled from non-free.
  • reboot, this time without the nomodeset, to activate the firmware.

EDIT: As of Debian 12, released on the 10th of June 2023, all non-free firmware has been moved from the "non-free" section into the "non-free firmware" section, and the contents of that section is now shipped with the official installer images. So, if you installed Debian 12 (or later, as applicable), this should no longer be a problem as the installer should have made the required firmware available for you already.

Should it not be installed anyway, then the above instructions are still valid, with the sole exception that you should enable the non-free-firmware section, instead of the non-free section.

For older versions of Debian, the above instructions are still valid.


I think I know this: The main problem is that you don't have the right firmware for radeon. To solve this, you need to reconfig && rebuild the kernel.

Option A:load radeon as module 1.check if debian has install-firmware package.if so, install it. 2.rebuild the kernel, during the menuconfig, (device drivers),dri [yes], radeon [Module]

Option B: 1.build radeon firmware into the kernel.

More detailed info,

1.check gentoo wiki: https://wiki.gentoo.org/wiki/Radeon check blfs wiki: 2.http://www.linuxfromscratch.org/blfs/view/systemd/x/x7driver.html#xorg-ati-driver

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .