[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hi, and embedded routers



Wookey wrote:
+++ 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 around are:

*) 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 other stuff.

*) 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 is valuable.

*) .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.

Yes!

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
debian.

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 to change.

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, unfortunately.

*) 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?

Thoughts?

--
David N. Welton
davidw@eidetix.com



Reply to: