Launchpad Entry: mobile-arm-karmic-subarches-in-debian-cd
Packages affected: debian-cd
Adding support for different sub-architectures of the armel architecture to ubuntus build system and produce images for each supported board flavour.
Due to the nature of armel hardware it is required that every board flavour has its own kernel and boot loader. There is sadly no such thing like a standarised BIOS as you find it on x86 based systems nor something similar to open-firmware as you find it on power-pc hardware.
The above requirement enforces that we build separate images for every board flavour in the armel architecture. An image built with the redboot boot loader built for an imx51 board would for example not boot on a OMAP beagle board, either of them need their specific image with the specific boot loader and kernel sub-architecture.
In jaunty the only officially supported armel image we built was aimed at the imx51 sub-architecture so we could get through with a general armel image that was focused at this architecture and did not need sub-architecture differentiation.
In Karmic the situation has changed and we will start to support more than the imx51 sub-architecture. The image build system needs to be adjusted to support building images for multiple sub-architectures.
Luckily our build system already has example code to do this in the form of the ps3 power-pc sub-architecture. Images for such sub-architectures currently follow a specific naming scheme that appends the sub-architecture to the architecture name with a plus sign. We will adopt this scheme for the armel builds as below.
To achieve the implementation of this the following changes to the existing build system are necessary:
- debian-cd/tools/boot/boot-armel which is currently responsible for adding the imx51 specific boot loader code to images will be renamed to boot-armel+imx51. For any further sub-architecture similar scripts will be created with a similar naming scheme.
- The livecd-rootfs script will be changed to use armel+$subarchitecture instead of just armel. Due to the fact that kernel modules are included in the squashfs we will need to build a squashfs for each sub-architecture (this could be avoided through installing all modules for all sub-architectures in the squashfs instead, but would massively increase the size of the live images).
- The different crontab entries on the build server will undergo the same change from armel to armel+$subarchitecture.
- The make-web-indices script will get added support for the naming scheme change and needs properly phrased header lines that are in sync with the vendor branding of the boards.