Configuring foreign packages without qemu in order to boot a system
I've recently been looking into using Emdebian on the Ben NanoNote, which is
typically supported by an OpenWrt-based kernel and distribution, and I've
reached the point where I can persuade the system to boot Emdebian directly
from an SD card.
However, to get to this point, I have to rely on the existing OpenWrt
distribution to boot the device, log in, and then enter the Emdebian system
root using chroot in order to run "dpkg --configure -a". Once this has been
done, the device will boot into the Emdebian system.
This configuration step appears to be the necessary measure to permit the init
mechanism and various related activities to function. I suppose that not all
packages need to be configured, but some configuration seems to make the
difference between a functioning and non-functioning system.
The general advice about package configuration...
...seems to be mainly divided between booting into a device and running dpkg
(or performing a second-stage debootstrap if that is the tool of choice) or
using qemu. Obviously, in my situation, I can't boot into Emdebian without
having first performed the configuration step, so this supposedly leaves me
with the fairly undesirable option of using qemu.
I did wonder, however, whether there are any known techniques for configuring
just enough of a system on the build host so that the init mechanism can
complete its work on the target system and then allow the proper
configuration to occur. Previously, I had hoped that multiarch installations
might alleviate the problem of package configuration really wanting to run
native programs, but I imagine that readers of this list would be aware of
more elegant solutions to this problem.
Alternatively, I wondered whether there might be any way of deploying a "first
boot" script to perform configuration on the target system. I see a script
apparently suggested for this kind of thing...
...but I'm not sure whether the author of that suggestion intended such
scripts to be deployed in such a fashion.
I would certainly appreciate any advice on this topic. Emdebian promises to
make a lot of things easier when developing for embedded devices like the
NanoNote - just the availability of numerous packages for different
architectures is a real time-saver - and I'd like to be able to offer some
concrete documentation to help people start using it without there being too
many complications involved.