Skip to content

Creating a bootable DVD for PlayStation 2 Linux

faissaloo edited this page Dec 31, 2020 · 4 revisions

One alternative to a DVD is to boot Linux from a USB device.

Using FreeDVDBoot and wLaunchELF+autostart a bootable DVD for the PlayStation 2 can be created that does not require further modification to the console (no FMCB or modchips, for example).

  1. This guide is expected to work with models SCPH-7xxxx and SCPH-900xx. Other models may need additional steps. Review PlayStation 2 Linux hardware model compatibility for more details.
  2. Download the compressed ISO image https://share.dmca.gripe/dl/9Zbm8Tdz4DvLXUGB.7Z (257,698,931 bytes)
  3. Verify that the downloaded 7z archive file has SHA256 2e4d34caea43247e79b9adce9ea263a0d83951200266d82974a9cdfca8426b73
  4. Extract and and mount the image
  5. Copy the data in the image to a directory you can write to
  6. Replace ./BOOT/INITRD.GZ (the Black Rhino initial ramdisk) with your version of initrd.gz
  7. Replace ./BOOT/VMLINUZ.GZ (the 2.4 kernel) with your version of vmlinuz.gz
  8. Delete ./DISC.BIN (this is used as a basis for the temporary rootfs by Black Rhino, it's not relevant to us)
  9. If your kernel needs specific parameters modify CONFIG.TXT accordingly
  10. Run ./BUILDISO.SH
  11. Rename ../BLACKRHINO.ISO to whatever you want, this is your image
  12. Use Brasero or some other tool to burn the image you've created to a DVD-R (do not use any other type of burnable disc)
  13. Throw it into your PlayStation 2 and enjoy Linux!

Notes on the downloaded image

The image downloaded is the small version of Black Rhino Linux 3 for PAL consoles without modchips, with the VIDEO_TS/ directory replaced with the one from FreeDVDBoot which in turn has had the ELF it starts (VIDEO_TS/VTS_02_0.IFO) replaced with wLaunchELF+autostart which is needed because some ELFs have trouble being executed directly by FreeDVDBoot, particularly KLOADER.ELF, presumably because FreeDVDBoot does not prepare the sort of execution environment homebrew expects. LNCHELF.CNF is then added to the DVD in order to point to the ELF we'd like to run.

Notes about launching different ELFs

The bundled KLOADER.ELF may not work for all kernels, if you'd like to launch a different ELF add it to the directory and change the AUTOSTART_ELF setting in LNCHELF.CNF to point to the ELF you'd like to execute.

Notes about R5900 Linux distributions and kernel versions

Linux 2.x kernels will run the Black Rhino distribution, but 4.x and 5.x kernels will not for the following reasons:

  • Black Rhino has R5900 128-bit multimedia instructions (LQ, SQ, PEXTLB, PEXTLW and so on in for instance /lib/ld.so). MMIs are not yet supported with 4.x and 5.x, see issue #5.
  • Linux 2.x kernels are not IEEE 754 compatible, unlike 4.x and 5.x kernels, as explained in issue #3.

The current distribution for 4.x and 5.x kernels is Gentoo Linux for the PlayStation 2.

Using the DVD to boot from USB

wLaunchELF+autostart will by default use the LNCHELF.CNF on the DVD, however if a USB drive is plugged in it will instead use the LAUNCHELF.CNF on that device. If a USB is inserted and left unconfigured wLaunchELF will appear to the user, however if a AUTOSTART_ELF is set in the LAUNCHELF.CNF on the USB it can be used to boot an ELF that is on the USB (or any other device for that matter). For example, the Linux distribution on your DVD may elect to install itself to a USB, during this installation process it could create this LAUNCHELF.CNF file on the USB drive so that on next reboot the ELF that starts the Linux installation on the USB will be used instead of the DVD. This is important for two reasons: the CDVD drive on the Playstation 2 is prone to failure so it is best to avoid using it too much, additionally when booting from a DVD the filesystem is temporary as DVDs are read only.