Page 1 of 1

Porteus for ARM machines

Posted: 02 May 2012, 15:04
by Ahau
Hi All,

Getting Porteus running on ARM machines has been mentioned a couple of times on the boards now, and I thought it would be useful to start a thread to consolidate efforts and inputs.

The first thing you'll learn when you try to get linux installed on your ARM device is that a separate kernel is required for pretty much every machine; thus, we'll need individuals to step up to act as "sponsors" of sorts for their devices, who will be responsible for patching and compiling a kernel. I'll do more of a writeup on this process as we get more people interested (if we get more people interested)...

For now, to kick things off, here's a link to a new google code page I've started:

http://code.google.com/p/porteus-arm/downloads/list

First and foremost, you need to have a kernel that will boot your device, so you need to search the web if you haven't done so already, to find someone else who has been working to get linux on your device, and has kernel sources available. I started development in the qemu emulator (and can supply a 32-bit x86 Porteus module for those who would like to use it) to get the basics down, and then switched to my ARM device (an Acer Iconia A500). You'll need to install a cross-compiling toolchain for your kernel (more info on that upon request); once you get the kernel to boot on your device using pre-existing configs, it's time to add the AUFS patch, FUSE support, and a handful of other things are enabled -- see this HOWTO for more info on compiling a porteus kernel and adding the aufs patch: http://porteus.org/info/docs/51-develop ... ernel.html

Once you have a kernel booting with AUFS, you'll need to build an initrd (or an initramfs that creates a 'fake' initrd on the fly -- which is what I'm using). The files needed to do this are on the google code page linked above; once again, more info is available from me upon request (just trying to get this posted for now).

After you have a working kernel and initrd, you can throw in the rest of the system files. You'll want to include, at the least, a folder in the root of one of your partitions, called 'porteus', which will contain a file called 'porteus-v1.2-arm.sgn' and the folders 'base', 'modules' and 'rootcopy' (you can copy the directory structure from an existing porteus install), and copy the modules you want from the google code page into /porteus/base. If you're super familiar with Porteus, this is probably enough info to get you going, but otherwise I anticipate a fair number of questions, and I'll update the information here and on the google code page as we move along.

Thanks!

EDIT: As a heads up, I compiled a number of packages on my machine using 'generic' slackbuilds rather than armed-slack style slackbuilds, and didn't specify a '-march' flag. If you experience problems (especially with the XFCE module) let me know -- I've simply put off modifying all of my slackbuilds while I focus on just piecing this thing together (laziness on my part). This should be set at -march=armv4t to maintain compatibility with armedslack 13.37, though armedslack has moved to armv5te in 'current', and I doubt anyone will be booting Porteus into a GUI with XFCE on an armv4 marchine...

Re: Porteus for ARM machines

Posted: 14 May 2012, 10:56
by justwantin
I might have a crack at this when my raspberrypi arrives and if I have the time

Re: Porteus for ARM machines

Posted: 07 Nov 2012, 13:51
by oranus
Thanks Ahau for arm devel.
I want to test your Porteus for arm development but I lack of knowledge about usb boot on Acer Iconia A500. Besides I think our community who has arm based tablet pc needs knowledge about usb boot procedures. Please write general information about what kind of arm based tablet pc support booting from usb flash or sdcard.
If I pass this step I'll test your devel. :)
Thanks...

Re: Porteus for ARM machines

Posted: 07 Nov 2012, 18:46
by Ahau
Hi oranus, thank you for your post!

Do you have an Acer Iconia A500? At this point, that is the only device that I could support with much knowledge. Unfortunatly, you cannot insert a USB flash drive and boot Porteus (or any distro) on this device (or, likely, almost any other android tablet). This is because it is an 'embedded' system, there is no BIOS that can recognize your flash drive and allow you to select to boot from it. Instead, the system is hard-coded to boot a kernel from a pre-defined location. In the case of the Acer Iconia A500, there are two kernels -- standard and recovery. I have replaced the android recovery kernel with a linux kernel with an initramfs that allows you to boot Porteus from the Iconia, an sdcard, or a usb drive.

There is a new bootloader that the folks over at xda-developers have put together which might make this all a little more straightforward, but that bootloader would still have to be installed by the user. I've not done this yet, as I've not been developing ARM for a while.

Each device requires its own kernel, so unless someone else can compile the kernel and patch in aufs and my initramfs, I won't be able to support those other devices. For the Iconia A500, I have a working kernel, but it is dated now and no longer being maintained (2.38.6).

Re: Porteus for ARM machines

Posted: 31 Jul 2013, 07:54
by kyjthakeiv
Ahau wrote:Hi oranus, thank you for your post!

Do you have an Acer Iconia A500? At this point, that is the only device that I could support with much knowledge. Unfortunatly, you cannot insert a USB flash drive and boot Porteus (or any distro) on this device (or, likely, almost any other android tablet). This is because it is an 'embedded' system, there is no BIOS that can recognize your flash drive and allow you to select to boot from it. Instead, the system is hard-coded to boot a kernel from a pre-defined location. In the case of the Acer Iconia A500, there are two kernels -- standard and recovery. I have replaced the android recovery kernel with a linux kernel with an initramfs that allows you to boot Porteus from the Iconia, an sdcard, or a usb drive.

There is a new bootloader that the folks over at xda-developers have put together which might make this all a little more straightforward, but that bootloader would still have to be installed by the user. I've not done this yet, as I've not been developing ARM for a while.

Each device requires its own kernel, so unless someone else can compile the kernel and patch in aufs and my initramfs, I won't be able to support those other devices. For the Iconia A500, I have a working kernel, but it is dated now and no longer being maintained (2.38.6).
I meet the same problem!