Linux on an Apple Powerbook G4
This text describes the adventures I encountered while installing Linux on an Apple Powerbook G4 (15″ version, 1.67GHz). It seems that with Apple’s numbering scheme the machine is a PowerBook5,6 . If you have questions or additional hints, feel free to contact me.
The page was originally written in spring 2005, when the machine was new on the market. After a while I got bored by the many difficulties connected to running Linux on the machine and I switched to using MacOS X. Recently I reinstalled the current Debian/unstable distribution on the machine and was happy to notice that Linux support has significantly improved.
Contents
Summary
I was able to install Debian GNU/Linux on the machine. The laptop has the hardware configuration Apple introduced in February 2005.
component | hardware identification | status | |
---|---|---|---|
core components | MPC7447A CPU (1.67 GHz) Apple UniNorth 2 chipset IDE hard disk | works | |
graphics card | ATI RV350 (Mobility Radeon 9600 M10) | works (no 3D accel.) | |
display | 15.2″ TFT 1280×854 pixels | works | |
keyboard | internal USB | works needs keymap | |
track pad | internal USB | works sometimes hangs a bit | |
Ethernet Controller | Sun GEM | works perfectly | |
WLAN | Broadcom BCM4306 802.11b/g | works | |
sound | Snapper | works | |
external USB | works | ||
PCMCIA slot | works | ||
bluetooth | . | see below | |
modem | . | not detected |
Table 1. This table summarises the hardware support for Post-February-2005 Apple powerbooks under Linux. A plus sign in the last column indicates that the component works out of the box, plus-minus indicates that it can be made to work by applying kernel patches etc. or that it partially works, and a minus indicates that I did not manage to make the component work at all.
Some information about my setup:
- the kernel config file config-2.6.13.2.
- the kernel’s boot messages as obtained by dmesg.
- the /proc/cpuinfo contents
- the lspci -v output
- the lsusb -v output
Installation
Nowadays Debian Linux can be installed on the machine from the usual installation media. Initially, when the machine was still very new, I followed the steps described at William R Sowerbutts’ Linux on the Mac Mini page. I used the Debian Sarge installer RC2 netinstall image, and the basic installation worked without any trouble.
Keyboard
The Powerbook keyboard needs getting used to: there are no keys for page-up, page-down and the hash mark. Since I was unhappy with the provided key-bindings under Linux, I finally wrote my own ones, aiming for as much MacOS X compatibility as possible.
Originally the kernel produced key press events for the fn key, thus allowing it to be bound in the X Window system. For some reason (which I never understood) this feature was removed in later kernels.
The keymaps in the remaining part of this section are from the time when fn could still be bound in keymaps. Nowadays they will probably be less useful:
- a Linux console keymap for the British keyboard
- a set of files implementing Xorg server key bindings for British, French (thanks, Yves-Alexis Perez) and German keyboards, using the XKB extension
- a set of files implementing old XFree86 server key bindings for the British and German (untested) keyboards, using the XKB extension (eject key does not work due to a bug in XFree86)
Some notes about the key bindings:
- The apple keys ( command in MacOS) act as meta keys. You can use apple-tab to cycle trough your windows and ctrl-apple-F1 etc. to switch virtual consoles.
- The alt key ( option in MacOS) acts as an AltGr key. You can use it together with other keys to produce all sorts of funny characters as in MacOS X: for the British keyboard alt-3 gives the hash mark # , alt-s gives the German sharp esszet, and alt-u a gives the German ä umlaut character.
- The page-up and page-down keys are at fn-up and fn-down .
- Since X11 does not know the concept of an eject key, I just mapped the key to F13 . With this setting, you can teach, for example, the Gnome desktop environment to treat F13 as an eject key.
Bluetooth
BlueTooth does not work out of the box. I do not own any bluetooth devices, so the following is unchecked. According to Johannes Berg’s message to debian-powerpc the following error messages are related to bluetooth support. In the posting he also explains how to get bluetooth working.
. usb 2-1: new full speed USB device using ohci_hcd and address 2 hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected usb 2-1: device descriptor read/64, error -71 usb 2-1: device descriptor read/64, error -71 usb 2-1: new full speed USB device using ohci_hcd and address 3 usb 2-1: device descriptor read/64, error -71 usb 2-1: device descriptor read/64, error -71 usb 2-2: new full speed USB device using ohci_hcd and address 4 .
Error -71 above stands for protocol error ( EPROTO ), error -5 for I/O error ( EIO ).
Other Problems
pdnsd[487]: Caught signal 15. Exiting. pdnsd[492]: Failed to open socket: Bad file descriptor. Status readback will be impossible
xterm: fatal pty error 23 (errno=22) on tty /dev/pts/1
This is reported as Debian bug 229566 and can be worked around by using the following X resource settings:
xterm*eightBitInput: true xterm*metaSendsEscape: true
References
- Information about the processor can be found on Freescale Semiconductor’s MPC7447A Product Summary Page. The Programming Environments Manual describes the PowerPC assembler language in great detail.
- the debian-powerpc mailing list
- Johannes Berg’s PowerBook page contains information about the special keys and the trackpad.
- the Linux Broadcom 4301 Driver Project
- Stelian Pop’s Apple Touchpad Driver
- Doug Palmer, An Unreliable Guide to XKB Configuration
- the ATI R300 project might provide 3D acceleration support for the graphics card in the future
- the penguinppc.org web page
- Werner Heuser’s TuxMobil website contains a wealth of information about installing and running Linux on laptops.
Copyright © 2012, Jochen Voss. All content on this website (including text, pictures, and any other original works), unless otherwise noted, is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
Установка Lubuntu на PowerBook G4
Здравствуйте всем! Принесли PowerBook G4, на котором не возможно уже работать, в связи с устаревшей сильно системой. Решил поставить Lubuntu. Все установилось замечательно, без ошибок и прочего. Но есть очень плохая проблема. Когда Lubuntu загружается и до ходит до окна с пользователем, то при вооде пароля и нажатие кнопки вход, система просто зависает намертво. Пока не введешь пароль и не нажмешь вход, все работает.
Или подскажите дистрибутив линукса, который можно поставить на сие чудо.
Есть какие-то идеи? Спасибо заранее.
Попробуйте курсором повозить подольше. Если поможет — ставьте пакет haveged
Так если все замертво зависает, то как водить курсором?
А какая, кстати, видяха? На моем G4 — geforce mx400, и в какой-то момент в ядре поломали kms для нее. Правда, оно у меня и так давно использовалось без иксов в качестве сервачка.
А, я думал просто дальше окна логина не продвигаетесь.
Ну тогда цепляйтесь по ssh да смотрите dmesg\syslog, или переключайтесь на другой VT и пытайтесь так понять в чем дело. Без логов тут можно сколько угодно гадать.
Чего можно испытать: — бета версию Lubuntu 18.10, раз вас устраивает Lubuntu. В нём вместо LXDE используется LXQT, так что эта ошибка возможно исправится сама собой. Окончательная версия Ubuntu 18.10 ожидается 18 октября. — Xubuntu 18.04. Ваш интерес к Lubuntu возможно вызван малым объёмом памяти макбука. Xubuntu — самый экономный вариант по памяти (из-за использования XFCE, которое доступно и для других дистрибутивов, правда, выгляди грубовато). Интересные дистрибутивы с XFCE — Linux Mint (один из вариантов) и MX Linux (этот на основе Debian).
Reviving a Powerbook G4 with Lubuntu Linux
My dad has an old MacBook from 2001, a PowerBook G4 that’s been just sitting collecting dust for years. He wanted to try and revive it to use it for casual web browsing. So I told him he could probably pull it off by putting Linux on it.
After some research, I found the best distribution for this would Lubuntu as it has the following benefits:
- Low resource requirements
- PowerPC arch support
- User Friendly (especially helpful for a Baby Boomer whose only experience is with Macs)
Initial setup
First Download Lubuntu for PowerPC at https://lubuntu.net/downloads/. The direct download link seems to be down so a torrent client is going to be needed. I recommend webtorrent as it’s very user-friendly.
Next you’ll need something to flash a USB, balena etcher is cross-platform and will suit our needs.
With balena installed you can select your drive, the ISO you downloaded via torrent and get flashing.
Getting into PowerPC BIOS/boot menu
To get into the powerbook’s bios you’ll need to hold down this long combination after you turn on your mac Cmd⌘ + Option/alt + O + F . After that you should be presented with a CLI with a white background.
Selecting the boot medium
PowerBooks are old, thus they don’t have a GUI based bios and instead use a CLI. Normally I love me a good CLI as they are much more powerful if you know what you’re doing. Sadly this bios is not very user friendly with obscure commands and no user manual. After some digging I found the correct command to boot from USB.
NB: if you have a non-american keyboard, while in this CLI your keyboard layout will default to the american layout so this might come in handy.
if your keyboard has a fat enter key, the | and \ key will instead be to the left of the enter key instead of above.
Just to ring home how obscure these commands are, yaboot is an argument thats needed if the OS is linux based. Meanwhile tbxi is for OSX based. Why? Beats me.
Setting up Lubuntu
After these steps, you should boot into the trial of Lubuntu. From here you can experiment with the distro or install it via the desktop icon.
Following the install wizard should be easy enough.
And we’re done! Enjoy your revived system.
Though if your G4 was like ours, 512mb of ram is going to be hard to work with, so be careful and setup a swap file or be prepared to reboot regularly when your system gets stuck when you run out of ram…