Debian PPC Starters Manual

From Power Progress Community Projects Wiki
(Redirected from DebianPowerPcStartersManual)
Jump to navigation Jump to search

Get inspiration and information from keep this guide simple, in the form of: Title / Why would you want to do that / tasks and commands to do it


Currently, Big Endian PowerPC architectures (powerpc/ppc64) are only classified as ports within Debian (a.k.a Debian Ports), meaning neither are an officially supported architecture. 32-bit PowerPC (powerpc) was an officially supported architecture, with a 64-bit kernel available, until the release of Debian 9 (codenamed Stretch). As a result the only way to run Debian on PowerPC is to use to either used the currently supported Debian 8 (codenamed Jessie) or the unstable branch known as Sid.

Why would you want to contribute to Debian PowerPC?

  • FREE Software and DFSF
  • PowerPC is a RISC architecture
  • All the existing G3, G4, and G5 Mac Machines
  • All the existing Freescale/NXP Boards/Amigas/etc.
  • Diversity, freedom, and choice
  • A learning opportunity for non-x86 architecture and Linux
  • The PowerPC Notebook Project
  • Saving the world! :-)

Installation of Debian PPC/PPC64

First things first: check if your computer is present in the supported list:

Also make note of whether or not your system is 64-bit capable, in which case you will install the 64-bit PowerPC version of Debian.

Now that you are ready to install Debian powerpc, you still have two more questions to answer:: Which Installation Media do you want to use?:: USB stick: Very convenient - but not really straightforward. Becomes easy when you get the hang of it.:: CD : The easiest - if you still have some CD-R / CD-RW around, and your CD writer is still working :-):: Hard Drive (HD) : Cannot see any real advantage over using USB stick - but you can do this if you want to.:: debootstrap : Very easy - almost magical - if you already have a running Debian installation on your target machine.

Which Target Partitioning Scheme to use?:: Debian alone on target disk - with one or several partitions - the most straightforward.:: Debian sharing the disk with other OSes (MacOSX or others) - you will need to partition your disk, and move things around. Can be (is) worth it. :: Debian alone on an external "firewire" disk - Haven't tested this. Could be interesting if you want to keep your internal disk as is, or if your internal disk is dead, and you do not have a replacement or you do not want to open your machine.

The rest of this section will describe an installation using a USB stick, on a supported machine - in my case, a venerable G4 PowerBook Aluminum. Debian is alone on the disk. (I also have an iMac G5 MacOSX / Debian stable / Debian unstable installation - where unstable was installed using debootstrap)

Download ISO

Normally, I would install Debian stable first, then upgrade to Debian unstable. But we are not in a normal situation anymore, so we'll install unstable directly.

For G4 and earlier (32-bits disk image):

For G5 and later (64-bits disk image)::

The one I used is from the 04/07/2017 (7th of April 2017).

Write ISO to USB stick

If you wanted to write the boot image on CD-ROM (CD-R or CD-RW) you would use a software like brasero.

For the USB stick, the easiest (only) way to do this is using the dd command (on linux or MacOSX).

One thing to know about the dd command is that you need to be careful when using it - do not use it as root - unless you know what you're doing.

Now the thing is, we need to use it as root to write the ISO image on the stick...

First, cd to the directory containing the disk image.

Then you need to get the device name for your USB stick. Plug it in and type:



MacOSX:: diskutil list Or you can just list the mounted filesystems:


On my computer the USB stick is /dev/sdb. There is a partition on it, and it is mounted on /dev/sdb1.

Second, you need to unmount the mounted partition:: sudo umount /dev/sdb1

Finally, write the image: : sudo dd if=mini.iso of=/dev/sdb

Boot from USB Stick

If you were using a CD-ROM, you would just boot while holding the c button.

To boot on the USB stick, you'll need to invoke Open Firmware (equivalent of BIOS / EFI).

WARNING: This is command line wizardry!

Here goes:

Plug in the USB stick and then boot your computer - while pressing on the <command></command> + <option> + o + f</option> buttons.

