Debian PPC Starters Manual
Get inspiration and information from http://www.debian.org/doc/maint-guide/
keep this guide simple, in the form of:
Title / Why would you want to do that / tasks and commands to do it
Introduction
Currently, Big Endian PowerPC architectures (powerpc/ppc64) are only classified as ports within Debian, 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! :-)
- - FREE Software and DFSF
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:
Linux:
lsblk
MacOSX:
diskutil list
Or you can just list the mounted filesystems:
df
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> + <Option> + o + f
buttons.
If you're not using an apple keyboard, you'll need to use <Windows> + <Alt> + o + f
.
(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>
) 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
:
devalias
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
orRoot Terminal
for administration)
- - disable root login (I do this for security - and use
configure the clock
Detect disks
Partition disks
- - use the Guided partitioning +
ext3
filesystem (I've had issues with yaboot andext4
).
- - use the Guided partitioning +
Install the base system
- - I have used the
linux-image-powerpc kernel
+targeted initrd
.
- - I have used the
Configure the package manager
- - do not use
non-free
andcontrib
software. We'll later usecontrib
for wireless - but in a controlled way.
- - do not use
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
orLXDE
; you can also install a simple Window Manager like Openbox or IceWM, but will require bigger tuning work.
- - please do configure the
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
- Core applications -> Composite Manager:
- 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 withCtrl-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 withCtrl-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 withCtrl-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 withCtrl-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:
image=/boot/vmlinux
label=Linux
append="radeon.agpmode=-1"
read-only
initrd=/boot/initrd.img
- save the file with
Ctrl-o
and exit withCtrl-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 selectSoundByLayout
- Then press
F5
and check ifMaster
is muted (MM) - if it is, select it and pressm
. You can increase volume usingUP arrow
- Then scroll right and check if
PCM
volume is set to 0. if it is, increase volume usingUP arrow
.
- open a terminal window, and execute
- 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):
But there is still a small issue: After booting, screen is dark. Just press Brightness UP
or <fn> + <F2>
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
toF6
):<Ctrl> + <Option> + <F1>
- To be sure, you might need to do it again while holding the
<fn>
button:<fn> + <Ctrl> + <Option> + <F1>
- Type
<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>
then Password then<Enter>
and wait for a couple of seconds. - (Again type
<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 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>
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 https://wiki.debian.org/HowtoUseBTS
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
Patches
Making Patches, sharing and applying them
Packages
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 https://gitlab.com/oshw-powerpc-notebook/freescale.com-ppc-u-boot.git cd freescale.com-ppc-u-boot git clone https://github.com/qoriq-open-source/fm-ucode.git
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 EOF
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 passwd exit
Configure u-boot on SD card - this is underdocumented so YMMV
mkdir /mnt/boot/extlinux cat >/mnt/boot/extlinux/extlinux.conf <<EOF TIMEOUT 100 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 EOF
Building Your Own Custom Kernel
...
Altivec - PowerPC Secret Weapon
...
Drivers
...