If you don't like stories and just want the solution skip the first paragraph.
Sorry for the long title by the way, I did that for searchability.
The story so far:
After installing 11.10 on my iBookG4 basically everything execpt the backlight controls worked out of the box. I got it to work after a week of research. Currently I am running Xubuntu 11.10 on the machine, but I have no reason to believe this would not work under Ubuntu with Unity2D or Lubuntu.
I looked all over the internet for solutions and found a lot of outdated fixes including the one on the Ubuntu PPC FAQ. It seems this functionality has been coming and going with various Ubuntu PPC releases. All the solutions had one thing in common. They involved tinkering with the frame buffer in one way or another.
It also became clear that the systems disability to control the backlight was what was likely keeping it from suspending. Since trying to suspend the screen turned of and got locked, but immediately turned on again instead of also switching off the backlight.
The only two reports I found who specifically said they got this particular function to work however were the ones who also compiled a custom kernel.
I had never done this before but said to myself "How hard can it be." and tried it. The first Kernel I made did nothing but speed up my boot time. The second one solved the problem.
It all came down to one kernel option not being set in the 3.0.0 PPC kernel which allows the radeon card to act as a framebuffer device. So without this there just is now framebuffering going on at all.
-ATI Radeon display support (FB_RADEON)
-DDC/I2C for ATI Radeon support (FB_RADEON_I2C)
-Support for backlight control (FB_RADEON_BACKLIGHT)
The result is, that not only the backlight controls are working, but the system also sleeps/suspends properly. Also fps seems higher on the desktop and window tearing is much reduced.
I did not do any xorg.conf tinkering with this yet, but I think there is still some room for improvement here.
The solution:
Compile a new kernel as per the Alternate Build Method: The Old-Fashioned Debian Way instructions here and make sure to use the make localmodconfig option.
After this do make xconfig and make sure the following options are being included:
I have put some options in italics, with those I am unsure if they truly are needed for the iBookG4.
Theese options are needed by pbbuttons as specified in the pbbuttons manual:
-Macintosh Device Driver
-Backlight control for LCD screens (PMAC_BACKLIGHT)
-Provide legacy ioctl's on /dev/pmu for the backlight (PMAC_BACKLIGHT_LEGACY)
Here I had to manually include FB_RADEON option and its subsets, the others had already been enabled. I also took out the FB support for nvidia cards since it would not be needed on this particular machine.
-Graphics Support
-Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) (DRM)
-ATI Radeon (DRM_RADEON)
-Support for frame buffer devices (FB)
-Open Firmware frame buffer device support (FB_OF)
-Apple "control" display support (FB_CONTROL)
-Apple "platinum" display support (FB_PLATINUM)
-Apple "valkyrie" display support (FB_VALKYRIE)
-Chips 65550 display support (FB_CT65550)
-Asiliant (Chips) 69000 display support (FB_ASILIANT)
-ATI Radeon display support (FB_RADEON)
-DDC/I2C for ATI Radeon support (FB_RADEON_I2C)
-Support for backlight control (FB_RADEON_BACKLIGHT)
I have attached my .config file for the lazy, but must warn you that this is a work in progress and might even break functionality that I did not yet notice to be broken on my own system
Bookmarks