Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
You have GOT to be kidding!!! In my pursuit of trying to figure out the above issue, I decided to compare "Apples to Apples" (get it?) Unfortunately I don't have two G5's but I do have a G4 MDD running Lubuntu 16.04 driving two NON Apple Monitors. So, I compared the Xorg.0.log files for the G5 and G4, both drive Radeon GPUs of different types and came across an entry on the G5 Xorg log that has troubled me from the start of all this. It was a (ww) not an error so I didn't focus on it until now. You want to make your eyes bug out and your ears bleed? do a search on the following from my G5 Xorg.0.log:

3 ZaphodHeads crtcs unavailable. Some outputs will remain off

The G4 didn't have this message, likely due to the GPU being a different version. (VE/7000 QY AGP/PCI)

So I researched this issue and the fix is WAY above my pay grade. And I don't really know if the fix, patch, install efforts would result in the Apple Studio Display from working in Dual screen mode.

So, for now, I'll drive a non apple monitor off of this G5 when using Linux. I may go back and try to boot a Live CD of a different distro and see if the ZaphodHeads BS shows up in the Xorg.0.log. If it does, I know this G5 is doomed to only having one monitor in Linux mode. What a bummer.

MacMav855
 
Oh well, since there wasn't going to be any official update to the Linux kernel to version 6.1, I decided to learn how to do it myself and create my own packages with xbps-src.

I mostly just used this guide as a reference, but also ended up making some minor changes to the template. Basically, you'll first have to following commands to get the building environment ready:
Code:
$: git clone https://github.com/void-ppc/void-packages

$: cd void-packages

void-packages $: ./xbps-src binary-bootstrap

Then copy the linux6.0 template directory into linux6.1 template with following commands:

Code:
void-packages $: cd srcpkg
srcpkg $: cp -a linux6.0 linux6.1
srcpkg $: ln -s linux6.1 linux6.1-headers
srcpkg $: ln -s linux6.1 linux6.1-dbg
srcpkg $: cd linux6.1
linux6.1 $: sed -i "s/# Template file for 'linux6.0'/# Template file for 'linux6.1'/" template
linux6.1 $: sed -i 's/pkgname=linux6.0/pkgname=linux6.1/' template
linux6.1 $: sed -i 's/linux6.0-headers_package()/linux6.1-headers_package()/' template
linux6.1 $: sed -i 's/linux6.0-dbg_package()/linux6.1-dbg_package()/' template

I then edited the srcpkg/linux6.1/template file with nano to change the line "version=" to 6.1.1 (or whatever is the latest at the time).

I then returned back to the ~/void-packages directory and installed the xtools package with with command "xbps-install -S xtools" in order to use the command "xgensum -i linux6.1" to generate proper source checksums for the template file. I then edited the part of the script in srcpkg/linux6.1/template that says "# Switch to /usr.". The original command "mv ${DESTDIR}/lib ${DESTDIR}/usr" didn't work for me since mv just ends up complaining that it couldn't move /lib to /usr since it wasn't empty. The quick fix I came up was just to simply modify it to "cp -R ${DESTDIR}/lib ${DESTDIR}/usr" and add "rm -rf ${DESTDIR}/lib" to the next line. The final modification was in the the section "# usb" where I modified the line "for i in cpia2 em28xx pwc; do" to not include cpia2 since it's being deprecated in Linux 6.1 and newer kernels.

Okay, time to start the actual compilation process. First type "./xbps-src pkg linux6.1" so that the script downloads the sources and starts configuring for your system. It's going to then ask you what to do with the new features in Linux 6.1. Personally I just said yes to "Multi-Gen LRU" and enabled it by default. For the rest of the questions I just pressed enter to use whatever the default option was and that seemed to work just fine. After that it's just going to compile everything automatically. If it succeeds, you can install the newly compiled kernel with command "xbps-install --repository hostdir/binpkgs linux6.1-headers linux6.1"

I have only tested this with a 32bit ppc system, but I don't see why it wouldn't work on ppc64le, ppc64le-musl and ppc64 systems too. However, the entire process takes over 24 hours with my old iBook 1.2Ghz G4, so you should only do it if you have a lot of time and patience for it.

Small update to this guide: Sadly this guide no longer works with Linux kernel 6.2, but since kernel 6.1 is an Long Term Support version, it's not going to be out of date for a while. Also the MGLRU feature in 6.1 really seems to increase the performance and responsiveness of the system even with my old iBook G4, so I can highly recommend getting the kernel version 6.1 update with this guide (the latest one is 6.1.24 as of writing this update).

