Editing Debian LiveCD

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[Category:OtherOS]]
=Introduction=
=Introduction=


Line 7: Line 5:
=Creating Initial System with debootstrap=
=Creating Initial System with debootstrap=


 
<pre>
{{Keyboard|content=<syntaxhighlight lang="bash">
apt-get install debootstrap
apt-get install debootstrap


Line 65: Line 62:


tasksel install standard
tasksel install standard
aptitude install binutils gcc make git vim openssh-server sudo wireless-tools wpasupplicant libssl-dev libncurses5-dev
aptitude install binutils gcc make git vim openssh-server sudo wpasupplicant libssl-dev
aptitude  install gcc-spu g++-spu newlib-spu spu-tools
aptitude  install gcc-spu g++-spu newlib-spu spu-tools
aptitude  install parted kpartx cryptsetup libreadline-dev libaio-dev libdevmapper-dev libudev-dev


# Make SSH server start at boot so we could ssh to our LiveCD
# Make SSH server start at boot so we could ssh to our LiveCD
Line 74: Line 70:


aptitude clean
aptitude clean
</pre>


rm -f /etc/udev/rules.d/70-persistent-net.rules
=Creating Root Filesystem=


# exit chroot environment
<pre>
 
exit
 
# Unmount dev and proc
 
umount /root/livecd/dev/shm
umount /root/livecd/dev/pts
umount /root/livecd/dev
umount /root/livecd/proc
</syntaxhighlight>}}
 
=Creating Root Filesystem=
{{Keyboard|content=<syntaxhighlight lang="bash">
cd /root/livecd
cd /root/livecd
mksquashfs * ../root.sfs
mksquashfs * ../root.sfs
</syntaxhighlight>}}
</pre>


=Modifying Root Filesystem=
=Modifying Root Filesystem=
{{Keyboard|content=<syntaxhighlight lang="bash">
 
<pre>
cd /root
cd /root
unsquashfs root.sfs
unsquashfs root.sfs
Line 104: Line 89:


mksquashfs * ../root-changed.sfs
mksquashfs * ../root-changed.sfs
</syntaxhighlight>}}
</pre>


=Linux 3 Kernel=
=Linux 3 Kernel=


* We need a Linux 3 kernel with overlayfs support so we could create a tmpfs over our read-only base filesystem.
* We need a Linux 3 kernel with overlayfs support so we could create a tmpfs over our read-only base filesystem.
* At the moment overlayfs is not supported on Linux 3.5 so it leaves us with Linux 3.4 which doesn't really matter because all my Linux 3 drivers are supported on Linux 3.4 just fine.
* Furthermore, we want to compile PS3 HDD driver as module because in this case we can easily change HDD region flags.
* Furthermore, we want to compile PS3 HDD driver as module because in this case we can easily change HDD region flags.
See my GIT repos:
* http://gitorious.ps3dev.net/ps3linux/kernel-configs
* http://gitorious.ps3dev.net/ps3linux/kernel-patches-34
* http://gitorious.ps3dev.net/ps3linux/kernel-patches-35
* http://gitorious.ps3dev.net/ps3linux/kernel-patches-36
* http://gitorious.ps3dev.net/ps3linux/livecd


=Initramfs=
=Initramfs=
See my GIT repo: http://gitorious.ps3dev.net/ps3linux/livecd
==BusyBox==
* We need a couple of user-space applications to mount filesystems, load kernel modules and so on.
* And make sure you compile BusyBox without any library dependencies.
* I compiled my BusyBox executable on PS3 Linux but you could cross-compile it too but then you need a complete PowerPC toolchain with libc.


<pre>
<pre>
http://busybox.net/downloads/busybox-1.20.1.tar.bz2
tar xvjf busybox-1.20.1.tar.bz2
cd busybox-1.20.1
make menuconfig
make
</pre>
==Creating Image==
{{Keyboard|content=<syntaxhighlight lang="bash">


# Populate initramfs
# Populate initramfs
Line 145: Line 105:
mkdir initramfs
mkdir initramfs
cd initramfs
cd initramfs
mkdir -p bin dev etc lib/modules/3.6.4 mnt proc sbin sys usr/bin usr/sbin
mkdir -p bin dev etc lib/modules/3.4.9 mnt proc sbin sys usr
 
cp ~/busybox-1.20.1/busybox bin/
cd bin
ln -sf busybox sh
cd ..
 
echo 'sda.* 0:6 0660' >> etc/mdev.conf
echo 'sr[0-9] 0:6 0660 @ln -sf $MDEV cdrom' >> etc/mdev.conf
 
cat >etc/modules <<EOF
> fat
> vfat
> isofs
> crc-ccitt
> crc-itu-t
> lzo_compress
> udf
> squashfs
> overlayfs
> ps3_gelic
> ps3stor_lib
> sg
> ps3rom
> usb-common
> usbcore
> ehci-hcd
> ohci-hcd
> usb-storage
> EOF


for mod in fat vfat isofs crc-ccitt crc-itu-t lzo_compress udf squashfs overlayfs \
for mod in fat vfat isofs crc-ccitt crc-itu-t lzo_compress udf squashfs overlayfs \
           ps3_gelic ps3stor_lib sg ps3rom usb-common usbcore ehci-hcd ohci-hcd usb-storage; do
           ps3_gelic ps3stor_lib sg ps3rom usb-common usbcore ehci-hcd ohci-hcd usb-storage; do
     path=`find  /home/glevand/linux-3.6.4-build/lib/modules/3.6.4 -name $mod.ko`
     path=`find  /home/glevand/linux-3.4.9-build/lib/modules/3.4.9 -name $mod.ko`
     cp $path lib/modules/3.6.4/
     cp $path lib/modules/3.4.9/
done
done


Line 187: Line 118:
cd ..
cd ..
cat initramfs.cpio | gzip > initramfs.cpio.gz
cat initramfs.cpio | gzip > initramfs.cpio.gz
</pre>


# Make changes to initramfs
gunzip initramfs.cpio.gz
mkdir initramfs
cd initramfs
cpio -i -d -H newc --no-absolute-filenames < ../initramfs.cpio
</syntaxhighlight>}}
=Images=
=Images=


