Hey all,
as we talked many times, maybe we need an iso image which groups all our
releases for a version.
That's a way to have all our development in the same place and released.
For this notes I'll use word "iso" but in the practice we don't need to
have an iso image for downloading and burn to a cdrom, so just we need a
filesystem structure that provides all the stuff to create the
installation media for our final device. With that I wanted to say that
maybe we could just release CRUX-ARM-2.7.iso or maybe
CRUX-ARM-2.7.tar.bz2, but that doesn't matter.
With that in mind I'll explain my ideas about this file to release.
=== Contents for the iso (comments are below for every section)
/packages
/packages/core
/packages/core-hardfp
* directories where store core packages
/packages/opt
/packages/opt-hardfp
/packages/xorg
/packages/xorg-hardfp
/packages/efikamx
/packages/efikamx-hardfp
* directories where store more collection packages (maybe optional)
* efikamx has his own dedicated packages
/boot
/boot/efikamx
/boot/efikamx/boot.script
/boot/efikamx/build.sh
* directories with config files for the bootloader (u-boot, ...)
- boot.script: it's used to generate boot.scr, required for the
bootloader u-boot to boot
- build.sh: script that generates uImage and uInitrd from zImage and
initrd.gz
/initrd
/initrd/initrd.gz
/initrd/initrd.gz-hardfp
* directories with generated initrd images
/kernel
/kernel/efikamx/zImage-2.6.31.14.22-efikamx_20110510
/kernel/efikamx/zImage-2.6.31.14.22-efikamx-hardfp_20110510
/kernel/efikamx/linux-2.6.31.14.22-efikamx_20110510.tar.bz2
/kernel/efikamx/linux-2.6.31.14.22-efikamx-hardfp_20110510.tar.bz2
/kernel/efikamx/modules-2.6.31.14.22-efikamx_20110510
/kernel/efikamx/modules-2.6.31.14.22-efikamx-hardfp_20110510
* direcories with kernel images, sources and modules per device
/tools/
/tools/mkimage
* directory with tools which could be required to create the
installation media
/install/setup
/install/setup.dependencies
* directory with files for the installation
- setup: install script
- setup.dependencies: file that contains all dependencies for the
packages in
the installation media. At least is required to have all
dependencies for core
If other collections will be used then this file should have all
the deps for that
/crux-media
* file required to identify the installation media. Contents like:
"2.7-20111020"
* also identifies the iso
=== Features that could be added as optional or in the future
it would be easy to add more devices like the sheevaplug to this structure
i.e: /boot/sheevaplug/*, /kernel/sheevaplug/*
also it would be easy to add an another optimization
i.e: /packages/core-armv5te, /packages/core-armv7l, ...
=== How can I create an installation media?
Example for the efikamx device (hardfp):
1 - Download the iso image or the tarball (CRUX-ARM-2.7.iso or maybe
CRUX-ARM-2.7.tar.bz2)
2 - Access to contents
a) For the iso you sould burn the image to a cdrom and mount it to
a directory ($ISO_DIR)
b) Or you could mount (-o loop ...) directly the iso image to a
directory ($ISO_DIR)
c) For the tarball you should untar contents to a directory ($ISO_DIR)
For all those cases above we used the variable $ISO_DIR as the dir
where contents are
3 - Prepare (partition, format filesystems, mount) your media
installation device
We used the variable $MNT_DIR as the dir where the media
installation device is mounted
4 - Copy files to them
4.1 - Essential stuff
# cp $ISO_DIR/crux-media $MNT_DIR
4.2 - Boot stuff (bootloader files, kernel image and initrd image)
4.2.1 - Copy files
# cp $ISO_DIR/boot/efikamx/* $MNT_DIR
# cp
$ISO_DIR/kernel/efikamx/zImage-2.6.31.14.22-efikamx-hardfp_20110510
$MNT_DIR/zImage
# cp $ISO_DIR/initrd/initrd.gz-hardfp
$MNT_DIR/initrd.gz
4.2.2 - Configure the bootloader
# cd $MNT_DIR
# ./build.sh
To execute the build script you'll need mkimage
on your $PATH
Some distros like debian has a package for that
called uboot-mkimage, but if not you could use
the one provided in the iso. For that you sould
do something like:
# install -D -m 0755 $ISO_DIR/tools/mkimage
~/bin/mkimage
# export PATH=$PATH:~/bin
4.3 - Kernel sources and modules
# mkdir -p $MNT_DIR/crux/kernel
# cp
$ISO_DIR/kernel/efikamx/linux-2.6.31.14.22-efikamx-hardfp_20110510.tar.bz2
$MNT_DIR/crux/kernel
# cp
$ISO_DIR/kernel/efikamx/modules-2.6.31.14.22-efikamx-hardfp_20110510
$MNT_DIR/crux/kernel
4.4 - Packages
# mkdir -p $MNT_DIR/crux/core
# cp $ISO_DIR/packages/core-hardfp/* $MNT_DIR/crux/core
4.5 - Files required for the installation (without those files you
can still use the media you created for rescue tasks)
# cp $ISO_DIR/install/* $MNT_DIR/crux
=== More ideas
we could create a tiny documentation for covering every device installation:
i.e: doc/INSTALL.efikamx, doc/INSTALL.efikamx-hardfp, doc/INSTALL.qemu, ...
those docs would help us to create the wiki documentation, and also to
wrote scripts that perform the installations
...
=== End of notes :D
Well, what do you think about?
Regards,
--
Jose V Beneyto | http://sepen.mine.nu/
I got it. This first (internal) release built on EfikaMX is ready.
This full hardware floating point release still includes only core
packages (and some opt too) and it has been started from scratch 'cause
ABI incompatibility.
Here the full work:
http://cruxppc.org/~acrux/arm/2.7-HARD/
crux-armhf-2.7-test0-2G_image.xz (935M)
- it's a full working MMC image of my machine that does use ilenia as
ports manager and overlay supervisor. Thus a 'man ilenia' could help.
It has the serial console and sshd enabled and a static IP
(192.168.0.211).
The 'root' pasword is 'cruxppc' as i've a lot of devel machines from
CRUX PPC project and we use to have the same root password everywhere.
The arm ports tree overlay is located 'as local' in /usr/ports/arm .
arm-ports.tar.bz2 (634K)
- it's an archive with ports from the arm overlay
core.tar.bz2 (95M)
opt.tar.bz2 (20M)
pkg.list (3.0K)
- they're archives with the built packages to install as chroot.
crux-armhf-rootfs-2.7-test0.tar.bz2 (107M)
- it's a clean system like the official way.
linux-2.6.31.14.23-efikamx_20110610.tar.bz2 (63M)
linux-2.6.31.14.23-efikamx.config (57K)
- it's the last kernel from genesi git
uImage (3.3M)
bootkernel-modules.tar.bz2 (1.7M)
- they'are boot kernel and modules/firmware
Known issues:
1) wrong file-5.07's output (like on PowerPC) for some kind of files
type. e.g.
root@efikamx:/mnt/DEVEL# file mio
mio: DOS-executable (
root@efikamx:/mnt/DEVEL# md5sum mio
ba52d7e6f0c41a7bcaf49a216864e34a mio
instead it should be..
acrux@killer:~$ file mio
mio: Linux rev 1.0 ext2 filesystem data
acrux@killer:~$ md5sum mio
ba52d7e6f0c41a7bcaf49a216864e34a mio
2) alsa-utils does build but segfault
cheers,
--nico
--
GNU/Linux on Power Architecture
CRUX PPC - http://cruxppc.org/