Building FreeBSD World
Jump to navigation
Jump to search
Introduction[edit | edit source]
- You can either cross-compile the FreeBSD world on your PC FreeBSD or compile it natively on PS3.
- Unfortunately, you can not change monitor resolution on PS3 FreeBSD dynamically yet. That means, you have to patch the loader and kernel syscon driver for your monitor resolution.
Fetching Source Code[edit | edit source]
svn co svn://svn.freebsd.org/base/releng/9.1 /usr/devel
Or use the head branch (very unstable):
svn co svn://svn.freebsd.org/base/head /usr/devel
Kernel Patches[edit | edit source]
Building World[edit | edit source]
cd /usr/devel # First apply patches if you want # Update LV1 calls cd /usr/devel/sys/powerpc/ps3 awk -f ps3-hv-asm.awk < ps3-hvcall.master > ps3-hvcall.S awk -f ps3-hv-header.awk < ps3-hvcall.master > ps3-hvcall.h cd /usr/devel/sys/powerpc/conf mkdir /root/kernels cp GENERIC64 /root/kernels/PS3 ln -s /root/kernels/PS3 cd ../../.. env MAKEOBJDIRPREFIX=/usr/obj/PS3 make buildworld buildkernel installkernel installworld distribution \ TARGET=powerpc TARGET_ARCH=powerpc64 KERNCONF=PS3 DESTDIR=/root/PS3 cd /root/PS3 tar cvJf ../freebsd_world.tar.xz .
Rebuilding Loader[edit | edit source]
- If you make changes to loader source then you don't have to rebuild the whole world again. You can recompile the loader only.
cd /usr/devel env MAKEOBJDIRPREFIX=/usr/obj/PS3 make TARGET=powerpc TARGET_ARCH=powerpc64 buildenv cd sys/boot make all install DESTDIR=/root/PS3
Rebuilding Kernel[edit | edit source]
- If you change your kernel configuration or make changes to kernel source then you don't have to rebuild the whole world again. You can recompile the kernel only.
cd /usr/devel env MAKEOBJDIRPREFIX=/usr/obj/PS3 make buildkernel installkernel \ TARGET=powerpc TARGET_ARCH=powerpc64 KERNCONF=PS3 DESTDIR=/root/PS3
Installing World on PS3 HDD[edit | edit source]
- Use a PS3 FreeBSD LiveCD
Creating New Filesystem[edit | edit source]
newfs -U /dev/ps3disk3p3
Extracting World[edit | edit source]
- Store your FreeBSD world on a USB drive.
mkdir /tmp/usb mkdir /tmp/ufs mount -t msdosfs /dev/da0s1 /tmp/usb mount -t ufs /dev/ps3disk3p3 /tmp/ufs cd /tmp/ufs tar xvJf /tmp/usb/freebsd_world.tar.xz
/etc/fstab[edit | edit source]
/dev/ps3disk3p3 / ufs rw 1 1 /dev/ps3disk3p1 none swap sw 0 0 proc /proc procfs rw 0 0
/etc/rc.conf[edit | edit source]
hostname="freebsd" ifconfig_glc0="SYNCDHCP" sshd_enable="YES" keyrate="fast" keymap="us.iso" #keymap="fr.iso" #keymap="german.iso" scrnmap="NO" font8x16="iso15-8x16" font8x14="iso15-8x14" font8x8="iso15-8x8"
/etc/kboot.conf[edit | edit source]
- My latest petitboot supports mounting UFS2 filesystems. In this case petitboot will add the FreeBSD boot entry automatically. With old petitboot image you have to mount UFS2 filesystem manually and kexec the file loader.ps3
freebsd=/boot/loader.ps3
|