Hi all,
thinking about the current state of CRUX-ARM, I had some ideas that I'll
try to explain as best I can.
When we started this project we had a few devices and they also lacked
the ability to boot from a medium (e.g. SD card) and to install CRUX on
a different medium (such as an SSD). There were days when we had to use
a flash card and the installation process was limited to unzip our file
release (rootfs) in the root partition.
Now we have some efikamx smarttop/smartbook devices (thanks to Genesi
CEO) that have an SSD inside and allow to use a bootable either from an
SD card, or perhaps a USB-CDROM, USB stick, etc. That is why I think
we've reached the point where we can think of using an installer as is
done in CRUX.
I propose some ideas:
- Use a initrd or initramfs image with a similar init script like the
one in system/iso.git (CRUX), which should search for and mount the crux
media
- Use a 'setup' script to perform the installation on the user selected
media.
a) the script could be written in 'dialog' like upstream CRUX, but
we must add 'dialog' to our initrd/initramfs
b) for now we can live with a simple shell script
Anyways we must add(*) 'pkgadd' to our initrd/initramfs
(*) is not posible to just decompress the rootfs like we did in the
past, so people should be able to select individual packages
- Use a directory structure similar to upstream where we could find a
directory called crux/ which contains:
- a dir per collection of packages (core, opt, xorg)
- the kernel directory for sources
- tools, etc.
- Also we could think in use an external tool to customize installer
images with the number of packages we want, etc.
I have some other ideas (taken from my own modifications to the original
installer of CRUX) but I believe that for now we could at least to
implement a basic installer.
Naturally there are many things that could have explained in more
detail, but I'd rather get a first impression of your ideas.
What do you think?
--
Jose V Beneyto | http://sepen.mine.nu
There is a great opportunity from Genesi USA and CRUX developers are invited to partecipate.
http://www.genesi-usa.com/event/genesiscrum
By my side, i'm really sorry but i'm already booked up every days with work and studies and family...thus i cannot be there.
cheers,
--acrux
--
acrux <acrux_it(a)libero.it>
little hints i collected these days using this board...
maybe they are usefull.
kernel:
as you already know the best way is still to get sources from the Genesi
overlay here:
http://gitorious.org/efikamx/linux-kernel
To build it, you need to remember to build uImage too because isn't
still automatically done but is, anyway, correctly done using zImage:
cd linux
make menuconfig
make
make uImage
make modules_install
here my working kernel config:
http://cruxppc.org/~acrux/arm/kernel/linux-2.6.31.14.22-efikamx.config
EfikaMX does use an u-boot forks (specific for mx5) that looks for the
bootfile "boot.scr" in the first readble partition on MMC (i.e. SD) and
then on the SSD PATA. It's capable to read ext2/ext3 and vfat and
to hanlde dos partiton table.
you can understand why reading here on line #13
http://pastebin.com/RUvrBuFm
bootcmd=for device in "mmc ide"; do if strcmp ${device} == mmc; then; mmcinit; setenv units "0 1"; else; setenv units "0"; fi; for interface in ${units}; do if strcmp ${device} == mmc; then mmcprobe ${interface}; else; ide reset; fi; for fs in "ext2 fat"; do setenv loadcmd "${fs}load ${device} 0:1"; if ${loadcmd} ${scriptaddr} boot.scr; then; if imi ${scriptaddr}; then; autoscr ${scriptaddr}; fi; fi; done; done; done;
Anyway the safer scenario is that the partition where the kernel image
resides should be a primary one and formatted as ext2 with 128-byte
inodes.
mkfs.ext2 -I128 /dev/mmcblk0p
or
mkfs.ext2 -I128 /dev/sda1
Now we can work on boot.scr
In my scenario i don't use any initrd or others...
This is my working boot.script
http://cruxppc.org/~acrux/arm/boot.script.efikamx
and you can build it to be readble from u-boot with:
mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaMX Boot Script" -d myboot.script.efikamx boot.scr
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0b95:772a ASIX Electronics Corp.
Bus 002 Device 002: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB
Bus 002 Device 003: ID 13d3:3273 IMC Networks 802.11 n/g/b Wireless LAN USB Mini-Card
# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 799.53
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc08
CPU revision : 5
Hardware : Genesi Efika MX (Smarttop)
Revision : 51030
Serial : 0000000000000000
--
GNU/Linux on Power Architecture
CRUX PPC - http://cruxppc.org/
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hi Jose V.,
hi Victor,
Genesi CEO is glady to help CRUX ARM project too.
They are really kind people and long-standing supporters of the CRUX
PPC GNU/Linux project[1] since 2003.
Here there are two Genesi Efika MX Smarttop (i.MX515)[2]+debug_board
with your names... thus I need your address to ship. Faster is better.
The shipment with registered mail from Italy to Spain is 13,00 euro for
each machine. At your opinion you can refund me by paypal after
you'll receive the stuff.
cheers,
- --acrux
[1] http://cruxppc.org/Donors
[2] http://www.genesi-usa.com/products/efika
- --
GNU/Linux on Power Architecture
CRUX PPC - http://cruxppc.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
iEYEARECAAYFAk3B60EACgkQxq34tDeO7LjF4wCfSmAJED3o51HYNLSRrDwI/mjy
fqQAnAsaKZT5tsb29ZkG68GGAPLmGlKy
=5xip
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hi pitillo,
hi all,
i'm going to receive from Genesi some nice ARM based stuff (Cortex-A8)
therefore i'd like to understand how enjoy them with CRUX.
About me... I'm a really long-long-standing CRUX user on x86 and later
on I moved to PowerPC and Sparc64. I also did, from scratch, a 2.4
release full 64bit for my old Sun Ultra5.
I also use x86-64 machines but only with MS products.
I'd like to port and support a CRUX ARM flavour for the only Genesi
Efika MX (i.MX515) as I still interested to maintain alive the CRUX PPC
project.
With CRUX PPC we used to have a kind of PPC overlay managed quite
good from a bot on our own server and with a well tuned port/package
manager like our ilenia[1]. There are a good numbers of ports that must
unavoidably be different from the x86 ones.
Anyway there are other deep differences as CRUX PPC supports both 32
and 64bit archs sharing the same ports tree and it has a bit different
toolchain.
I was thinking to start from CRUX PPC ports tree but 'cause there
already is a your full working ARM port I hope we'll help each others to
understand how I can implement my effort with your nice project and
to help you to improve it if i'm capable.
I'd like to have a full working and well tuned CRUX for this ARM
machines i.e. EABI with HardFloat and SIMD Neon enabled.
I still must investigate on Linaro resources about the best toolchain to
choose but maybe i'll be obliged to choose gcc-4.6 and eglibc.
A native build farm, i guess, is also desirable to implement with
distcc .
cheers,
- --acrux
[1] http://cruxppc.org/Ilenia
- --
GNU/Linux on Power Architecture
CRUX PPC - http://cruxppc.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
iEYEARECAAYFAk28bNQACgkQxq34tDeO7LgfSQCePeZnzTWFxtM4P7x2LxQ3xxps
67sAn36UjRl49QoatgELnReu9+S/+0OD
=ps6F
-----END PGP SIGNATURE-----