* vmlinux-3.6.4.xz: http://www.multiupload.nl/D0PYT6HGC0 (MD5 4b5fdb2995fde82e0f6817a7a86fca2c)
* vmlinux-3.4.9.xz: http://www.multiupload.nl/9C1XVAB3RU (MD5 c15903c28b4eaff3524f3c32f491e25e)
* root.sfs: http://www.multiupload.nl/MWDSBR4OJZ (MD5 3ee12e2d351e0bbe1cd7818be23d8973)
* initramfs.cpio.gz: http://www.multiupload.nl/KROXJ799N6 (MD5 8da82022b1c2541dc419619e710a0a3f)
* Tools available on the root filesystem: gcc, spu-gcc, spuisofs, spuldrfs, ps3vuart-tools, ps3sed and all my other PS3 Linux drivers. Everything you need to compile and test various PS3 stuff.
* root.sfs: http://www.multiupload.nl/NERXNME3JJ (MD5 e2ed20d27092105961507de5d7b49ed3)
* In case someone still hasn't figured it out yet, password for root is root and password for glevand is glevand :)
* I enabled DHCP on Ethernet.
* You could use WLAN too but for that you have to modify the root filesystem and configure your SSID and PSK in /etc/network/interfaces.


==USB==
==USB==


* Your USB drive should be formatted with FAT32 filesystem.
* initramfs-usb.cpio.gz: http://www.multiupload.nl/Y084SCQBL3 (MD5 f94b6aec2e5fbbb26f7d466165071469)
* Create '''debianlive''' directory on your USB drive.
* Create '''debianlive''' directory on your USB drive.
* Put vmlinux-3.6.4 (extract xz archive), initramfs.cpio.gz and root.sfs into this directory.
* Put vmlinux-3.4.9 (extract xz archive), initramfs.cpio.gz and root.sfs into this directory.
 
{{Keyboard|content=<syntaxhighlight lang="bash">
$ ls -l /mnt/usb/debianlive/
total 257696
-rwxr-xr-x 1 root root  6746154 Aug 18 17:44 initramfs.cpio.gz
-rwxr-xr-x 1 root root 249835520 Aug 18 17:15 root.sfs
-rwxr-xr-x 1 root root  7288832 Aug 18 17:31 vmlinux-3.6.4
$ ls -l /mnt/usb/
-rwxr-xr-x  1 root root      188 Aug 18 17:30 kboot.conf
</syntaxhighlight>}}
 
* And create kboot.conf in the root directory of your USB drive with this content:
* And create kboot.conf in the root directory of your USB drive with this content:


<pre>
<pre>
debianlive=/debianlive/vmlinux-3.6.4 initrd=/debianlive/initramfs.cpio.gz
debianlive=/debianlive/vmlinux-3.4.9 initrd=/debianlive/initramfs.cpio.gz
</pre>
</pre>


==CDROM==
==CDROM==
(files seem missing)
* initramfs-cdrom.cpio.gz: http://www.multiupload.nl/SA9YK1HFK0 (MD5 f71f8667dc52540136f90a95d7111efc)
* debianlive.iso: http://www.multiupload.nl/TW41UIVAGV (MD5 eeba4fa3428c5d687bada3fd975ea9dd)
* https://www.sendspace.com/file/2negnt (added missing link to debianlive)
* https://mega.nz/#!k1sTXI4a!ANmRDBVYmEdaToauoePNSKvoDl7GXGw0ORNN9ZM0Tfo
* https://www.sendspace.com/file/f8wnpe
* http://uploaded.net/file/vdxmzopu
<!-- https://www.sendspace.com/file/a3bsty -->
{{Keyboard|content=<syntaxhighlight lang="bash">
mkdir -p iso/debianlive
cp root.sfs initramfs.cpio.gz vmlinux-3.6.4 iso/debianlive
echo "debianlive=/debianlive/vmlinux-3.6.4 initrd=/debianlive/initramfs.cpio.gz" > iso/kboot.conf
cd iso
mkisofs -R -J -l -o ../debianlive.iso .
cd ..
sudo cdrecord -v dev=/dev/sr0 blank=fast
sudo cdrecord -v dev=/dev/sr0 debianlive.iso
</syntaxhighlight>}}


=Links=
=Links=


* http://securityfocus.eu/?p=149
* http://securityfocus.eu/?p=149
{{Linux}}<noinclude>[[Category:Main]]</noinclude>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)