As it has been well documented if you are using a radeon video card while running Linux on your PowerPC then you are in for a few hurdles. Things now are a lot more complicated with the changes from Wheezy to Jessie. In the past you really did not need KMS or accelerated hardware graphics to have a good, working, stable machine. Now with Jessie you at the least need KMS enabled if you want to have a usable desktop. If you are running a G4 following the boot parameters I laid out previously should get you going. However if you running a G3, Dan has a great walk through over here. Now that you have KMS enabled the next question is do you want accelerated graphics. It may not be important to most but there are some open source games in repositories that you can still play as long as you have 3D graphics enabled. You could set your default depth to 16 in xorg.conf, or you can install an already patched mesa package, or you could be more adventurous and try to patch the source and recompile yourself. I chose to patch and recompile the source. I wanted to see if I could do it and also I did not want to wait on others to produce a new patch version every time there is a new version on mesa. There are no plans to produce a final fix for this on PowerPC anytime soon. The current patch available is not suitable for final inclusion into upstream but it does get 3D working. So here is what you do.
First there are two resources you should read closely to understand patching and compiling deb build in Debian. The first is a great walk though on building packages which can be found in the Debian Forums. The second is a tutorial on apply patches in Linux, which can be found here. The next thing to obtain the patch files. These files can be found here. Jessie uses mesa version 10.3.2, which requires an additional patch to prevent the build from crashing during compile time. Now you will need to install the following packages that will allow you to compile into .deb packages:
sudo apt-get install build-essential fakeroot devscripts
The next step is to install the dependencies needed to build mesa and the source code of mesa itself. This is done by running the following commands (note from the install of the build dependencies till the time the .deb file are to be installed all the commands need to be done as regular user and not root):
sudo apt-get build-dep mesa
apt-get source mesa
apt-get source mesa
Now to proceed to applying the patches. The patch file 08_packed_RGB_formats.diff patches the following, dri_drawable.c and dri2.c. You will need to be in the directory where the files to be patch are located. See below:
cd mesa-10.4.2/src/gallium/state_trackers/dri/
patch -p6 --dry-run < ~/Public/08_packed_RGB_formats.diff
checking file dri_drawable.c
checking file dri2.c
Hunk #1 succeeded at 163 (offset 34 lines).
Hunk #2 succeeded at 289 (offset -114 lines).
Hunk #3 succeeded at 699 (offset 150 lines).
Hunk #4 succeeded at 820 (offset 150 lines).
patch -p6 < ~/Public/08_packed_RGB_formats.diff
patching file dri_drawable.c
patching file dri2.c
Hunk #1 succeeded at 163 (offset 34 lines).
Hunk #2 succeeded at 289 (offset -114 lines).
Hunk #3 succeeded at 699 (offset 150 lines).
Hunk #4 succeeded at 820 (offset 150 lines).
patch -p6 --dry-run < ~/Public/08_packed_RGB_formats.diff
checking file dri_drawable.c
checking file dri2.c
Hunk #1 succeeded at 163 (offset 34 lines).
Hunk #2 succeeded at 289 (offset -114 lines).
Hunk #3 succeeded at 699 (offset 150 lines).
Hunk #4 succeeded at 820 (offset 150 lines).
patch -p6 < ~/Public/08_packed_RGB_formats.diff
patching file dri_drawable.c
patching file dri2.c
Hunk #1 succeeded at 163 (offset 34 lines).
Hunk #2 succeeded at 289 (offset -114 lines).
Hunk #3 succeeded at 699 (offset 150 lines).
Hunk #4 succeeded at 820 (offset 150 lines).
The first time I ran the patch command I used the --dry-run option. This verifies the patch is good before actually applying it. This is a good habit to get into since messing up patch means deleting the source code and starting over. If you do not get the output shown above and instead are asked for the location of the file needing then patch, then this usually means you have the incorrect -p option. Please read the tutorial linked about for more detail on how to properly use it. The next patch file 09_r300g_big_endian_fixes.diff patches the following, r300_blit.c, r300_texture,c, r300_texture.h, r300_transfer.c, r300_context.h, r300_state.c, r300_state_dervied.c. This is how I applied this patch:
patch -p5 --dry-run < ~/Public/09_r300g_big_endian_fixes.diff
checking file r300_blit.c
checking file r300_context.h
checking file r300_state.c
Hunk #4 succeeded at 1659 (offset -7 lines).
Hunk #5 succeeded at 1675 (offset -7 lines).
checking file r300_state_derived.c
checking file r300_texture.c
checking file r300_texture.h
checking file r300_transfer.c
patch -p5 < ~/Public/09_r300g_big_endian_fixes.diff
patching file r300_blit.c
patching file r300_context.h
patching file r300_state.c
Hunk #4 succeeded at 1659 (offset -7 lines).
Hunk #5 succeeded at 1675 (offset -7 lines).
patching file r300_state_derived.c
patching file r300_texture.c
patching file r300_texture.h
patching file r300_transfer.c
checking file r300_blit.c
checking file r300_context.h
checking file r300_state.c
Hunk #4 succeeded at 1659 (offset -7 lines).
Hunk #5 succeeded at 1675 (offset -7 lines).
checking file r300_state_derived.c
checking file r300_texture.c
checking file r300_texture.h
checking file r300_transfer.c
patch -p5 < ~/Public/09_r300g_big_endian_fixes.diff
patching file r300_blit.c
patching file r300_context.h
patching file r300_state.c
Hunk #4 succeeded at 1659 (offset -7 lines).
Hunk #5 succeeded at 1675 (offset -7 lines).
patching file r300_state_derived.c
patching file r300_texture.c
patching file r300_texture.h
patching file r300_transfer.c
If you are running Jessie then you are using mesa 10.3.2 with requires an additional patch to keep the compiler from crashing during build. Below are the commands:
cd mesa-10.3.2/src/mesa/main
patch -p4 --dry-run < ~/Public/dbc2d81d2ba12354876eb67c79e8a71e57e97f3c..cfeb394224f2daeb2139cf4ec489a4dd8297a44d.patch
patch -p4 < ~/Public/dbc2d81d2ba12354876eb67c79e8a71e57e97f3c..cfeb394224f2daeb2139cf4ec489a4dd8297a44d.patch
patch -p4 --dry-run < ~/Public/dbc2d81d2ba12354876eb67c79e8a71e57e97f3c..cfeb394224f2daeb2139cf4ec489a4dd8297a44d.patch
patch -p4 < ~/Public/dbc2d81d2ba12354876eb67c79e8a71e57e97f3c..cfeb394224f2daeb2139cf4ec489a4dd8297a44d.patch
Now that the patches are applied the next was to change the version number of mesa to preserve the upgrade path. Since the current version of mesa for Stretch is 10.4.2-2, this how I changed it:
debchange -b -v 10.4.2-2a~patch1
The takes you to the changelog in a nano session. There edit the log if you want then save and exit. Now you are ready to compile your .deb packages! Just run the following:
dpkg-buildpackage -rfakeroot -us -uc
This will take a few hours to complete. So go have a drink and watch a movie while the packages are building. Then when it is completed you will see in the directory above all the .deb files. The build make the install, dev, and debug packages. I normal move them to a separate directory then segregate them into separate folders. So I then just install the packages like this:
sudo dpkg -i *.deb
Finally reboot and test! You should run the command LIBGL_DEBUG=verbose glxinfo |grep render and see this output "OpenGL renderer string: Gallium 0.4 on ATI RV350". If you do then congrats you just successfully installed a patch!
UPDATE I: It looks like starting with Mesa 10.5.5 the patches above are starting to fail. I am seeing this on Stretch. This should be expected since these patches are just really 'workarounds' and were never going to implemented upstream. You could still set the DefaultDisplay to 16 in xorg.conf to get 3D if you run into this.