[some of you got a version of this by private mail, but there's no real reason to limit the distribution...]
Hi guys,
I had this blueprint assigned for 2013.02:
https://blueprints.launchpad.net/lava-dispatcher/+spec/calxeda-highbank-supp...
and unfortunately I didn't get time to implement it completely. I did make some progress, in terms of a general idea and a start of an implementation. I'm braindumping here so that if someone tries to work on this while I'm on leave they don't have to start from scratch.
The general idea is similar to the way master images work for developer boards, but instead of the master image living in another partition of the device's storage it lives in an initrd that can be booted via PXE. If you poke around on gateway starting with /etc/dnsmasq.conf you can see how this works.
The way I've been producing the initrd's so far is by having this:
http://paste.ubuntu.com/5563262/
in a file called /usr/share/initramfs-tools/hooks/master-extras on calxeda02-00-00 (it has quantal installed, user: ubuntu, password: mypassword), running sudo update-initramfs -k all -c and scp-ing the generated initrd into the appropriate location on gateway. This is all very tedious, but it's worked so far...
The other side of course is some dispatcher code to drive it all. I have started this here:
http://bazaar.launchpad.net/~mwhudson/lava-dispatcher/highbank-support/view/...
but I haven't even tried to run this once so it's probably full of all sorts of stupid errors. It also contains a good deal of cut-and-paste from master.py -- probably some kind of base class would make sense in the end there. I didn't want to put a web server in the initrd so my plan was to use netcat -- but http provides a little more guarantee that the transfer actually worked, so maybe getting _some_ kind of httpd in the initrd is worth it, I dunno.
Currently it expects the "hwpack" to just be a deb of the kernel which is installed via dpkg -i chrooted into the unpacked rootfs to generate the initrd and put the dtb in the right place and all that sort of thing. It's unclear if there will ever be "real" hwpacks and linaro-media-create support for highbank -- and dpkg -i-ing the kernel deb is all this would do anyway really.
Some random follow on points:
* Bootloaders are loaded via a completely different mechanism for highbank, so support for bootloader testing will have to be done differently (in very vague outline it would be a bit like vexpress I suppose)
* There has been some interest in automatic testing of netinstallers. The above wouldn't enable this.
* Testing netinstallers and PXE booting in general will require some level of dynamism in the configuration of network booting, obviously. There are a few ways this could be done:
* Do netbooting explicitly by talking to u-boot (i.e. no PXE)
* Have dnsmasq point at a tftp service that is not backed by the filesystem so we can generate PXE configs on the fly according to how we want to test a device at a particular time (MAAS, Canonical's metal-as-a-service product, works like this).
* Somehow put each device being tested in an isolated vlan/broadcast domain with a per-test DHCP implementation. Would be nice but sounds hard in many ways.
* There's no inherent reason why we couldn't put the master image in an initrd for developer boards, which would relieve us of the need to muck about with partition indices.
Cheers, mwh
linaro-validation@lists.linaro.org