Also, I was able to update some of the my packages (like irssi) by manually by just editing the template files to grap the latest source code and it seems works perfectly fine. I hope this guide helps with at least some people who are still willing to stay with Void Linux PPC for a bit longer and still require updates to some of their software.
 
Gee..reading thru here - Tis like a text adventure game, but with lots more learning.
You guys are doing stuff I've never tried..so big thanks from me!!!
 
I have compiled Spotify-Qt on my PowerBook G4 which is a third-party client and it works nicely for people who want something more than a TUI one.
spotifyqt.png
 
That sounds great. I could only get the front end working on mine so it could control Spotify on another device. I couldn't get spotifyd to work locally. On other devices I have had good results with ncspot but I can't find a ppc version of it.
 
  • Like
Reactions: scarlett7447
That sounds great. I could only get the front end working on mine so it could control Spotify on another device. I couldn't get spotifyd to work locally. On other devices I have had good results with ncspot but I can't find a ppc version of it.
What issue were you having with spotifyd? This is what I also use and it's available in the package repository so it was overall quite easy to set up.
I also tried ncspot but it failed when compiling one of its dependencies.
 
What issue were you having with spotifyd? This is what I also use and it's available in the package repository so it was overall quite easy to set up.
I also tried ncspot but it failed when compiling one of its dependencies.
I couldn't work out where to actually put the config file and how to add the username and password so that it would actually run and connect to Spotify. I had the same issue on an i386 device running freeBSD and couldn't solve it. So cool to hear that you have done it on a very similar device to mine. (a 2005 15" 1.67 PBG4 running Void)
 
  • Like
Reactions: scarlett7447
I couldn't work out where to actually put the config file and how to add the username and password so that it would actually run and connect to Spotify. I had the same issue on an i386 device running freeBSD and couldn't solve it. So cool to hear that you have done it on a very similar device to mine. (a 2005 15" 1.67 PBG4 running Void)
Thanks! It runs really nicely actually, even on my iBook G3. About your issue, you should check out the wiki - https://docs.spotifyd.rs/config/File.html
They have detailed instructions on how to set it up + an example config file.
 
Thanks for the tip, I will try again. Last time I couldn't work out which directory to put the config file in and so it wasn't picked up by spotifyd.
 
  • Like
Reactions: scarlett7447
Along with my build for OS X 10.7+, i've also just built a ppc32 build of SeaLion for Void and Debian 11.
No installer. Just extract and run (or copy to /opt and create your own .desktop file).
Can be found here: https://github.com/wicknix/SeaLion/releases

View attachment 2195025
Sea lion..?
..I didn't even know of such a thing. Is this a port or something made from scratch, wick?
Oops - better go look at the link..might find out.

Nope - none the wiser.
Are ya gonna put this in the garden?
 
Yes, SeaLion because...
A) It's based off of SeaMonkey's browser component.
B) It runs on OS X Lion or higher. (and now ppc32 linux)
C) OS X 10.9 was briefly called Sea Lion. (a joke...or was it?)
So i thought the name was fitting. :)
 

Attachments

  • apfeleimer-221933-1024x811.jpeg
    apfeleimer-221933-1024x811.jpeg
    79.1 KB · Views: 104
Lol
Yes, SeaLion because...
A) It's based off of SeaMonkey's browser component.
B) It runs on OS X Lion or higher. (and now ppc32 linux)
C) OS X 10.9 was briefly called Sea Lion. (a joke...or was it?)
So i thought the name was fitting. :)
LOL...oh - excellent!!!
 
Has anyone tried to boot a Void Linux install from USB? And no, I don't mean the installation media.
I recently got a 12" PowerBook but I'm pretty sure the HDD cable is damaged as it gives me I/O errors and freezes with every HDD I've tried so I want to run Void Linux on it from a USB flash drive. I installed it successfully and after a reboot it even sees it and automatically boots into it (no need to tinker anything in Open Firmware!) but after I select the entry in Grub I get stuck here:

IMG_1196 (1).jpg
 
Abaddon (the Discord client) now supports voice chat. I compiled it on my PowerBook G4 and it works! I could hear the other person talking and it didn't stutter or lag at all, although I couldn't get my microphone to work but I think I didn't configure something properly
 
