Notes about the installer for CRUX ARM
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/
* Jose V Beneyto (sepen@crux-arm.nu) wrote:
Hey all,
Hello! A very big agreement from here. I like all those ideas. Putting hands on them will show us problems and more ideas. [...]
=== 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, ...
Both are really interesting for a future. [...]
=== 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, ...
This sounds really well too. We can provide the info directly in the media and it can be used in the wiki too (or in the reverse way)
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?
Lot of ideas here and all are great. Good email with Very detailed info which makes it better. Thank you very much for your work and this explanations.
Regards,
Regards, Victor. --- Learning bit by bit Victor Martinez | http://lokalix.dyndns.org
participants (2)
-
Jose V Beneyto
-
Victor Martinez