Porting Debian-Installer to PS3 Linux
Porting Notes
Please read the documents in PS3 Linux Distributor's Starter Kit which is available at ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/. They're licensed under GFDL, so I've set up a local mirror.
The PS3 Linux platform is identified as PS3PF in /proc/cpuinfo.
(poewrpc)yaegashi@ps3% cat /proc/cpuinfo processor : 0 cpu : Cell Broadband Engine, altivec supported clock : 3192.000000MHz revision : 5.1 (pvr 0070 0501) processor : 1 cpu : Cell Broadband Engine, altivec supported clock : 3192.000000MHz revision : 5.1 (pvr 0070 0501) timebase : 79800000 machine : PS3PF
- Available devices and configuration under PS3 Linux environment:
- 20GB model: HDD, BD, GbE NIC, 4 USB2.0 ports (seen as PCI OHCI/EHCI devices), Bluetooth (connected to USB).
- 60GB model: In addition to 20GB's, built-in 3-in-1 media drive (connected to USB).
- PS3PF specific kernel drivers:
ps3pf_storage ... Supports internal hard disk and Blu-ray drive.
gelic_net ... Wired 1000Mbps NIC driver. Wireless network of the 60GB model is unsupported.
snd_ps3pf ... ALSA compatible sound driver.
ps3fb ... Framebuffer driver, built in vmlinux.
Built-in 3-in-1 media drive is not detachable from the system and recognized as /dev/sd[abc] as soon as udev starts in /lib/debian-installer-startup.d/S02udev in the very initial boot phase. It's quite inconvenient to ordinary use, so S02ps3pf-linux-powerpc is inserted to expressly load ps3pf_storage before usb-storage.
Kernel issues: It is uncertain until PS3PF support apeears in the mainline and Debian kernel. It might be possible to merge PS3PF support into the existing powerpc64 kernel and installer. Current configuration of kernel and powerpc-ps3pf module in linux-kernel-di-powerpc-2.6 is quite thoughtless and groundless.
- Boot loader issues: The standard boot loader of PS3 Linux is kboot. It's capable of directly reading config/kernel/initrd files in the filesystem, so installed userland needs no additional boot loader packages. (see "How to Use Kboot" in
kboot-installer sets volume label "/" on the boot filesystem (mounted on /boot or /) and write /etc/kboot.conf.
Booting from installer CD/DVD is also handled by kboot. /etc/kboot.conf is generated using installer/build/boot/powerpc/kboot.conf.
- Most changes of individual udeb packages (except some perfunctory workarounds and kludges) are harmless to existing platforms. They could be merged into the upstream repository.
packages/hw-detect
packages/rootskel
packages/libdebian-installer
packages/partman/partman-base
packages/base-installer
Patches
Patches against the latest subversion repository:
(poewrpc)yaegashi@ps3% svn diff | diffstat installer/build/boot/powerpc/kboot.conf | 6 + installer/build/config/powerpc.cfg | 8 +- installer/build/config/powerpc/ps3pf.cfg | 13 +++ installer/build/config/powerpc/ps3pf/monolithic.cfg | 8 ++ installer/build/pkg-lists/monolithic/powerpc.cfg | 4 - packages/arch/powerpc/kboot-installer/debian/changelog | 5 + packages/arch/powerpc/kboot-installer/debian/compat | 1 packages/arch/powerpc/kboot-installer/debian/control | 15 +++ packages/arch/powerpc/kboot-installer/debian/kboot-installer.templates | 3 packages/arch/powerpc/kboot-installer/debian/postinst | 39 ++++++++++ packages/arch/powerpc/kboot-installer/debian/rules | 26 ++++++ packages/base-installer/debian/postinst | 2 packages/base-installer/kernel/powerpc.sh | 1 packages/debian-installer-utils/apt-install | 2 packages/hw-detect/hw-detect.sh | 11 ++ packages/kernel/linux-kernel-di-powerpc-2.6/kernel-versions | 11 +- packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/cdrom-core-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/crypto-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/ext2-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/ext3-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/fat-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/firmware-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/fs-common-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/hfs-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/input-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/ipv6-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/jfs-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/kernel-image | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/loop-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/md-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/mouse-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/nic-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/nic-shared-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/ppp-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/reiserfs-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/scsi-core-modules | 2 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/scsi-modules | 2 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/usb-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/usb-serial-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/usb-storage-modules | 1 packages/kernel/linux-kernel-di-powerpc-2.6/modules/powerpc-ps3pf/xfs-modules | 1 packages/libdebian-installer/src/system/subarch-powerpc-linux.c | 1 packages/partman/partman-base/definitions.sh | 4 + packages/rootskel/src/lib/debian-installer-startup.d/Makefile | 1 packages/rootskel/src/lib/debian-installer-startup.d/S02ps3pf-linux-powerpc 45 files changed, 181 insertions(+), 9 deletions(-)