Small update to this guide: Sadly this guide no longer works with Linux kernel 6.2, but since kernel 6.1 is an Long Term Support version, it's not going to be out of date for a while. Also the MGLRU feature in 6.1 really seems to increase the performance and responsiveness of the system even with my old iBook G4, so I can highly recommend getting the kernel version 6.1 update with this guide (the latest one is 6.1.24 as of writing this update).

Also, I was able to update some of the my packages (like irssi) by manually by just editing the template files to grap the latest source code and it seems works perfectly fine. I hope this guide helps with at least some people who are still willing to stay with Void Linux PPC for a bit longer and still require updates to some of their software.
Well, I managed to compile kernel 6.3.4 without any errors on my 32bit ppc iBook G4. In case some of you want to experiment with it, I'll provide a guide on how to do it with files that are already configured for this. If at any point you'll mess something up, you can always just type ./xbps-src clean linux6.3 inside ~/void-packages/ directory and start again. This guide is only for the 32bit ppc machines. Since I'm unable to test this myself, I can't be 100% sure that it will work with 64bit machines. However, I'll include extra step in the guide if you want to try it with G5 systems.

First of all we need to configure the building environment so that we can build the kernel package (and bunch of other stuff too by just editing the template files and pointing them to the latest sources).

Code:
$: git clone https://github.com/void-ppc/void-packages
$: cd void-packages
void-packages $: ./xbps-src binary-bootstrap

After that is done, you'll need to download the attached linux6.3.zip file to your home directory and then extract it to the void-packages/srcpkgs. To simplify this step I'll assume that you have copied/downloaded the attached linux6.3.zip file to your home directory, but you can of course use whatever method works best for you.

Code:
$: mv linux6.3.zip ~/void-packages/srcpkgs/
$: cd ~/void-packages/srcpkgs/
srcpkg $: unzip linux6.3.zip
srcpkg $: ln -s linux6.3 linux6.3-headers
srcpkg $: ln -s linux6.3 linux6.3-dbg
srcpkg $: rm linux6.3.zip

This one is only for users who wish to try this one with 64bit G5 systems. DO NOT INSTALL if you are using a 32bit system like G3 or G4.

Code:
srcpkg $: cp linux6.0/patches/ppc64-be-elfv2.patch linux6.3/patches

