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

Re: This was posted on Digg.com -- Linux Distribution blog/article

Jeff wrote regarding 'Re: This was posted on Digg.com -- Linux
Distribution blog/article' on Sun, Dec 11 at 13:00:
> On Sun, 2005-12-11 at 10:49 -0600, Danny Sauer wrote:
> > It does work well on my car's mp3 player, though, as the Gentoo
> > folks have a good system for building a very stripped-down
> > structure which I can then cramfs and copy to the flash card that
> > the system boots from.  I've found that procedure more cumbersome
> > with other distros.  So, ports as implemented in Gentoo seem good
> > for at least the embedded thing, which I think was already
> > established. :)
> Great!  An answer I can sink my teeth into.
> Could you elaborate a bit on this, though?  What kinds of things did
> you want stripped out?  And did you investigate whether you could
> strip them out in a packaged distro, and it turned out to be too
> difficult?  If so, what kinds of difficulties did you find?

That's the thing - with a Gentoo install, I don't have much that
*needs* stripped out.  The only things installed are what I asked it
to install.  Basically, I just want a base perl install, thttpd,
lcdproc, mpg123, and busybox.  The car has a Cyrix 6x86mx, so I'd like
to make sure that things which can use mmx (mpg123, among others) are
built with that support, but not with things like mmx2 or sse.  I'm
building everything static so I don't have to worry about a dynamic
linker, but that does result in slightly larger binaries.  Using
cramfs/squashfs, though, the compression algorithm *should* be able to
find a lot of the similarities when compressing the filesystem, and
I'm not concerned with memory use - it remains well within the 64MB
just running busybox's init launching perl controlling mpg123, with
enough left over to read ahead effectively.

The big draw to Gentoo for this project (I used SuSE before, but
simply copied the binaries and required libraries over to a busybox
base then) is the ease of creating a new buildroot and installroot.
It's quite trivial with emerge to bootstrap a separate build
environment - for example, I've recently been contemplating building
the system with uclibc rather than the full glibc I run on my Gentoo
workstation.  Then I can build in the new environment and install to a
fake root filesystem just as easily.

I've switched over to mostly Ubuntu at home, though, since Gentoo is
such a pain in the butt to maintain, and since so often updates to
packages are marked as stable, but then are either pulled back to
unstable, or remain even though they're unstable.  The thing that made
me switch, though, was when I spent a solid couple of weeks trying to
get some multi-drive firewire enclosures to work on a PPC running
Gentoo, and finally found out that the drives were supported in the
mainline kernels since a long time ago - but Gentoo's kernel patches
removed the support due to being based on a relatively old kernel.
Since then, I've read about several other problems with the Gentoo
kernels which aren't in the vanilla kernels.  That was the nail in the
coffin.  It just ain't cool to patch a kernel to fix a problem on one
person's obscure hardware/software combo without regard to how it'll
affect the hundreds of people using more common stuff, and then saying
"yeah, it's stable".  Testing on one machine does not verify stability
for public distribution.

Sorry, got off on a tangent there. :)  I was *going* to note that I
think there's a good chance apt will get me similar benefits, but I
haven't tried it yet.  I like that Gentoo will build the secondary
build environment easily, though, and will continue to use the same
package repository as on the host system - no duplication or mounting
directories in multiple places, etc.  When I tried to do this with
RPM, I had to install RPM, the RPM database, and all that junk just to
install the packages in a chroot.  It also seems like RPMs have a
tendency to require things that aren't really required.  A contrived
example might be perl's CGI module requiring apache, even though it'd
work fine under thttpd, or even without a web server at all.  I don't
want that.  I just want to put the files in one place, and maybe
record them in another, if at all.  Gentoo does that for me.  Catalyst
looks fairly nice for automating that build process, as well, but I
have yet to actually try it out.  It's poorly documented, much like
most of the Gentoo tools.  Even the source is poorly documented.  I
have a suspicion that docs are partially held back by the 'leet
feeling a lot of Gentoo fanboys seem to really enjoy - almost like
they're guarding the secret info that you'd already know if you were
cool enough to hang out on the secret IRC channel with the developers.
Maybe that's just paranoia, though... :)

--Danny, who only has ~9.75 years of Linux background ;)

To unsubscribe, send email to majordomo@luci.org with
"unsubscribe luci-discuss" in the body.