If you're not using an apple keyboard, you'll need to use <windows> + <alt> + o + f</alt></windows>.

(if you're using a G5 machine - get earplugs or something - and do not do this at night in your room - the fans will run at maximum speed - and that's very noisy).

First you need to identify your USB stick (in Open Firmware terminology - and this depends on your computer and the USB port you're using):

dev / ls

Scroll down (<space></space>) until you get something like:

/usb@1b:: /disk@1

Now we know our USB stick is on usb@1b and is known as disk@1.

We still need to find the alias of usb@1b:


You need to look for the usb0, usb1 etc... corresponding to usb@1b:

On my computer it was usb1.

Finally, boot your computer using:

boot usb1/disk@1:2,\\yaboot

(This means we are booting on partition 2 of disk@1 which is connected on usb1.)

You're ready to start the installation if you get the yaboot prompt:

Welcome to yaboot version 1.3.17: Enter "help" to get some basic usage information: boot:

Base Installation

You need to be somehow familiar with the Debian Installer to consider it easy...

It is not difficult, really, but it might get intimidating if you're doing this for the first time...

To cut this short:

- plug in your ethernet cable (wireless networking will not work during installation).: - follow the installer steps - selecting the default options (if you're going to use the full disk - no manual partitioning).

To give you a better idea, here is an overview of the main steps - with some comments where appropriate:

Starting with the yaboot prompt, type expert or install:: boot: expert

You'll get to the "familiar" red / grey / blue Debian installer main menu:

Choose language: Access software for a blind person using a braille display: Configure the keyboard: Detect network hardware: Configure the network: Choose a mirror of the Debian archive: Download installer components: ...

All goes smoothly until you start Choose a mirror of the Debian archive.

It seems the installer is still looking for stretch - and as you know, err, it has been killed.

So, after selecting your mirror, you'll get a warning telling you:: The specified (default) Debian version (stretch) is not available from the selected mirror. It is possible to continue and select a different release for your installation, but normally you should go back and select a different mirror that does support the correct version.: Go back and try a different mirror? You should select No This will allow you later to choose sid (unstable).

Then, after completing Download installer components, you get back the Debian installer main menu, with some additional steps to execute: : Set up users and passwords:: - disable root login (I do this for security - and use sudo or Root Terminal for administration): configure the clock: Detect disks: Partition disks:: - use the Guided partitioning + ext3 filesystem (I've had issues with yaboot and ext4).: Install the base system:: - I have used the linux-image-powerpc kernel + targeted initrd. : Configure the package manager :: - do not use non-free and contrib software. We'll later use contrib for wireless - but in a controlled way.: Select and install software:: - please do configure the popularity-contest package. This will help Debian powerpc by showing the community people are still using it!:: - For desktop use you'd also want to install mate-desktop-environment or LXDE; you can also install a simple Window Manager like Openbox or IceWM, but will require bigger tuning work.: Install yaboot on a hard disk: Continue without a boot loader: Finish the installation:: - this will allow you to reboot into your new system!

Additional Components

Here are some additional components and applications to improve your Debian powerpc experience:

compositing (buffering to improve display).:: sudo apt-get install compton:: Preferences -> Default applications for LXSession::: Core applications -> Composite Manager: compton::: Autostart -> + Add compton
cpu frequency scaling (I like to keep my computer as silent as possible).:: sudo apt-get install cpufrequtils: To get list of available cpufreq governors + statistics::: cpufreq-info: To dynamically set CPU speed at max performance::: sudo cpufreq-set -g performance: To dynamically set CPU at half-speed::: sudo cpufreq-set -g powersave: To dynamically set CPU in adaptive speed::: sudo cpufreq-set -g ondemand: To set CPU at half-speed - persistent after reboot::: sudo vi /etc/default/cpufrequtils:: GOVERNOR="powersave": To set CPU in adaptive speed - persistent after reboot::: sudo vi /etc/default/cpufrequtils:: GOVERNOR="ondemand"
links2: a mega-fast web browser (graphic and command line) - firefox ESR is already installed - but it is (much) slower.:: sudo apt-get install links2
conkeror: another mega-fast web browser (graphic - keyboard controlled, based on firefox ESR). Believe me, you'll love it!:: sudo apt-get install conkeror
wireless networking - you'll need to use the contrib repository - and download a non-free binary. Skip this if you want to keep a [DFSG] compliant installation. : First remove wicd (only if you installed LXDE, Mate installs network-manager by default): wireless did not work at all with wicd for me...:: sudo apt-get autoremove wicd
Then edit apt sources.list to add contrib::: sudo nano /etc/apt/sources.list:: add the word contrib at the end of each line:: save the file with Ctrl-o and exit with Ctrl-x: Install the driver (b43)::: sudo apt-get update:: sudo apt-get install firmware-b43-installer: Then edit back apt sources.list to remove contrib::: sudo nano /etc/apt/sources.list:: delete the word contrib at the end of each line:: save the file with Ctrl-o and exit with Ctrl-x:: sudo apt-get update: Finally install network-manager (only in LXDE, in Mate Desktop, as said, it is already installed)::: sudo apt-get install network-manager network-manager-gnome
gfx acceleration - without changing the ROM of ATI card - you'll need to use the non-free repository. (07/01/2018) I'm afraid some basic functionalities - like switching to tty Consoles stopped working without using the proprietary drivers - at least on PowerBook G4 ... I'm still trying to understand why.
Edit apt sources.list to add non-free::: sudo nano /etc/apt/sources.list:: add the word non-free at the end of each line:: save the file with Ctrl-o and exit with Ctrl-x: Install the firmware-linux-nonfree::: sudo apt-get update:: sudo apt-get install firmware-linux-nonfree: Then edit back apt sources.list to remove non-free::: sudo nano /etc/apt/sources.list:: delete the word non-free at the end of each line:: save the file with Ctrl-o and exit with Ctrl-x:: sudo apt-get update
Now you need to set the correct yaboot kernel option::: sudo nano /etc/yaboot.conf:: Add a line under each label=... line: append="radeon.agpmode=-1" to get something like:
save the file with Ctrl-o and exit with Ctrl-x:: Apply your modifications by executing sudo ybin -v
sound setup - sound seems to work out-of-the-box now, but it is muted by default, and PCM volume is set to 0...:: open a terminal window, and execute alsamixer:: Press F6 and select SoundByLayout:: Then press F5 and check if Master is muted (MM) - if it is, select it and press m. You can increase volume using UP arrow:: Then scroll right and check if PCM volume is set to 0. if it is, increase volume using UP arrow.
gfx acceleration - changing the ROM of ATI card to use the free ROM (non-compatible with MacOS)

When things go wrong (and they will...)

A word to the wise: We're using unstable.

It is unstable.

A new installation on my PowerBook G4 Al (radeon) almost works just fine on first boot...

There is someissue with LCD backlight though.

The major bugs were fixed (I think): there is still a small issue: After booting, screen is dark. Just press Brightness UP or <fn> + <f2></f2></fn> and you'll get your backlight back.

If you're still having issues (screen freeze): You can try to reboot with no graphics hardware:

Switch to a Console screen (F1 to F6)::: <ctrl> + <option> + <f1></f1></option></ctrl>: To be sure, you might need to do it again while holding the <fn></fn> button::: <fn> + <ctrl> + <option> + <f1></f1></option></ctrl></fn>: Type <enter></enter> 3/4 time to get rid of stray characters.: (Remember, you're still in the dark - no backlight.): Now, type your Login then <enter></enter> then Password then <enter></enter> and wait for a couple of seconds.: (Again type <enter></enter> 3/4 time to get rid of any potential stray characters.): Type the command to reboot your computer::: sudo shutdown -r now (followed by <enter></enter>: Enter your Password again (for sudo)

The computer should reboot now (wait for a couple of seconds again).

If it doesn't, that means you're not made for typing in the dark... Try again, or just power off the machine by holding the power button (for a couple of seconds).

Now, when you get to the yaboot prompt, start with no graphics hardware:: boot: Linux nomodeset

You'll start into an ugly and unusable login screen.

Switch now to a Console screen (F1 to F6):: <ctrl> + <option> + <f1></f1></option></ctrl>

Welcome to Debian command line OS! (Wireless networking works).

In case something else happens, here is a list of links that can be of help:

Debian GNU/Linux Installation Guide (powerpc).

Debian powerpc port FAQ.

Debian powerpc mailing list.

Debian powerpc IRC channel (#debianppc) on OFTC IRC network.

Ubuntu PowerPC Known Issues.

Overview of Debian Bug Submission/Testing/Integration Process

Simple description (graphical diagram) of content from

Installation of Development/Debugging Tools

tools used for development, debugging etc...

popcon: show Debian community that powerpc is still actively used!

this can help bringing back Debian powerpc as a release architecture

Obtaining Source Code & Building From Source

There are two methods for obtaining a package's source code (and probably more) in Debian. The first is to use apt and the second is to download the source directly from it's upstream location.

1) Using apt-get source
2) Downloading Source from Upstream


Making Patches, sharing and applying them


Creating Debian packages - Conditions and rules to follow for packages to be included in Debian

Creating ISO Images


Debugging and Profiling


64-bit / 32-bit


OpenFirmware (OF) / U-Boot

U-Boot readme for T2080RDB (note about the switch settings: 0 is ON and 1 is OFF) Also see NXP SDK docs

To build on Debian (to be verified)

apt-get install gcc-powerpc-linux-gnu qemu-user-static

powerpc-linux-gnu-gcc (Debian 6.3.0-18) 6.3.0

git clone
git clone
make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- -j33 T2080RDB_SDCARD_config
make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- -j33

install - assuming your SD card reader is /dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0:0 (to be verified)

Need to make space for u-boot. Default is first partition starting at sector 2048 which is slightly before end of space reserved for u-boot.

sfdisk /dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0:0 << EOF label: dos
label-id: 0x00000000
device: /dev/sda
unit: sectors
/dev/sda1 : start=        8192, size=    15325184, type=83

Install u-boot

dd if=u-boot-with-spl-pbl.bin of=/dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0\:0 seek=8 count=2048
dd if=fm-ucode/fsl_fman_ucode_t2080_r1.1_106_4_18.bin of=/dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0\:0 seek=2080 count=128

create filesystem on card - newest ext4 features are not supported by dated u-boot ext4 driver so use ext3

mkfs.ext3 /dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0\:0-part1

install Debian on created filesystem

mount /dev/disk/by-id/usb-Mass_Storage_Device_1234567890AB-0\:0-part1 /mnt
debootstrap --arch=powerpc --foreign --include linux-image-powerpc64,isc-dhcp-client oldstable /mnt/
cp /usr/bin/qemu-ppc-static /mnt/usr/bin/qemu-ppc-static
chroot /mnt
debootstrap/debootstrap --second-stage

Configure u-boot on SD card - this is underdocumented so YMMV

mkdir /mnt/boot/extlinux
cat >/mnt/boot/extlinux/extlinux.conf <<eof 
DEFAULT default
MENU TITLE Boot menu 
LABEL default        MENU LABEL Default        LINUX /vmlinuz        INITRD /initrd.img        APPEND root=/dev/mmc0p1 ro console=tty0 console=ttyS0,115200n8 
LABEL old        MENU LABEL old        LINUX /vmlinuz.old        INITRD /initrd.img.old        APPEND root=/dev/mmc0p1 ro console=tty0 console=ttyS0,115200n8 
LABEL exit        MENU LABEL Local boot script (boot.scr)        LOCALBOOT 1 


Building Your Own Custom Kernel


Altivec - PowerPC Secret Weapon