After this we are pretty much ready to start compiling the kernel. My example is for the latest kernel version at the time of writing this (6.3.5), but you can easily modify it to newer kernels by simply editing the ~/void-packages/srcpkgs/linux6.3/template file's third row (mine says version=6.3.5) and change it to whatever you want. However, if you do this, you'll also need to have xtools installed (simply run sudo xbps-install -S xtools to install them). Then type xgensum -i linux6.3. This will give you some errors, but it will also update your template with correct hash numbers for the base kernel and the patch for it. We are now ready to start compiling the kernel. I seriously suggest that you should do this with a program called screen (sudo xbps-install -S screen if it's not already installed to your system and then type screen bash. This will open a new session where you can leave the script to compile itself and let you do something else with your computer while the script is running (especially since this might take +24 hours). With screen you can simply leave this session by pressing ctrl + a +d and resume to it by typing screen -Urd.

Code:
$: screen bash
$: cd ~/void-packages/
void-packages $: ./xbps-src pkg linux6.3

After this the installer script will download the sources and begin compiling. However before the script can start compiling your new kernel, it will ask you to confirm some of the settings. For most of these you can just leave them at their default values by pressing enter, but there are few which I highly recommend to enable: When it asks about "Multi-Gen LRU (LRU_GEN)", type Y and press enter. It will then ask you about "Enable by default (LRU_GEN_ENABLED)", type also y and press enter. At the end the script will inform you that the configuration has been written to .config and it starts compiling your kernel. If you used the screen method I explained earlier, you can now press ctrl +a +d and leave it to the background.

Once the script has finished compiling and making the kernel packages, you can simply install them with this command:

Code:
void-packages $: sudo xbps-install --repository hostdir/binpkgs linux6.3-headers linux6.3
and press y and enter to confirm it.

The installer will now install your kernel so that it will be used by default on your next boot (but if it doesn't work, you can always select your previous kernel at the startup.

Finally for those that want to customize their kernel even further with something like menuconfig, you'll most likely need to download the kernel sources separately from https://www.kernel.org, extract the source package somewhere in your home directory and then copy your config file from ~/void-packages/srcpkgs/linux6.3/files/ (in my case it's ppc-dotconfig, but your's might be either ppc64-dotconfig or ppc64le-dotconfig depending on your system) to the directory where you extracted your linux sources. Then rename it to .config and type menuconfig and select whatever features you'll need for your kernel and then select save. This should save your changes to the .config file which you can now move back to ~/void-packages/srcpkgs/linux6.3/files, rename your old *-dotconfig file to something like ppc-dotconfig.bak and then rename the .config to ppc-dotconfig (or to ppc64-dotconfig or ppc64le-dotconfig). After that you can start the compile script like I mentioned earlier in my guide and the script should now include stuff you wanted to add to your kernel.

And that's about it. At the moment this should work with the rest of the 6.3 series of kernels and I'll update this post for future kernels whenever they'll get released.
 

Attachments

  • linux6.3.zip
    353.8 KB · Views: 78
Last edited:
How long it took to compile kernel?
With 6.3.4 it took maybe 28 hours, kinda depends on what other apps do you have open at the same time, but the system feels now so much more responsive when compared to the last official kernel for ppc (which was 6.0.13), so imo this was all worth it.
 
This one is only for users who wish to try this one with 64bit G5 systems. DO NOT INSTALL if you are using a 32bit system like G3 or G4.

Code:
srcpkg $: cp linux6.0/patches/ppc64-be-elfv2.patch linux6.3/patches

Thanks for the guide. I'm compiling right now on a G5. It appears the elfv2 patch is not required anymore, as it is offered as an option while setting up the config file.
 
Last edited:
One small correction to the guide: apparently one of the files I included in my .zip file has incorrect permissions set for it. It's the file called mv-debug under the linux6.3/files directory and the easiest way to fix it is just to type chmod 777 mv-debug, then go to void-packages/masterdir/destdir/linux6.3-6.3.5, type rm -rf lib and go back to the void-packages directory and rerun the ./xbps-src pkg linux6.3 command.
 
  • Like
Reactions: ftalbot
I wanted to check if the Linux 6.4-rc6 kernel would also compile and run without any issues on PPC machines and I'm now happy to announce that the upcoming 6.4 kernel series will work with the guide I provided earlier in this thread.
 
Last edited:
The latest Linux kernel 6.4.1 seems to work just fine with few basic modifications:
Code:
$: cd ~/void-packages/srcpkgs/
srcpkgs $: rm -rf linux6.3-dbg
srcpkgs $: rm -rf linux6.3-headers
srcpkgs $: cp -a linux6.3 linux6.4
srcpkgs $: ln -s linux6.4 linux6.4-headers
srcpkgs $: ln -s linux6.4 linux6.4-dbg
srcpkgs $: cd linux6.4
linux6.4 $: sed -i "s/# Template file for 'linux6.3'/# Template file for 'linux6.4'/" template
linux6.4 $: sed -i 's/pkgname=linux6.3/pkgname=linux6.4/' template
linux6.4 $: sed -i 's/linux6.3-headers_package()/linux6.4-headers_package()/' template
linux6.4 $: sed -i 's/linux6.3-dbg_package()/linux6.4-dbg_package()/' template
and then edit the ~/void-packages/srcpkgs/linux6.4/template file with whatever text editor you want and modify the third line that says version to the latest version (you should check the https://www.kernel.org website to see which one is the latest in the 6.4 series, as of writing this guide the latest is 6.4.1):
Code:
version=6.4.1
and save the file. Now you can simply go back to the void-packages root directory to regenerate the correct checksums for the template and start the compilation process:
Code:
linux6.4 $: cd ~/void-packages
void-packages $: xgensum -i linux6.4
void-packages $: screen bash
void-packages $: ./xbps-src pkg linux6.4
void-packages $: sudo xbps-install --repository hostdir/binpkgs linux6.4-headers linux6.4

I'm pretty sure this same guide can be reused for 6.5 and later kernels whenever they are eventually released.
 
Last edited:
  • Like
Reactions: ftalbot and wicknix
just a heads up, the domain will expire in about 4 weeks and I will not be renewing it, so that means the repos will go fully dead (the https cert already expired months ago)
 
just a heads up, the domain will expire in about 4 weeks and I will not be renewing it, so that means the repos will go fully dead (the https cert already expired months ago)
It's a pity because it's light and fast and works perfect on our PowerPC machines.

Is there any way to save it? It took so much work. All for nothing?
 
  • Like
Reactions: Dronecatcher
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.