OtherOS++
This page has missing files. You can help PS3 Developer wiki by adding download/mirror links on it and listing hashes (MD5, SHA1 etc). |
This page has missing mirrors. You can help PS3 Developer wiki by adding download/mirror links on it. |
OtherOS++
This guide is roughly copypasted from Gitbrew wiki and Glevand' documentations
Firmwares
With SS Patches
- PS3 Dual Boot GameOS/Linux CFW 3.41 // (mirror:CFW341-OTHEROS++.PUP (167.12 MB)) - 3.41 with SS Patches. 1/2 hdd to OtherOS++
- PS3 Dual Boot GameOS/Linux CFW 3.55 // (mirror:CFW355-OTHEROS++.PUP (170.64 MB)) - 3.55 with SS Patches. 1/2 hdd to OtherOS++
- PS3 Dual Boot GameOS/Linux CFW 3.55 1/8th // (mirror:CFW355-OTHEROS++-EIGHTH-HDD-SIZE.PUP (170.64 MB)) - 1/8th of the drive will be for GameOS, SS patches
- PS3 Dual Boot GameOS/Linux CFW 3.55 SPECIAL // (mirror:CFW355-OTHEROS++-SPECIAL.PUP (170.64 MB)) - QA Flag CFW with SS patches, Can be used to downgrade your ps3 from 3.55 to lower firmwares.
- PS3 Dual Boot 22GB GameOS/Linux CFW 3.55 // (mirror:(170.64 MB)) - 3.55 with SS Patches. 22GB OtherOS++
- PS3 Dual Boot GameOS/Linux CFW 3.55 // (mirror:(170.64 MB)) - 3.55 with SS Patches. OtherOS++
coldboot fix
- PS3 Dual Boot GameOS/Linux CFW 3.55 COLD-BOOT FIX // (mirror:[1])
CRC16:83BF | CRC32: 595E42FC | SHA1: 1292611131BFCBD4D37FDF68603DC59D7922F5B5 | MD5: CCB69A1D02FDC42267D476076A44CBA5
No SS Patches
- PS3 Dual Boot GameOS/Linux CFW 3.55 22GB // (mirror:CFW355-OTHEROS++-22GB.PUP (170.64 MB)) - 3.55: 22GB to OtherOS++, no SS patches (HASHES)
- CFW355-OTHEROS++-HALF-HDD-NO-SS-PATCH.PUP // (mirror:CFW355-OTHEROS++-HALF-HDD-NO-SS-PATCH.PUP (170.65 MB) - 3.55: no SS Patches. 1/2 hdd to OtherOS++
- CFW355-OTHEROS++-EIGHTH-HDD-NO-SS-PATCH.PUP // (mirror:CFW355-OTHEROS++-EIGHTH-HDD-NO-SS-PATCH.PUP (170.65 MB)) - 3.55: 1/8th of the drive will be for GameOS, No SS patches
Documentation
- README // (mirror:README.txt (729 Bytes))
- INSTALL_OTHEROS_ON_HDD // (mirror:INSTALL_OTHEROS_ON_HDD.txt (2.07 KB))
Packages
- boot_gameos.pkg // (mirror:boot_gameos.pkg (60.05 KB))
- boot_otheros.pkg // (mirror:boot_otheros.pkg (69.86 KB))
- dump_flash.pkg // (mirror: dump_flash.pkg (70.23 KB)) (mirror contains pkg to dump NAND and NOR flash on USB0001)
- dump_flash_ptab.pkg // (mirror:dump_flash_ptab.pkg (70.23 KB)) (dump NAND flash on USB0001 ; ptab)
- dump_lv1.pkg // (mirror:dump_lv1.pkg (69.61 KB))
- dump_lv2.pkg // (mirror:dump_lv2.pkg (70.11 KB))
- dump_sysrom.pkg // (mirror:dump_sysrom.pkg (69.67 KB)) (dumps sysrom.bin on any plugged in usb device)
- get_applicable_version.pkg // (mirror:get_applicable_version.pkg (69.3 KB)) (to get the low/high version lock via Debug UDP)
- get_token_seed.pkg // (mirror:get_token_seed.pkg (59.73 KB))
- install_otheros.pkg // (mirror:install_otheros.pkg (61.11 KB))
- install_otheros_bootloader_loader.pkg // (mirror:install_otheros_bootloader_loader.pkg)
- qa_flag.pkg // (mirror:qa_flag.pkg (69.92 KB)) (to enable QA)
- qa_flag_extra.pkg // (mirror:qa_flag_extra.pkg (69.98 KB)) (to enable QA with downgrade)
- reboot.pkg // (mirror:reboot.pkg (59.36 KB))
- reset_qa_flag.pkg // (mirror:reset_qa_flag.pkg (70.05 KB)) (to reset the QA flags back to default)
- setup_flash_for_otheros.pkg // (mirror:setup_flash_for_otheros.pkg (70.11 KB))
Petitboot Images
- dtbImage.ps3.bin // (mirror: dtbImage.ps3.bin (9.32 MB))
- dtbImage.ps3.bin.minimal // (mirror:dtbImage.ps3.bin.minimal (7.6 MB))
Scripts
- clone.sh - clones all repos from git.gitbrew.org/ps3/
- create_hdd_region.sh // (mirror:create_hdd_region.sh (3.77 KB))
- create_hdd_region_ALTERNATIVE.sh // (mirror:create_hdd_region_ALTERNATIVE.sh (3.93 KB)) - alternative ONLY to use when having -8 errors
- dispmgr_access.sh // (mirror:dispmgr_access.sh (2.14 KB))
- enable_wlan_on_fat.sh // (mirror:enable_wlan_on_fat.sh (1.6 KB))
- hdd_access.sh // (mirror:hdd_access.sh (6.22 KB))
- initimg.sh (deprecated : was used to kexec into a special debian img and partition drives for vflash)
- is_vflash_on.sh // (mirror:is_vflash_on.sh (1.09 KB))
- kboot.conf - kboot.conf to go in your linux /etc/
- restore_vflash.sh // (mirror:restore_vflash.sh (1.32 KB))
PS3 Kernels
- PS3 Linux Kernel 060411 // (mirror:ps3linux_kernel_latest.tar.gz (51.17 MB)) - June 4 2011
- ps3-linux-61cc4f2c.tar.gz // (mirror:ps3-linux-61c4f2c.tar.gz (92.35 MB)) - Juli 24 2011
Git
Master Servers
Gitweb Mirrors
Git Mirrors
- git://git.gitbrew.org
- git://storm.gitbrew.org
- git://scottfertig.net
- git://sub.gitbrew.org
- git://foxbrew.org
partial backup
snaphots
- juli 22 2011 snapshot by aKoN-Man:
http://www.multiupload.com/ULBPNLOHJ7 (143.1 MB) http://www.multiupload.com/MDNVQSFL00 (143.1 MB) http://www.multiupload.com/O737BH53N6 (143.1 MB) http://www.multiupload.com/EOG7ABG05F (143.1 MB) http://www.multiupload.com/CSG2IHRESD (143.1 MB) http://www.multiupload.com/AL658V0ZUU (143.1 MB) http://www.multiupload.com/W5BIRAZTUM (143.1 MB) http://www.multiupload.com/BR410045AK (143.1 MB) http://www.multiupload.com/RFPAKBP1BD (27.7 MB)
- sept 15 2011 (.git's for mirror):
ps3.tar.gz (793.32 MB) -or- ps3.part01.rar (95.78 MB) ps3.part02.rar (95.78 MB) ps3.part03.rar (95.78 MB) ps3.part04.rar (95.78 MB) ps3.part05.rar (95.78 MB) ps3.part06.rar (95.78 MB) ps3.part07.rar (95.78 MB) ps3.part08.rar (68.42 MB) note: you need to have git installed, and use it e.g.: git clone E:\ps3\ps3linux\ps3-jupiter.git
- sept 15 2011 (cloned version and site mirror version):
ps3.tar.gz (1.3 GB) (Including wireless slim drivers for linux)
- reupped mirror:
https://mega.co.nz/#!7kESiLKJ!UKITnnPbmRyT-9yhxQgrKvVChLWJccWLmI0Hg3gj4BE https://mega.co.nz/#!XpcnTabA!vnv_2dSOm3lh9YtmU3HT-y_9RFKNoE_B4u7kihuhZVE https://mega.co.nz/#!npt0SBzK!8rhpoCDtNr8DJVjPFipLpe86EoZBqtQuSui2KHIn1yc https://mega.co.nz/#!L5MBzY4K!CDu88krSULhSQJ0a1XP0x46Mjflpha5zqe9Lo2gmd00 https://mega.co.nz/#!rtME1AxA!Gau1xr7V45JT22xozq7kmEhfLtLfwMRCl5-lWsVMI6I https://mega.co.nz/#!GkMSSQbQ!GsLU6BQzko_sAWkA3o_TZ5kLiVJU8qwV6qf3VL0vD6I https://mega.co.nz/#!XkcFkZwI!Sew1EJWvl9ICloDRzDRUz0HHhQ0NgsYqyY_IgIwRngA https://mega.co.nz/#!78F3yQrY!CPY4ljpJVJ2Ldvr4nDQQ-TB-HYmJf4-dIIWRR4MT0QA
Features
- Into HV integrated OtherOS bootloader loader (compatible with OtherOS bootloader on 3.15)
- OtherOS bootloader is booted directly from HV, no GameOS is involved.
- Process of booting OtherOS bootloader loader is very similar to 3.15 method
- Booting Linux from HDD/USB/BD/Network
- Linux with GameOS rights
- Full access to all HV SS services (Dispatcher Manager) from GameOS or Linux
- Full access to all System Manager services
- Ability to create/modify/remove repository nodes in LPAR 1 (e.g. with ps3dm-utils or ps3hvc-utils).
- This ability gives you much power over the whole system because many layers of PS3 use repository nodes to exchange information.
- Enabled QA mode in Update Manager
- Downgrading without USB dongle or Service Mode
- Ability to deactivate/activate HDD/VFLASH encryption (e.g. with ps3stor-utils)
- Support for ps3-utils. You can flash new OtherOS bootloader from Linux e.g.
Petitboot building
See Petitboot
QA Flag
Reports state if you flag your ps3 you will lose all psn .act files making any bought psn content unuseable (warning: these are dev tools, remember this.)
SS Patches
Do not use these pups if you play games (either original or via backup managers). You will get trophy errors.
Registration of the trophy infomation could not be completed. The game will quit. (80010505)
You need SS patches to use ps3dm,sm, and other ps3 dev tools.
Alternative, you can use a firmware without SS patches and use the script below when you need to patch it on the fly:
We're currently working on a patch in petitboot so it only runs when you use linux and not mess with your GameOS for normal game use -> use dispmgr_access.sh
OtherOS++ How-To
Referenced from http://www.gitbrew.org/otheros/
PS3 Models
PS3 Fat (NAND):
- CECHA = 256MB
- CECHB = 256MB
- CECHC = 256MB
- CECHE = 256MB
- CECHG = 256MB
PS3 Fat (NOR):
- CECHH = 16MB
- CECHJ = 16MB
- CECHK = 16MB
- CECHL = 16MB
- CECHM = 16MB
- CECHP = 16MB
- CECHQ = 16MB
PS3 Slim (NOR):
- CECH-20..A = 16MB
- CECH-20..B = 16MB
- CECH-21..A = 16MB
- CECH-21..B = 16MB
- CECH-250.A = 16MB
- CECH-250.B = 16MB
- CECH-251.A = 16MB
- CECH-251.B = 16MB
256MB = NAND, 16 = NOR. Follow Accordingly
Install OtherOS on HDD (for all PS3 models)
All tools are here: http://gitbrew.org/~glevand/ps3/ NOTICE: All my tools should beep. If you don't get beep during one of the steps below then stop doing anything and contact me. I will help. OtherOS++ support: irc.gitbrew.org (ssl) #otheros ALL PS3 MODELS ARE SUPPORTED !!! 1. Install my latest CFW 2. When installation is finished, reboot in Recovery Mode and choose "Restore PS3 System" (not the Backup/Restore in XMB) 3. Now your GameOS should use only the half of your HDD (Currently working on a better approach) 4. Run setup_flash_for_otheros.pkg (for all PS3 models) 5. Reboot (It's important to shut down and turn on your PS3) 6. Store dtbImage.ps3.bin on USB drive, plug it in and run install_otheros.pkg (NAND owners should use dtbImage.ps3.bin.minimal, rename it to dtbImage.ps3.bin). Try different USB ports if you don't get any beeps. 7. Run boot_otheros.pkg 8. Run reboot.pkg (use the package, not manually reboot!) 9. You should be in petitboot now. Exit from CUI to shell or switch to another virtual console. 10. Run script create_hdd_region.sh - rem to CHMOD 755 11. Reboot and boot petitboot again 12. You should see now new HDD device on petitboot, /dev/ps3dd. That's your OtherOS HDD region. Don't touch any other HDD regions if you don't know what you are doing. Use only ps3dd device for your Linux installation. Use parted to partition it and create GPT partition table on ps3dd. GPT is supported by both, Linux and FreeBSD. Be warned, if you damage your GameOS HDD region, GameOS will reformat HDD and remove your Linux HDD region in the process. You have to do the above steps again. Don't mess with GameOS HDD region and GameOS won't mess with your OtherOS HDD region.
For users who installed OtherOS on VFLASH region 7 previously
You have to restore your VFLASH before doing the above steps. Be warned, this step is NOT for NAND owners. 1. Install my latest petitboot 2. Boot petitboot 3. Run script restore_vflash.sh 4. Reboot. GameOS should reformat your HDD again.
Partition the PS3 Drive
1. parted /dev/ps3dd 2. mklabel gpt 3. mkpart primary 0 2GB 4. print 5. mkpart primary 2GB (the rest of the hard drive here.) 6. quit.
In case you need it: full manual of Parted
You may now continue to Install Linux // (google-cache)
PS3:Linux
Example
Generic Guide to install any PPC64 Linux Distro (vflash only)
umount ps3db umount ps3dc wget http://gitbrew.org/~glevand/ps3/scripts/hdd_access.sh chmod a+x hdd_access.sh ./hdd_access.sh kexec -l vmlinuz --initrd of the distro you want to install
Fedora
Installed with Fedora 9 Full DVD Tested on Slim PS3 (3.55) & Phat PS3 (3.15)
When installing Fedora 9, when you are asked about partitioning, choose "Custom layout" and select ps3da.
3.55 (Custom CFW)
umount ps3db umount ps3dc ./hdd_access print|patch|restore? mkdir /mnt/fedora cp /tmp/petitboot/mnt/sr0/ppc/ppc64/* /mnt/fedora kexec -l vmlinuz --initrd=ramdisk.image.gz
Reboot the PS3 and it will start the installer
NOTE: When installing Fedora 9 (possibly all versions), choose "Custom layout" and select ps3da. The hdd_access.sh script disables ps3da-c and makes it so that ps3dd reads as the "first" hard drive. After the installer finishes, DO NOT HIT REBOOT. You must unplug or hardware reset your console.
3.15 PHAT (Stock OFW)
- Put petitboot on a memory stick
mkdir -p /media/usbstick/PS3/otheros/ wget http://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-petitboot/otheros.bld cp ./otheros.bld /media/usbstick/PS3/otheros/otheros.bld
- Boot into GameOS
- XBM>Settings>System Settings>Other OS>
- Settings>System Settings>Default System>Other OS>Yes
- Boot into petitboot and load up a dvd with Fedora Core[2] on it :D
NAND 3.15 Notes before Tweaks
- Your hdd is ps3da. Pay attention to the guide and substitude ps3dd with ps3da
- Know which partitions are which and don't go mkswap'ing your root partition
- Do not use hdd_access to configure your hdds
- You must patch your kernel with glevand's patch / obtain a patched kernel in order to do certain things and compile certain tools.
Tweaks
- umount /dev/ps3dd2
- mkdir /mnt/fedora
- mount /dev/ps3dd2 /mnt/fedora
- nano /mnt/fedora/etc/yaboot.conf
- rename "linux" to "Fedora"
- remove UUID=* from arguments and save
- NAND 3.15 ONLY:change boot from /dev/sdd (or whatever) to ps3da (or whichever drive yours shows up as, not the partition)
- NAND 3.15 ONLY:add root=/dev/ps3da1
- NAND 3.15 ONLY:Example yboot.conf[3]
- nano /mnt/Fedora/etc/sudoers
- append your user under root
- If you cannot write to sudoers file:
- chmod u+w /mnt/Fedora/etc/sudoers
- edit
- chmod 0440 /mnt/Fedora/etc/sudoers.
root ALL=(ALL) ALL snowy ALL=(ALL) ALL
- each time you boot in petitboot, press e on "Fedora" and change ps3da2 to ps3dd2 for both vmlinuz and ramdisk. (temporary)
- Unless you followed the NAND 3.15 ONLY step previously.
- when you boot into fedora for the first time, make the user (same as you did in sudoers) account now.
- when prompted to login hit alt + ctrl + f1
- log in
- sudo su
- nano /etc/udev/rules.d/10-ps3da1swap.rules
KERNEL=="ps3da1", ACTION=="add", RUN+="/sbin/mkswap /dev/ps3da1", RUN+="/sbin/swapon -p 1 /dev/ps3da1"
- nano /etc/udev/rules.d/10-ps3vram.rules
# udev rules to automatically enable swap on /dev/ps3vram # Copy this file to /etc/udev/rules.d/10-ps3vram-swap.rules # Choose only one of the rules below # Initialize and enable swap unconditionally KERNEL=="ps3vram", ACTION=="add", RUN+="/sbin/mkswap /dev/ps3vram", RUN+="/sbin/swapon -p 10 /dev/ps3vram" # Initialize using /etc/fstab and standard init scripts # KERNEL=="ps3vram", ACTION=="add", RUN+="/bin/bash -c '/bin/grep -q ^/dev/ps3vram[[:space:]]*swap /etc/fstab && /sbin/mkswap /dev/ps3vram'"
Fedora is now installed and configured.
Fedora 12, faster way
### Fedora 12 clone installation howto by masterzorag ### This is my console-only base Fedora 12 system, with: Cell SDK 3.1.0.1, OpenCL 0.3, switchable support for 7th spu under opencl or SS; eth0 static ip 192.168.1.203, ssh server running, minimal. assuming here: /dev/ps3dd2 as target root partition, /dev/ps3dd1 as swap prerequisites: petitboot running, accessible ps3dd, anything more 0. grab my image at http://www.filefactory.com/file/c3e8221 1. boot petitboot 2. make your root filesystem: mkfs.ext4 -m 0 /dev/ps3dd2 3. make your swap filesystem: mkswap /dev/ps3dd1 4. make your temp mountpoint: mkdir /FC12 5. mount target partition: mount /dev/ps3dd2 /FC12 6. untar my image onto: tar xjvf FC12.tar.bz2 -C /FC12 7. boot now Fedora via kexec: kexec -l /FC12/boot/vmlinux-2.6.39-gb9133b3-dirty --initrd=/FC12/boot/initramfs-2.6.39-gb9133b3-dirty --append="root=/dev/ps3dd2" reboot 8. Fedora will boots bringing up console login in a flash: login as root, password root 9. Fit your needs about root login, mountpoints, hostname, ip: passwd nano /etc/fstab nano /etc/sysconfig/network nano /etc/sysconfig/network-scripts/ifcfg-eth0 reboot On petitboot reboots, /dev/ps3dd2 is mounted on /tmp/petitboot/mnt/ps3dd2, boot via kexec (or add a kboot entry for): kexec -l /tmp/petitboot/mnt/ps3dd2/boot/vmlinux-2.6.39-gb9133b3-dirty --initrd=/tmp/petitboot/mnt/ps3dd2/boot/initramfs-2.6.39-gb9133b3-dirty --append="root=/dev/ps3dd2" reboot
Fixes
- Problem: You can't use network devices.
- Reason: There is a fixed MAC address in this release that will work only for devices with that particular MAC.
- Solution: Boot this system and then
- Adjust your persistent net rules.
- nano /etc/udev/rules.d/70-persistent-net.rules
- For PHAT: wlan0 and eth0 are one device, so they have same MAC.
- For SLIM: wlan0 and eth0 are two devices, so they have different MACs [NOT TESTED]
- For both: if you're not using additional network cards, it's okay to remove wlan1 and eth1 entries.
- reboot
- Problem: You are stuck at boot, FC12 can't find root partition.
- Reason: The old udev version installed needs devtmpfs mounted after the kernel decompress at boot to mount root partition.
- Solution: Append a parameter to kexec, e.g.: kexec -l /tmp/petitboot/mnt/ps3dd2/boot/vmlinux-3.2.23 --append="root=/dev/ps3dd2 devtmpfs.mount=1"
Debian
Debootstrap HOWTO by glevand (geoffrey.levand@mail.ru) ------------------------------------------------------- Links: * http://www.debian.org/releases/stable/i386/apds03.html.en * https://help.ubuntu.com/6.10/ubuntu/installation-guide/i386/linux-upgrade.html Installing Debian Squeeze with debootstrap on petitboot -------------------------------------------------------- - Configuring the base system 1. umount /dev/ps3dd2 2. mkdir /mnt/debian 3. mkfs.ext3 /dev/ps3dd2 4. mount /dev/ps3dd2 /mnt/debian 5. rm -rf /mnt/debian/* 6. debootstrap --arch powerpc squeeze /mnt/debian http://ftp.us.debian.org/debian 7. mount -t proc none /mnt/debian/proc 8. mount --rbind /dev /mnt/debian/dev 9. LANG=C chroot /mnt/debian /bin/bash 10. export TERM=xterm-color - Mounting partitions File /etc/fstab ---------------- /dev/ps3dd2 / ext3 defaults 0 1 /dev/ps3vram none swap sw 0 0 /dev/ps3dd1 none swap sw 0 0 /dev/sr0 /mnt/cdrom auto noauto,ro 0 0 proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 - Setting timezone 1. vi /etc/default/rcS 2. dpkg-reconfigure tzdata - Configuring networking 1. echo "Name of your computer here" > /etc/hostname File /etc/network/interfaces ----------------------------- auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp File /etc/resolv.conf (cat /etc/resolv.conf, if you see nameservers already skip this step) ---------------------- nameserver 192.168.1.1 - Configuring apt File /etc/apt/sources.list --------------------------- deb http://ftp.us.debian.org/debian squeeze main deb-src http://ftp.us.debian.org/debian squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main 1. aptitude update - Configuring locales and keyboard 1. aptitude install locales 2. dpkg-reconfigure locales 3. aptitude install console-data 4. dpkg-reconfigure console-data - Finishing touches 1. tasksel install standard 2. aptitude clean 3. passwd 4. aptitude install git build-essential ncurses-dev 5. mkswap /dev/ps3dd1 6. swapon /dev/ps3dd1 - Installing kernel 1. cd /usr/src 2. git clone git://git.gitbrew.org/ps3/ps3linux/linux-2.6.git 3. ln -sf linux-2.6 linux 4. cd linux 5. cp ps3_linux_config .config 6. make menuconfig 7. make 8. make install 9. make modules_install If you compile your kernel on PS3 then make sure you activate swap because compiling kernel needs much RAM. I used /dev/ps3dd1 as swap which you have to create with fdisk first of course or some other program. - Creating kboot.conf 1. ls /boot/ 2. edit kboot.conf and replace what you see for > vmlinux-2.6.* from below (example. vmlinux-2.6.38-gf77c53d) File /etc/kboot.conf --------------------- debian=/boot/vmlinux-2.6.* root=/dev/ps3dd2 debian_Hugepages=/boot/vmlinux-2.6.* root=/dev/ps3dd2 hugepages=1 - Creating /dev/ps3flash device (needed for ps3-utils) File /etc/udev/rules.d/70-persistent-ps3flash.rules ---------------------------------------------------- KERNEL=="ps3vflashf", SYMLINK+="ps3flash"
Ubuntu
Debootstrap HOWTO by glevand (geoffrey.levand@mail.ru) (Redone by snowy) (Updated by thom) ------------------------------------------------------- Installing Ubuntu Lucid (10.04) with debootstrap on petitboot -------------------------------------------------------- For different versions of Ubuntu, just change all occurrences of lucid, to natty or whatever build you would like. You can also edit the config files in whatever text editor you would like. Nano and Vi are the preferred text editors - Configuring the base system 1. umount /dev/ps3dd2 2. mkdir /mnt/ubuntu 3. mkfs.ext3 /dev/ps3dd2 4. mount /dev/ps3dd2 /mnt/ubuntu 5. rm -rf /mnt/ubuntu/* 6. debootstrap --arch powerpc lucid /mnt/ubuntu http://ports.ubuntu.com 7. mount -t proc none /mnt/ubuntu/proc 8. mount --rbind /dev /mnt/ubuntu/dev 9. LANG=C chroot /mnt/ubuntu /bin/bash 10. export TERM=xterm-color - Mounting partitions if you want to use nano editor you will need to type "apt-get install nano" without quotes File /etc/fstab ---------------- /dev/ps3dd2 / ext3 defaults 0 1 /dev/ps3vram none swap sw 0 0 /dev/ps3dd1 none swap sw 0 0 /dev/sr0 /mnt/cdrom auto noauto,ro 0 0 proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 - Setting timezone 1. dpkg-reconfigure tzdata - Configuring networking 1. echo "Name of your computer here" > /etc/hostname File /etc/network/interfaces ----------------------------- auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp File /etc/resolv.conf (cat /etc/resolv.conf, if you see nameservers already skip this step) ---------------------- nameserver 192.168.1.1 - Configuring apt File /etc/apt/sources.list --------------------------- deb http://ports.ubuntu.com/ubuntu-ports/ lucid main restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates main restricted deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-updates restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security main restricted deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security main restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security universe deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security multiverse deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security multiverse OR (Use the following if you have trouble with above sources.) deb http://ports.ubuntu.com/ubuntu-ports/ lucid main restricted deb-src http://ftp.usf.edu/pub/ubuntu/ lucid main restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates main restricted deb-src http://ftp.usf.edu/pub/ubuntu/ lucid-updates main restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid universe deb-src http://ftp.usf.edu/pub/ubuntu/ lucid universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates universe deb-src http://ftp.usf.edu/pub/ubuntu/ lucid-updates universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid multiverse deb-src http://ftp.usf.edu/pub/ubuntu/ lucid multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-updates multiverse deb-src http://ftp.usf.edu/pub/ubuntu/ lucid-updates multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-backports main restricted universe multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security main restricted deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security main restricted deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security universe deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security universe deb http://ports.ubuntu.com/ubuntu-ports/ lucid-security multiverse deb-src http://ports.ubuntu.com/ubuntu-ports/ lucid-security multiverse deb http://ports.ubuntu.com/ubuntu-ports/ lucid-proposed restricted main multiverse universe 1. apt-get update - Configuring locales and keyboard 1. apt-get install locales 2. dpkg-reconfigure locales 3. apt-get install console-data 4. dpkg-reconfigure console-data - Finishing touches 1. tasksel install standard 2. apt-get clean 3. passwd 4. apt-get install build-essential ncurses-dev git-core gitosis 5. mkswap /dev/ps3dd1 6. swapon /dev/ps3dd1 - Installing kernel 1. cd /usr/src 2. git clone git://git.gitbrew.org/ps3/ps3linux/linux-2.6.git 3. ln -sf linux-2.6 linux 4. cd linux 5. cp ps3_linux_config .config 6. make menuconfig 7. make 8. make install 9. make modules_install If you compile your kernel on PS3 then make sure you activate swap because compiling kernel needs much RAM. I used /dev/ps3dd1 as swap which you have to create with fdisk first of course or some other program. - Creating kboot.conf 1. ls /boot/ (After running ls /boot/, look for vmlinux... in this directory, and user it's fiel name in the next commmand.) 2. edit kboot.conf and replace what you see for > vmlinux-2.6.* from below (example. vmlinux-2.6.38-gf77c53d) File /etc/kboot.conf --------------------- Ubuntu=/boot/vmlinux-2.6.* root=/dev/ps3dd2 Ubuntu_hugepages=/boot/vmlinux-2.6.* root=/dev/ps3dd2 hugepages=1 - Creating /dev/ps3flash device (needed for ps3-utils) File /etc/udev/rules.d/70-persistent-ps3flash.rules ---------------------------------------------------- KERNEL=="ps3vflashf", SYMLINK+="ps3flash"
Another Way to get Ubuntu on you PS3 ----------------------------------------------- ...is to use an Installer-Disk. 1. Download these ISO [http://cdimage.ubuntu.com/ports/releases/10.04/release/ubuntu-10.04-alternate-powerpc+ps3.iso Ubuntu.10.04.Alternate.PS3.iso] These is the alternate-installation for PS3. Its a rudimentary installer. He is faster than the graphical one of the normal installtaion. 2. Burn to disk it is needed, to burn these image. An installation from usb-pen is with these installation not possible. 3. Installation. Put the CD in the drive and reboot to pettitboot. Choose the first normal installation. Follow the instructions. If you get ask for the partition, my proposal is to use the whole linux-partition. The assistant should choose a port of it for swap. After the installation you cloud chance the swap to ps3vram The installation-process take a quite a while. (3-4h) 4. Post installation it could be that you have to chance the fstab. (which described which /dev ubuntu mount to what you want) From Petitboot go to Terminal. cd /tmp/petitboot/mnt/ps3dd1/etc/ and nano fstab. Ubuntu should run like a weasel (a handicapped)
Post Installation
After you've set up Linux on your PS3... http://wiki.gitbrew.org/index.php/PS3:Tools // (google-cache)
Tools
Information about setting up PS3-specific tools found on git.gitbrew.org can be found at PS3:Tools
Wireless
Setting up wireless requires you to take down networking. You must have a direct connection to your PS3 to continue. More information
- git and build ps3hvc utils
- Get dependencies PS3:Tools#Dependencies
- git clone git://git.gitbrew.org/ps3/ps3linux/ps3hvc-utils.git
- cd ps3hvc-utils
- sudo cp /usr/src/linux-2.6/arch/powerpc/include/asm/ps3hvc.h /usr/include/asm/
- make && sudo make install
- Download glevand's wlan script for your PS3 type: FAT/NAND[4]
SLIM/VFlash[5]. You want this in the same directory ps3hvc-utils is in. - Take down current driver
- sudo rrmod ps3_gelic
- Run enable_wlan_on_*.sh
- chmod +x enable_wlan_on*.sh
- ./enable_wlan_on*.sh
- Bring up new driver
- sudo modprobe ps3_gelic
- sudo /etc/init.d/networking restart
- Test wireless card (by seeing available networks)
- sudo iwlist scan
Enabling Wireless with the latest Linux kernel
You don't need to use WLAN script with the latest Linux kernel anymore. Add the following boot parameter to your kboot entry:
ps3_gelic.disable_eurus_ctrl_iface=1
Attention: It will work on PS3 PHAT models only.
WiFi with PS3 Slim Models
- PS3 SLIM models have a totally different WiFi, USB based
- You have to compile your own kernel first if you haven't done it previously. Also make sure you enable wireless extensions. In my kernel config from GIT repo it's enabled by default.
- Then clone my ps3-jupiter git repository and compile kernel modules: ps3_jupiter.ko and ps3_jupiter_sta.ko
- Load both modules, first ps3_jupiter.ko and then ps3_jupiter_sta.ko
- Install wireless-tools and wpa_supplicant
- Configure wpa_supplicant
- Run wpa_supplicant
- Currently only STA mode (infrastructure) and WPA/WPA2 are supported
Useful links:
How to load ps3_jupiter.ko and ps3_jupiter_sta.ko automatically at boot time:
- Copy both modules to /lib/modules/`uname -r`/kernel/drivers/net
- Run depmod -a as root
Please report any bugs and problems to me because the driver is still in development and i would like feedback from you if you want me to continue. Thanks.
SLES
CURRENTLY ONLY TESTED ON 3.15OFW
- Boot the SLES 11 SP 1 disc in otherOS
- Highlight the install option and press 'e' to edit the entry
- Edit the image= line so it says:
/tmp/petitboot/mnt/sr0/suseboot/linux64.gz
- Change the append line to read the following:
video=ps3fb:mode:3 quiet sysrq=1 insmod=sym53c8xx insmod=ipr
- boot this option
- hit control-c when yast tries to start
- select expert mode, then start shell
- Enable ps3vram swap:
- mkswap /dev/ps3vram; swapon /dev/ps3vram
- if you happen to have any other swap partitions, mount them now
- start the install from DVD and go through it normally.
- Enjoy an actually up-to-date system that's IBM SDK compatible
Enabling Sound
Sound HOWTO by c4pt and durandal
- Check to see that the sound driver is installed
- sudo lsmod | grep snd_ps3
- if your output shows snd, snd_pcm, and snd_ps3, then continue to the next step, otherwise
- sudo modprobe snd_ps3
- if it installs, you're good to go, otherwise, you neen to compile a new kernel
- sudo lsmod | grep snd_ps3
- Connect the ps3 sound device to /dev/sound0
- sudo ln -s /dev/snd/pcmC0D0p /dev/sound0
- Add yourself to the audio group
- sudo usermod -G audio <username>
- Verify that the user was added
- sudo id <username>
- If your username shows audio as a group, move on to the next step
- Install either mpg123 or alsamixer to test the sound, using whatever install tools your distribution has
- RHEL, SLES, OpenSUSE, YDL, fc: sudo yum install mpg123 alsamixer
- Debian, Ubuntu: sudo apt-get install mpg123 alsamixer
- Reboot the console
- sudo reboot
- Play an mp3 to test the sound with either
- mpg123 <some_sound_file.mp3> OR
- alsamixer <some_sound_file.mp3>
Cleaning up Errors
exim4
- Error: IPv6 socket creation failed: No such file or directory
- Solution: Edit "/etc/exim4/update-exim4.conf.conf" so that it has dc_local_interfaces='127.0.0.1' instead of dc_local_interfaces='127.0.0.1 ; ::'
- Error: ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size
- Solution: rm -rf /var/log/exim4/paniclog
Kernel
- Error: Make error 137 while compiling vmlinux.o
- Solution: Activate/make a swap partition
plymouth
- Error: You are receiving this error message as the new udevd in Ubuntu Lucid no longer supports mounting its own /dev mount point.
- Solution:
- Edit your fstab and add:
dev /dev tmpfs rw 0 0
- Add noplymouth nosplash to your kernel options in /etc/kboot.conf. Example:
ubuntu=/boot/vmlinux root=/dev/ps3dd1 video=ps3fb:mode:133 noplymouth nosplash
Alternative (when all else fails) :
dpkg --force-depends -P plymouth
See also: https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/556372
<tuxuser> fixed the plymouth issue :) <tuxuser> dhewg, nope :P I first purged plymouth.. then just reinstalled it <tuxuser> made sure dev /dev mount point is in /etc/fstab, rootdev is first entry and spu is commented out <tuxuser> now plymouth is actually showing and not throwing errors :)
Locales
- Error: perl: warning: Setting locale failed.
- Solution:
- Edit /etc/locale.gen and uncomment any Locales you want the OS to support.
- Example:
en_US.UTF-8 UTF-8
- Re-run dpkg-reconfigure locales (Select packages to install using the spacebar.)
- Solution 2:
- Define it yourself
- Example:
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
Hostname
- Error: unable to resolve host (none) or something like it.
- Solution:
- Make sure your hostname is set in /etc/hostname and it doesn't have any spaces or symbols.
- Edit /etc/hosts and add your hostname:
127.0.0.1 my-ps3-hostname
Enabling 7th SPU with the latest Linux kernel
Add the following boot parameter to your kboot entry:
spu_base.enumerate_shared=1
To disable it at boot time again, set it to 0.
Attention: Enabling 7th SPU on Linux will make most of SS services unusable because they use the 7th SPU !!!
Screenshot of OpenCL running on 7spu
Alternate precompiled Debian kernels
Origin: https://github.com/DirtyJerz/PS3-Debian-Kernels
install: dpkg -i ./*.deb modify kboot.conf as needed that is all.
- linux-headers-2.6.39-ga81e0a7_2.6.39-ga81e0a7-10.00.Custom_powerpc.deb
- linux-image-2.6.39-ga81e0a7_2.6.39-ga81e0a7-10.00.Custom_powerpc.deb
FreeBSD OtherOS++
Crossreference: gitbrew.org::PS3:FreeBSD
FreeBSD can be run on PS3 Slim models from HDD with OtherOS++.
All the freebsd related files should be available here: http://gitbrew.org/~glevand/ps3/freebsd/
- freebsd
- config
- PS3 // (backup/mirror: PS3 (4.22 KB))
- kernel-1920x1080
- kernel // (backup/mirror: kernel (8.25 MB))
- kernel.symbols // (backup/mirror: kernel.symbols (22.56 MB))
- linker.hints // (backup/mirror: linker.hints (5.38 KB))
- livecd
- ps3_freebsd_livecd.iso // (backup/mirror: ps3_freebsd_livecd.iso (341.51 MB))
- loader
- loader-1920x1080.ps3 // (backup/mirror: loader-1920x1080.ps3 (306.45 KB))
- ps3_world.tar.gz // (backup/mirror: ps3_world.tar.gz (113.92 MB))
- config
Cross-Compiling
You can skip this step and use my precompiled FreeBSD world and kernel: (World: [8]) / (Kernel: 480p[9] 720p[10] 1080p[11]) / (Loader: 480p[12] 720p[13] 1080p[14])
You need a running FreeBSD system to cross-compile your PS3 FreeBSD world and kernel, you don't need a PS3 for that, it may be a different architecture. Once this step is done and you have a running FreeBSD system on your PS3 , you can build FreeBSD world and kernel on PS3 itself.
# git clone git://git.gitbrew.org/ps3/ps3freebsd/freebsd.git # cd freebsd # make buildworld buildkernel installkernel installworld distribution TARGET=powerpc TARGET_ARCH=powerpc64 KERNCONF=PS3 DESTDIR=$HOME/ps3_world
When it's finished then you will have a complete FreeBSD world with kernel in directory $HOME/ps3_world.
Edited note: "I removed my git repo because there is no need currently. All my patches are officially in HEAD FreeBSD repository. Just use the official SVN repository or GIT mirrors. Here e.g. http://gitorious.org/freebsd"
Rebuilding Loader
If you want to recompile ONLY FreeBSD loader then after you finished compiling FreeBSD world and kernel, do this:
# cd freebsd # make buildenv TARGET=powerpc TARGET_ARCH=powerpc64 # cd sys/boot # make all install DESTDIR=$HOME/ps3_world
Rebuilding Kernel
If you want to recompile ONLY FreeBSD kernel then after you finished compiling FreeBSD world and kernel, do this:
# cd freebsd # make buildkernel TARGET=powerpc TARGET_ARCH=powerpc64 KERNCONF=PS3 # make installkernel TARGET=powerpc TARGET_ARCH=powerpc64 KERNCONF=PS3 DESTDIR=$HOME/ps3_world
Installation
To install a FreeBSD world on your PS3, you will need a running Linux system first currently. Once i build a LiveCD for PS3 FreeBSD you won't need that anymore. I used Debian to install my FreeBSD on PS3.
First create UFS2 filesystem for your FreeBSD. I assume that there is already a free partition on the HDD of your PS3.
# apt-get install ufsutils # mkfs.ufs /dev/ps3dd3
Then mount it on Debian and copy your PS3 FreeBSD world to this partition, like this:
# mount -t ufs -o ufstype=ufs2 /dev/ps3dd3 /mnt # cd /mnt # tar xvzf /root/ps3_freebsd_world.tar.gz # cp /root/ps3_freebsd_kernel/kernel /mnt/boot/kernel/ # cp /root/ps3_freebsd_kernel/kernel.symbols /mnt/boot/kernel/ # cd # umount /mnt
Booting
FreeBSD on PS3 is booted by the FreeBSD loader which can be executed by petitboot with kexec. The FreeBSD loader is built during cross-compiling of the FreeBSD world and kernel or you can use my precompiled version. It supports booting of FreeBSD from HDD. My precompiled version boots a FreeBSD kernel from ps3dd3. The HDD partition from which it boots a FreeBSD kernel is hardcoded, if you want to use another HDD partition then you have to change it in the loader and recompile it.
Store your FreeBSD loader on a Linux partition, i stored mine in Debian in /boot directory, and added a new kboot.conf entry on Linux, like this:
# cp /root/loader-1920x1080.ps3 /boot # cat /etc/kboot.conf ... ... ... freebsd_loader_hdd=/boot/loader-1920x1080.ps3 ... ... #
- Latest FreeBSD loaders support booting from CD/DVD, so make sure you don't have any CD inserted into PS3 if you want to boot from HDD. Because the FreeBSD loader will always try to boot from CD first.
/etc/fstab
- Make sure you set root device properly else FreeBSD kernel won't be able to mount it
- You can reuse Linux swap partition on FreeBSD.
/dev/ps3disk3p3 / ufs rw 1 1 /dev/ps3disk3p1 none swap sw 0 0 proc /proc procfs rw 0 0
/boot/loader.conf
- You can tell FreeBSD loader which kernel to load at boot time
autoboot_delay="-1" kernel="/boot/kernel" #kernel="/boot/kernel_test"
/etc/rc.conf
hostname="freebsd-hdd" ifconfig_glc0="SYNCDHCP" # for DHCP
Now you can boot your PS3 FreeBSD. Boot petitboot first and choose FreeBSD loader in CUI.
Once, you have a running PS3 FreeBSD system, you can build FreeBSD world and kernel or compile ports on your PS3 itself.
One of the advantages of FreeBSD on PS3 is write access to the GameOS HDD region and the possibility to create valid GameOS HDD partitions.
Ports
Ports allow us to install many useful programs on your FreeBSD.
Extracting ports:
# cd /root # fetch ftp://ftp7.freebsd.org/pub/FreeBSD/ports/ports-stable/ports.tar.gz # cd /usr # tar xvzf /root/ports.tar.gz
Useful programs you will need first:
- wget
- git
- screen
- sudo
- elinks
Live CD
Compiling World
- Change screen resolution in loader and kernel before compiling
- Change frame buffer size in kernel if needed
# cd /usr # git clone git://git.gitbrew.org/ps3/ps3freebsd/freebsd.git src # cd src # make buildworld buildkernel installkernel installworld distribution TARGET=powerpc TARGET_ARCH=powerpc64 \ KERNCONF=PS3 DESTDIR=/root/ps3_world
Compiling Ports
# cd /root/ps3_world/usr # fetch ftp://ftp7.freebsd.org/pub/FreeBSD/ports/ports-stable/ports.tar.gz # tar xvzf ports.tar.gz
# mount -t devfs devfs /root/ps3_world/dev # cp /etc/resolv.conf /root/ps3_world/etc/ # chroot /root/ps3_world /bin/csh # cd /usr/ports # cd shells/bash # make install clean BATCH=yes
Configuring System
/boot/loader.conf
boot_cdrom="YES" autoboot_delay="-1"
/etc/rc.conf
root_rw_mount="NO" hostname="freebsd-livecd" ifconfig_glc0="SYNCDHCP" keyrate="fast" keymap="us.iso" #keymap="fr.iso" #keymap="german.iso" scrnmap="NO" font8x16="iso15-8x16" font8x14="iso15-8x14" font8x8="iso15-8x8" update_motd="NO" syslogd_enable="NO" newsyslog_enable="NO" cron_enable="NO" hostid_enable="NO" sendmail_enable="NONE" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" cleanvar_enable="NO" crashinfo_enable="NO" virecover_enable="NO"
/etc/fstab
/dev/cd0 / cd9660 ro 0 0
Changing Login Shell
# chroot ps3_world # chsh
Creating ISO Image
- Exit chroot
# umount /root/ps3_world/dev # cd ps3_world # rm -f etc/resolv.conf # mkisofs -R -l -ldots -allow-lowercase -allow-multidot \ -V 'PS3 FreeBSD LiveCD' -volset 'PS3 FreeBSD' -hide boot.catalog \ -o ../freebsd_livecd.iso .
Booting Live CD with OtherOS++
Use CUI or
boot FreeBSD loader from petitboot manually:
# First mount CD if it's not mounted already # kexec -l /mnt/cdrom/boot/loader.ps3 (or loader-720x480.ps3 or loader-1280x720.ps3) # reboot
Installing FreeBSD on HDD from Live CD
installing freebsd 9.0 beta 2 to the hard drive by c4pt
step 1 download and burn the freebsd 9.0 beta 2 iso for ppc64 you can get it from here
step 2 remove all your partitions on your internal drive and make the drive gpt
boot into petitboot
##umount /dev/ps3dd1 ##umount /dev/ps3dd2 ##umount /dev/ps3dd
## using parted will delete any linux partition on ps3dd
##parted /dev/ps3dd
##mklabel GPT
##mkpart ext2 1 158000M (158000M here is 158G on my drive if you have 320G you would enter 320000M)
##p
##q
##umount /dev/sr0 ##mount /dev/sr0 /mnt
##cd /mnt/boot
##ps3-video-mode -2 ##kexec -l loader.ps3
##reboot
when the freebsd dmesg boots you are going to get to a mountroot> prompt this is normal because freebsd is trying to load the cd from acd0 which doesnt exist so we have to tell the mountroot> prompt /dev/cd0 which is our sr0 or cdrom drive with the burned iso on disk
##mountroot>cd9660:/dev/cd0 ro (hit enter here)
this will continue to load the freebsd 9.0 beta 2 disc
once in the installer make sure you only format and partition ps3disk3 this is important you dont want to write to gameos or another partition this guide is assuming you are using ps3dd as your linux or freebsd drive and that you are *NOT* using vflash for ps3vflashh partition the disk and on my setup i am using a 154G root and and 4G swap (you can select auto on ps3disk3 and it should setup a swap and root for you) then select whatever you want to install , base , src , ports, doc this is important if you burned the iso you should have done a slow burn for some reason if any of these things fail the checksum test you need to run the installer again and not select anything that failed in order to continue with the installation for me ports.txz and src.txz failed so i could only select base.txz doc.txz and a couple of others then the install finished properly after installing the .txz's files setup your networking and root and user password eventually you will setup everything in the installer accordingly and you will be presented with a 3 choice options (installer) (livecd)
choose livecd
you should drop to a prompt and type
shutdown -h now
that takes care of the install but now how to boot the install?
reboot the ps3 after shutdown -h now is completely done it should say press a key to reboot when it is done
go into petitboot or telnet to petitboot whatever you want to do
then type
##umount /dev/ps3dd ##umount /dev/ps3dd1
##ps3-video-mode -m 2
##mount -t ufs -o ufstype=ufs2,rw /dev/ps3dd1 /mnt
##cd /mnt/boot ##kexec -l loader.ps3
##reboot
and you should now be in 480p booting the freebsd install from the hard drive
some side notes (the installer will only boot in 480i or 480p that is why we use ps3-video-mode also the loader.ps3 and kernel can be fixed to 1920x1080p
using glevand's loader.ps3 and glevand's kernel, you can still use glevand's freebsd work on the kernel and loader sources once in the freebsd install on
the hard drive it is recommended to setup networking and install ports to /usr/ports in order to boot the from the hard drive you have to run the last 5
commands from the guide or 6 commands if you havent't fixed loader.ps3) also note that /usr/sbin/sysinstall will not install freebsd to the hard drive
since the partition utility does not work with /usr/sbin/sysinstall
##ps3-video-mode -m 2 (sets the screen to 480p for the stock loader.ps3 file)
##umount /dev/ps3dd ##umount /dev/ps3dd1
##mount -t ufs -o ufstype=ufs2,rw /dev/ps3dd1 /mnt
##kexec -l /mnt/boot/loader.ps3
##reboot
Links
FreeBSD Handbook: [15]
FreeBSD AvgLiveCD: [16]
FreeBSD LiveCD: [17]
Gitorious - FreeBSD Wiki: [18]
Setting Up A new FreeBSD System: [19]
FreeBSD Development
Crossreference: gitbrew.org::FreeBSD Development
Get in touch with me if you want to help with FreeBSD development because there are only 2 developers currently working on FreeBSD PS3 support :(
Till now 0 applications :( Date: 09/20/2011
TODO List
- VUART support in bootloader
- VUART support in kernel (work in progress)
- System Manager, AV and Dispatcher Manager support in kernel (work in progress)
- UDF support for BD movies
- RSX driver
- Sound driver
- Use CAM framework for HDD driver like in Blu-Ray driver
- FLASH/VFLASH drivers (work in progress)
- WiFi driver (work in progress)
VUART (Bootloader)
- Should be very simple
- Implement common ps3vuart interface which can be used by VUART port drivers
- Implement AV VUART only for now in order to be able to read screen size
VUART (Kernel)
- What existing kernel framework to use or create a new one ??? Maybe UART framework. UART framework is NOT suitable !!!
- Implement ps3vuart_bus.c module which handles VUART interrupts and distributes events to VUART port drivers. ps3vuart_bus should be the child of nexus.
- Each VUART port is a child of ps3vuart_bus module.
- Use siis driver as an example how to implement device children.
- http://fxr.watson.org/fxr/source/dev/siis/siis.c
- VUART port drivers for: System Manager, AV and Dispatcher Manager
- What is the best way to provide access for user space applications ??? Create character devices for each VUART port. But how to synchronize kernel/user space accesses ?
- Provide IOCTL interface for all VUART ports
WLAN
- Kernel modules: if_jpt.c, jpt_sta.c and jpt_ap.c.
- Use WLAN driver an as an example how to implement WLAN drivers which handle 802.11 protocol internally.
- http://fxr.watson.org/fxr/source/dev/an/if_an.c
- http://fxr.watson.org/fxr/source/net/if_tap.c
- IOCTLs for scanning: IEEE80211_IOC_SCAN_REQ and IEEE80211_IOC_SCAN_RESULTS
RSX
- I decided to implement RSX driver for FreeBSD first and then for Linux (sorry Linux fans), not because i don't like Linux but because FreeBSD has no X11 driver and it will be easier to test.
- FreeBSD DRM framework supports PCI devices only currently :-( Platform devices are NOT supported by FreeBSD's DRM framework.
- No choice as to use kernel module with my own user space interface. Yeah, hate me kernel developers, i know, it's ugly but NVIDIA does it too (/dev/nvidia, /dev/nvidiactl and nvidia.ko).
DRM Device File
- On FreeBSD, it's cdev.
- si_drv1 points to struct drm_device
Memory
- There are several types of memory: VRAM (video RAM or memory on GPU), GART (system memory mapped into GPU address space) and CPU (system memory but NOT mapped into GPU address space)
- Implement memory heap managers
- Radeon driver is a good example how to manage VRAM and GART memory heaps. The user specifies memory type, alignment and size. The driver returns the offset of allocated memory region to user. The offset is the handle of allocated memory block.
- http://fxr.watson.org/fxr/source/dev/drm/radeon_mem.c
- Radeon driver supports memory types: VRAM and GART
- Nouveau driver supports memory types: VRAM, GART and CPU
- mmap syscall is used to map memory buffers into user-space. offset passed to mmap syscall is the handle of a memory map created previously with IOCTL DRM_IOCTL_ADDMAP. The handle is returned to user from IOCTL that creates the map.
- http://fxr.watson.org/fxr/source/dev/drm/drm_vm.c
- drmMap just calls mmap syscall and passes map handle as offset.
- Interesting discussion about DRM map handles: http://comments.gmane.org/gmane.comp.video.dri.devel/19657
- FreeBSD DRM framework uses alloc_unr to allocate unique map handles
FLASH/VFLASH
- Use CAM framework to implement flash drivers, it has more advantages over block device drivers
- The drivers are very similar to CDROM driver but they should handle ATA IO commands and SCSI like ps3cdrom driver
- Kernel modules: ps3flash for FLASH/VFLASH and ps3nflash for NOR flash only
Links
- The Design and Implementation of the FreeBSD SCSI Subsystem: [20]
- Writing a CAM SCSI controller driver: [21]
- FreeBSD Kernel Reference: [22]
- UDF 2.6: [23]
- The VFS/VNODE interface in the FreeBSD kernel: [24]
- FreeBSD DRI: [25]
- FreeBSD Device Drivers: [26]
- FreeBSD Kernel Modules: [27] [28]
- NEWBUS Intro: [29]
- Character Driver: [30] [31]
- NVIDIA Kernel Interface: [32]
Cellminer
Auto Installer
Debian: http://git.gitbrew.org/~stackable/script/cellminer-run-ONCE-to-install.sh
Git repository
https://github.com/verement/cellminer
PS3:Tools
General
To ease compilation and finding libraries (which will prevent you from having to edit every Makefile):
- sudo ln -s /usr/src/linux-2.6/include/* /usr/local/include/
Development
Dependencies
Almost all tools require git make libc libc-dev libc6-dev-ppc64
- sudo apt-get install git make libc libc-dev libc6-dev-ppc64
For Debian Squeeze (and possibly other Distros as well?)
- sudo apt-get install git make libc6 libc6-dev libc6-dev-ppc64 libX11-dev
python
- aptitude install python python-pytools
- this installs python and pyopencl
Enable RSX RAM as SWAP
- sudo su -
- swapon -s
- Check current SWAP
- mkswap /dev/ps3vram
- swapon /dev/ps3vram
- vim /etc/udev/rules.d/10-ps3vram-swap.rules
# udev rules to automatically enable swap on /dev/ps3vram # Copy this file to /etc/udev/rules.d/10-ps3vram-swap.rules # Choose only one of the rules below # Initialize and enable swap unconditionally KERNEL=="ps3vram", ACTION=="add", RUN+="/sbin/mkswap /dev/ps3vram", RUN+="/sbin/swapon -p 10 /dev/ps3vram"
- reboot
- sudo swapon -s
- Verify additional SWAP space
Notes
Higher priority means the system will use that SWAP sooner than lower priority SWAP. You want RSX RAM to have highest priority.
OpenSSL for ppc64
Check and make sure you're getting the latest source of OpenSSL[33]
Installation
- wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
- tar -xvzf openssl*.tar.gz
- cd openssl*
- vim Makefile or see 'General' section
- You need to add this option to the end of the CFLAGS option list: -I/usr/src/linux-2.6/include
- ./Configure linux-ppc64
- make
- make test
- sudo make install
Notes
- Modification of header files is needed for non-current kernels.
ps3dm-utils
Dependencies
Installation
- git clone git://git.gitbrew.org/ps3/ps3linux/ps3dm-utils.git
- cd ps3dm-utils/
- sudo cp /usr/src/linux-2.6/arch/powerpc/include/asm/ps3dmproxy.h /usr/include/asm/
- vim Makefile
- Append -L /usr/local/ssl/include -L /usr/local/ssl/lib -ldl to the end of LDFLAGS
- make
Attention: With the latest version of ps3dm-utils you don't need OpenSSL anymore !!!
Notes
- ps3dm-utils requires DEVICE to get information from. Normally, /dev/ps3dmproxy is used.
- If /dev/ps3dmproxy does not exist: sudo modprobe ps3dmproxy
IBM Cell SDK 3.1
This works only on Debian & Ubuntu on PS3 All Tools need download form ibmsdk31.tar.gz
Installation
wget -r -H -A.tar.gz http://www.multiupload.com/T6IFLL5SGD mv */*/*/ibmsdk31.tar.gz ./ rm *multiupload.com* -rf tar -xvzf ibmsdk31.tar.gz cd deb/ dpkg -i openrpm/*.deb dpkg -i devel/*.deb dpkg -i extra/*.deb
Some of these packages have a newer version, You may want to hold (keep back) these packages:
echo ppu-gcc hold | sudo dpkg --set-selections echo spu-gcc hold | sudo dpkg --set-selections
Java 6 IBM
Download from: http://goo.gl/ngV0b
mkdir /opt/ibm/java-ppc64-60/ cd /opt/ibm/java-ppc64-60/
Put ibm-java-sdk-6.0-5.0-linux-ppc64.tgz in /opt/ibm/java-ppc64-60/
tar -zxvf ibm-java-sdk-6.0-5.0-linux-ppc64.tgz chcon -R -t texrel_shlib_t /opt/ibm/java-ppc64-60/jre chcon -R -t texrel_shlib_t /opt/ibm/java-ppc64-60/bin chcon -R -t texrel_shlib_t /opt/ibm/java-ppc64-60/lib
ps3mfw
Dependencies
- TCL 8.5
- wget http://prdownloads.sourceforge.net/tcl/tcl8.5.9-src.tar.gz
- tar -xvzf tcl*
- cd tcl*
- cd unix
- vim Makefile or see 'General' section
- You need to add this option to the end of the CFLAGS option list: -I/usr/src/linux-2.6/include
- ./configure && make && sudo make install
- TK 8.5
- wget http://prdownloads.sourceforge.net/tcl/tk8.5.9-src.tar.gz
- tar -xvzf tk8.5*
- cd tk8.5
- cd unix
- ./configure && make && sudo make install
Installation
Read up on any notes on any experimental options/tasks you shouldn't be using. Ask in #otheros if you are unsure.
- git clone git://git.gitbrew.org/ps3/ps3mfw/ps3mfw.git
- cd ps3mfw/
- rm -rf tasks
- git clone git://git.gitbrew.org/ps3/ps3mfw/tasks.git
You should be able to run the program with ./ps3mfw --gui "false"