Re: Hi, and embedded routers
+++ David N. Welton [04-07-12 12:50 +0200]:
Another thing that is in my mind with regards to an embedded Debian
system is: how to keep my customized version in sync with new debian
packages? Of course, at a certain point, you're likely to just grab
certain versions and stick with them, at some point in the future you
may wish to update, and at that point you need to keep track of and
merge your changes.
This is a real issue for making this useful to people. I'm currently using
open embedded a lot and this is one thing it does really well.
Yes, I've been looking at that system too. Truth be told, I think
getting a good build system going is probably the most important thing.
Some opinions that are starting to gel in my mind after having looked
*) OE is really fiddly. It's got too many options and overrides and
schemes to do things. It's got its own packaging system and a bunch of
*) Also, OE just grabs esentially random collections of packages.
Debian, OTOH, has nice groupings of packages that are pretty well taken
care of and, hopefully, integrated with one another. This integration
*) .debs and the debian source package format aren't really ideal for
embedded work. I'm working on a pretty large (space requirements)
embedded system, and even that doesn't take too long to build. Going
through .debs starts to feel like a hack. The source format doesn't
work as well as it could because the diffs are all bundled up together,
rather than in patch sets.
Essentially emdebian needs a 'build world' scheme, and that scheme needs to
be able to patch packages with local changes before/during the build.
This isn't something we have worried too much about yet as we have a whole
load of more basic things to sort first.
Currently we are working on the mechanisms and tools to cross-build small
One thing that is currently missing is target-side dependency
management, which it seems to me is something we do need to do to make this
really useful, so you can say 'build image' and it goes off and does
everything needed. This will require some changes to debian packages to
distinguish between build dependencies which need to be on the target and
build-dpes that need to be on the host. A hueristic should get this right
most of the time, but that may not be sufficient...
This is tougher than with regular Debian, because regular Debian aims
for the general case - compiling packages with as many options as
possible, even better if they are loadable modules or configurable at
runtime. I know there are cases where I've hacked Debian packages for
the system I'm building to not depend on something it previously needed.
So yes, that's necessary, but it should be very easy and straightforward
I think there has got to be a big 'market' for a high quality, open
source, configurable generator of embedded systems, but the race is
still wide open. It's got to be something that's relatively simple to
get started with - most likely having a few sample setups that are very
easy to get working, in order to get people interested, and confident
that they can use the system. It's got to be very configurable - moreso
than Debian - so that The Package System does not get in the way.
So what might that system look like? I'm less certain about that,
*) It Probably uses Debian patched versions of packages as a starting
point, because of the integration they provide. Beyond that, maybe it's
best to avoid too much integration with Debian - it would be nice if the
whole thing worked on other OS's (that's a plus for OE), including
building its own toolchain.
*) Lets you have your own patches, separated out into their own files,
not as part of debian diff.
*) Does not require modifying 1000 things to get the system started! It
should be able, on a more or less standard x86 system, to make it spit
out a small x86 system for people to test out with bochs or the like.
*) Build system to recreate entire system from sources. Going from
sources to .debs to installed system is probably just going to slow it
down. Better to go from sources directly to the installed system?
David N. Welton