Porteus-ARM for the Raspberry Pi
Posted: 12 Mar 2013, 20:18
**UPDATE**
As of 3/14/2013, this should still be considered a work in progress. This kernel and userland have been verifed to boot into the GUI (LXDE or XFCE), but can probably use some additional tweaking and firmware --please let me know.
See the notes at the end regarding kernel sources if you want to try to compile your own kernel.
To install on the raspberry pi:
Download the precompiled kernel+initramfs and driver module here:
http://porteus-arm.googlecode.com/files ... -14.tar.gz
And download the Porteus-ARM userland here:
http://porteus-arm.googlecode.com/files ... -11.tar.gz
You'll want to unpack both tarballs and copy "kernel.img" from the kernel tarball onto your RPi boot partition (you can rename it and point 'config.txt' to it, I believe), then copy the 'porteus' folder from the userland tarball into your RPi 'root' partition. You'll want it to be in the top-level directory of that device.
Then, copy the kernel driver and firmware module (e.g. 000-kernel-RasPi-3-14.xzm) from the kernel tarball into the /porteus/base folder on your root partition. I am distributing the '000-*' modules along with the kernel, as it contains the drivers and firmware that need to match the kernel for each board.
Note, you may also need additional firmware updates, as described in this guide: http://elinux.org/RPi_Kernel_Compilation
and available here: https://github.com/raspberrypi/firmware
However, until I get one of my own, I'm not sure where all the firmware needs to go. If you need firmware in your 'opt' folder, you'll want to put it in /porteus/rootcopy/opt/, so that it's copied into /opt in your live filesystem.
Thanks!
Kernel Notes:
To generate the kernel, I downloaded Ponce's RPi kernel sources from here: http://ponce.cc/slackware/slackwarearm- ... 1ponce.tgz
I added the aufs patch for kernel 3.2 and reconfigured the kernel as follows:
-kernel compression = LZMA
-Default hostname = porteus
-kernel .config support=M
-pointed initramfs files to a folder on my system with the source files for the Porteus-ARM initramfs (this builds the initramfs into the kernel image so they form a single file)
-allow xz compressed initramfs
-change initramfs embedded to xz compressed
-removed DEVTMPFS_MOUNT
-modifed cmdline: remove ro, rootfstype, rootwait and root=/dev/*, added 'excheat ' with trailing space just in case.
-changed fuse to [*]
-changed squashfs to [*], added "additional option for memory-constrained", Number of frangments cached to 3
-changed loopback device support to [*]
-added aufs, similar to default porteus AUFS configs, with addition of aufs_export, since ponce has added exportfs as a module in his kernel
-changed XFS to [*] (this is so exportfs is compiled directly in rather than as a module, otherwise the build fails due to aufs being compiled in)
UPDATE
3/14/2013:
changed cmdline config to CMDLINE_EXTEND=y
3/14:
added additional XZ decompression support (x86 primarily). This should finally get the system to boot into a true aufs live filesystem
My patched kernel sources can be downloaded here (my .config file is in place and backed up as 3-12-config-- you may need to update it manually with my subsequent changes outlined above until I upload a new source tarball with the updated config):
http://porteus-arm.googlecode.com/files ... hed.tar.gz
As of 3/14/2013, this should still be considered a work in progress. This kernel and userland have been verifed to boot into the GUI (LXDE or XFCE), but can probably use some additional tweaking and firmware --please let me know.
See the notes at the end regarding kernel sources if you want to try to compile your own kernel.
To install on the raspberry pi:
Download the precompiled kernel+initramfs and driver module here:
http://porteus-arm.googlecode.com/files ... -14.tar.gz
And download the Porteus-ARM userland here:
http://porteus-arm.googlecode.com/files ... -11.tar.gz
You'll want to unpack both tarballs and copy "kernel.img" from the kernel tarball onto your RPi boot partition (you can rename it and point 'config.txt' to it, I believe), then copy the 'porteus' folder from the userland tarball into your RPi 'root' partition. You'll want it to be in the top-level directory of that device.
Then, copy the kernel driver and firmware module (e.g. 000-kernel-RasPi-3-14.xzm) from the kernel tarball into the /porteus/base folder on your root partition. I am distributing the '000-*' modules along with the kernel, as it contains the drivers and firmware that need to match the kernel for each board.
Note, you may also need additional firmware updates, as described in this guide: http://elinux.org/RPi_Kernel_Compilation
and available here: https://github.com/raspberrypi/firmware
However, until I get one of my own, I'm not sure where all the firmware needs to go. If you need firmware in your 'opt' folder, you'll want to put it in /porteus/rootcopy/opt/, so that it's copied into /opt in your live filesystem.
Thanks!
Kernel Notes:
To generate the kernel, I downloaded Ponce's RPi kernel sources from here: http://ponce.cc/slackware/slackwarearm- ... 1ponce.tgz
I added the aufs patch for kernel 3.2 and reconfigured the kernel as follows:
-kernel compression = LZMA
-Default hostname = porteus
-kernel .config support=M
-pointed initramfs files to a folder on my system with the source files for the Porteus-ARM initramfs (this builds the initramfs into the kernel image so they form a single file)
-allow xz compressed initramfs
-change initramfs embedded to xz compressed
-removed DEVTMPFS_MOUNT
-modifed cmdline: remove ro, rootfstype, rootwait and root=/dev/*, added 'excheat ' with trailing space just in case.
-changed fuse to [*]
-changed squashfs to [*], added "additional option for memory-constrained", Number of frangments cached to 3
-changed loopback device support to [*]
-added aufs, similar to default porteus AUFS configs, with addition of aufs_export, since ponce has added exportfs as a module in his kernel
-changed XFS to [*] (this is so exportfs is compiled directly in rather than as a module, otherwise the build fails due to aufs being compiled in)
UPDATE
3/14/2013:
changed cmdline config to CMDLINE_EXTEND=y
3/14:
added additional XZ decompression support (x86 primarily). This should finally get the system to boot into a true aufs live filesystem
My patched kernel sources can be downloaded here (my .config file is in place and backed up as 3-12-config-- you may need to update it manually with my subsequent changes outlined above until I upload a new source tarball with the updated config):
http://porteus-arm.googlecode.com/files ... hed.tar.gz