Gentoo Howto
From PS3 Wiki
- Prepare your PS3 for otheros using the instructions here
- Now turn on your PS3 with the Gentoo Install CD in the drive.
- Press Enter to boot the Gentoo kernel - It will boot and configure networking and other settings automatically. Make sure you have a DHCP server on your network (Router or another PC which is sharing the internet connection)
Installation starts now, with the livecd ~ # prompt
Contents |
Important Note
When installing the latest versions of the Kernels, such as 2.6.23, the drive is no longer sda like "sda1" or "sda2"
You will need to rename these to ps3da and use "ps3da1" "ps3da2" when this tutorial says "sda"
Partitioning Disks
(Assuming you gave your Linux partition 10GB. If you gave the linux partition 50GB, change the "+10000M" to "+40000M")
livecd / # fdisk /dev/sda The number of cylinders for this disk is set to 10239. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10239, default 1): Press Enter Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-10239, default 10239): +10000M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (8585-10239, default 8585): Press Enter Using default value 8585 Last cylinder or +size or +sizeM or +sizeK (8585-10239, default 10239): Press Enter Using default value 10239 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris) Command (m for help): a Partition number (1-4): 1
Command (m for help): p Disk /dev/sda: 10.7 GB, 10737414144 bytes 64 heads, 32 sectors/track, 10239 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 8584 8790000 83 Linux /dev/sda2 8585 10239 1694720 82 Linux swap / Solaris Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. livecd / # /sbin/reboot
This will reboot your PS3. What it will do is force the installer to re-read the partition table. After it reboots, you will be back at the kboot prompt and you can continue your installation from the next step.
Formatting root filesystem and swap + Enabling swap and mounting root
livecd / # mkfs.ext3 -j /dev/sda1
mke2fs 1.3x (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1098880 inodes, 2197500 blocks
109875 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2252341248
68 block groups
32768 blocks per group, 32768 fragments per group
16160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
livecd ~ # mkswap /dev/sda2
Setting up swapspace version 1, size = 1735389 kB
no label, UUID=56270620-3485-4396-b65b-269517a5451c
livecd / # swapon /dev/sda2
livecd / # mount /dev/sda1 /mnt/gentoo/
Installing base system, mounting procfs and /dev + Readying for chroot
livecd / # cd /mnt/gentoo livecd gentoo / # wget http://gentoo.osuosl.org/experimental/ppc64/stages/stage4-970-ps3_32ul.tar.bz2 (If already downloaded in advance, copy the file to /mnt/gentoo now) livecd gentoo / # tar -xjpf stage4-970-ps3_32ul.tar.bz2 livecd gentoo / # mount -t proc none /mnt/gentoo/proc livecd gentoo / # mount -o bind /dev /mnt/gentoo/dev livecd gentoo / # cp /etc/resolv.conf /mnt/gentoo/etc
Chrooting into the base system
livecd gentoo / # chroot /mnt/gentoo/ /bin/bash livecd / # export PS1="(chroot) $PS1" (chroot) livecd / # env-update && source /etc/profile --- 'profiles/arch.list' is empty or not available. Empty portage tree? >>> Regenerating /etc/ld.so.cache... (chroot) livecd / # emerge --sync (Skip this step if your PS3 is not connected to the internet.) This will take some time. Go and make yourself a cup of coffee :) livecd / # export PS1="(chroot) $PS1"
Final configuration steps
Setting timezone:
(chroot) livecd / ls /usr/share/zoneinfo (Suppose you want to use GMT) (chroot) livecd / cp /usr/share/zoneinfo/GMT /etc/localtime
Configuring kboot:
(chroot) livecd / # e2label /dev/sda1 / (chroot) livecd / # cd /etc (chroot) livecd etc / # cp kboot.conf.example kboot.conf (chroot) livecd etc / # nano -w kboot.conf
Note
When installing Kernel 2.6.23, use 2.6.23 instead of 2.6.16 and also use ps3da instead of sda
kboot.conf
# The following is an example kboot configuration file. Edit it # to suit your needs before attempting to reboot your system or # you may be unable to boot the new install. # default: the default kernel label to boot should the user not make # a selection. Uncomment the following line and set a default kernel label. default=Gentoo # timeout: number of seconds to wait for user input before the default # kernel label is booted. Uncomment the following line and set timeout. timeout=10 # The format from this point on is within a kernel label. At a minimum, # you must pass the kernel and root device. The syntax is as follows: # # label='device:<path_to_kernel> initrd=device:<path_to_initrd> kernel_options' # # You should also pass the video options as well. An example of video # options are as follows: # # 480i = ps3fb:mode:1 # 576i = ps3fb:mode:6 # 720p = ps3fb:mode:3 # 1080i = ps3fb:mode:4 # 1080p = ps3fb:mode:5 # # You can review all possible video modes using the ps3videomode application # provided by the ps3pfutils package. i.e. ps3videomode -v will display # possibilities. # The following is an example kernel label. Uncomment and edit as needed. Gentoo='sda1:/boot/kernel-genkernel-ppc-2.6.16-ps3 initrd=sda1:/boot/initramfs-genkernel-ppc-2.6.16-ps3 root=/dev/ram0 real_root=/dev/sda1 init=/linuxrc video=ps3fb:mode:8 rhgb' (replace video=ps3fb:mode:<required mode id>
Now press Ctrl + X. Then Y to save and exit editor.
Creating mount points for Memory Stick and SD Card (60GB version only):
(chroot) livecd etc / # cd ~ (chroot) livecd / # mkdir /mnt/memstick (chroot) livecd / # mkdir /mnt/sd
/etc/fstab
(chroot) / # nano -w /etc/fstab
# ....... # The root filesystem should have a pass number of either 0 or 1. # All other filesystems should have a pass number of 0 or greater than 1. # # See the manpage fstab(5) for more information. # # <fs> <mountpoint> <type> <opts> <dump/pass> # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/sda1 / ext3 noatime 0 1 /dev/sda2 none swap sw 0 0 /dev/sr0 /mnt/cdrom iso9660 noauto,ro 0 0 /dev/sdc1 /mnt/memstick auto noauto 0 0 (60GB version only!) /dev/sdd1 /mnt/sd auto noauto 0 0 (60GB version only!) #/dev/fd0 /mnt/floppy auto noauto 0 0 # NOTE: The next line is critical for boot! proc /proc proc defaults 0 0 # glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for # POSIX shared memory (shm_open, shm_unlink). # (tmpfs is a dynamically expandable/shrinkable ramdisk, and will # use almost no memory if not populated with files) shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 none /spu spufs default 0 0
Again, Ctrl + X, then Y to save and exit.
Setting root password:
(chroot) livecd / # passwd
/etc/rc.conf
(chroot) livecd / # nano -w /etc/rc.conf
# /etc/rc.conf: Global startup script configuration settings # ..... # XSESSION is a new variable to control what window manager to start # default with X if run with xdm, startx or xinit. The default behavior # is to look in /etc/X11/Sessions/ and run the script in matching the # value that XSESSION is set to. The support scripts are smart enough to # look in all bin directories if it cant find a match in /etc/X11/Sessions/, # so setting it to "enlightenment" can also work. This is basically used # as a way for the system admin to configure a default system wide WM, # allthough it will work if the user export XSESSION in his .bash_profile, etc. # # NOTE: 1) this behaviour is overridden when a ~/.xinitrc exists, and startx # is called. # 2) even if ~/.xsession exists, if XSESSION can be resolved, it will # be executed rather than ~/.xsession, else KDM breaks ... # # Defaults depending on what you install currently include: # # Gnome - will start gnome-session # kde-<version> - will start startkde (look in /etc/X11/Sessions/) # Xsession - will start a terminal and a few other nice apps XSESSION="fluxbox"
Adding xdm to default run-level:
(chroot) livecd / # rc-update add xdm default
Unmount filesystems and rebooting PS3!
(chroot) livecd / # exit livecd / # cd /mnt livecd mnt / # umount gentoo/proc/ gentoo/dev/ gentoo/ livecd mnt / # umount /mnt/usb/ (optional) livecd mnt / # reboot
Remove the Gentoo CD from the PS3 when it is restarting. On the next boot, it will automatically boot into the installed Gentoo.
