Embedded Gentoo?
An anonymous reader writes "Gentoo Linux may soon begin showing up in consumer gadgets, thanks to a new project creating an embedded version of Gentoo Linux. The year-old project has achieved preliminary releases on x86, MIPS, PPC, and ARM. The releases include native core system binaries, along with toolchains for native or cross-platform compiling. Native compiling, eh... considering it's Gentoo, how long would X take to compile on an iPAQ? :-)"
Using Gentoo ebedded makes total sense, since you can customize it during install to be as big or small as you want.
as for the compiling joke, it's pretty old, and partially untrue if you use binaries during emerge (much like FreeBSD's pkg_add). Nonetheless, please read Dispelling the myths of Gentoo Linux, an honest review, and learn before you flame. After that, go on using whatever Linux distro you prefer.
CB
free ipod and free gmail!
Compiling from scratch would be insane. The easiest way to accomplish this would be to put cross compiling tools on a host machine and build your iPAQ or whatever in a chrooted environment. After which you would transfer your build.
$0.02
PS:
Cross compiling tools are part of this project.
"Be kind, for everyone you meet is fighting a hard battle." -- Plato (427?-347? BC)
Any gentoo-embedded specific ebuilds get renamed to wee-builds.
Well, Debian for one. In fact, Debian supports x86, Motorola 68k, SPARC, Alpha, PowerPC, ARM, MIPS, PA-RISC, IA-64, and S/390 architectures. Porting to the AMD64 and Hitachi SuperH is also underway. Note that the 68k, PowerPC, ARM, and SuperH are all popular for embedded applications.
Why Gentoo?
Well, that is pretty easy. For one, we're not charging people for it, which puts us ahead of a ton of the competition right out of the gate. The second is that using portage to build your system, you are capable of building in exactly what you want.
If you're not familiar with the embedded arena, then you should probably know that pretty much every embedded project is done from source. There simply is not enough overlap between individual projects to allow for a "precompiled" solution to really be effective.
I really am not the best person to comment here, as the guys working on the embedded project are definitely the experts, but these are the few things that I have picked up just from reading around.
Helloooooo distccd.
I have a P2/300 Mobile, a Celeron 450, and a P3/600. Compiling stuff with distcc set up is a breeze and I fail to see the complaints about gentoo compile time...of course, they're all bare-bones console-only systems (firewall, mail/web, and fileserver), but you get the idea. Two of them only have 128MB of ram...
Please help metamoderate.
I am an embedded software engineer, so hopefully I know what I am talking about. I work with ARM chips, and every linux system that I have built has been compiled from scratch. Not because I want to, or because I am some kind of speed freak - but because in general there are not any up to date binary packages for ARM available. Or if there are you often find that they are not compiled quite right for your particular needs.
Using a Gentoo like system to cross-compile apps with the options, etc that you need is an excellent idea. Some features that I would like to see in this project
o Keep the code for a package unpacked, so that I can make code changes to that package, recompile it & the package management system will build my changes into the binary. Updating the package version could auto merge my changes.
o Auto generation of root directories, in the file format you want (ie, nfs, cramfs, initrd, etc)
o Able to maintain several different configurations at once, ie one Gentoo maintained set of packages for my iPaq, and one set of packages maintained for my custom device. And to completely rebuild them I could go "emerge -set-board iPaq; emerge -u world"
There's nothing about Gentoo that says you have to compile stuff from scratch. And with embedded devices, it's all going to come pre-loaded anyway. Apparently, Gentoo is very good for building specific, shrunken-down distributions, like the recently-released FlashLinux project. Gentoo lets them optimize the packages very easily, to shring down binaries, etc. This is a pretty big concern with embedded devices.
I don't think anyone would really suggest compiling anything big on your PDA.
-3Suns
~~~~
The Revolution will be Slashdotted
> Many people want Gentoo for the portage system and not nessesarly for the
> advantages of running the most super optimized kernel possible.
Bleh, for the upteenth time:
1) Completing stage3 (whether by unpacking a stage3 tarball or bootstraping plus "emerge system" from previous stages) will net you the base system which is, well, basically complete with all the required system packages FOR WHICH THERE IS NOT CHOICE. Gentoo, is all about choice, so there's still a few things you need to add: your choce of a system logger, cron daemon, and your own customized kernel. There is a utility called "genkernel" which will set you up with a generic kernel, but in most cases this is Considered Harmful. So most users who start from stage3 should still end up with a fairly "super optimized kernel"
and in response to some of the grandparent posters:
2) Installing from a stage earlier than stage3 is ONLY advisable if:
a) No reasonably optimized stage3 tarball is available for your particular subarchitecture (unlikely)
--OR--
b) The default CFLAGS="-O2" optimization is insufficient for your taste.
3) Realize that even if the stage3 tarballs aren't exactly what you're looking for, they are most likely still close enough that it makes sense to use them to avoid a lengthy install. Bootstraps can fail pretty easily -- even "emerge system" has it's quirks. And in the long run, once your system is up and running, future "emerge -uD world" updates will gradually replace those horribly unoptimized pre-built stage3 packages you've had to endure... (ha!)
The unofficial
as an embedded systems developer and a gentoo user, i'll tell you that my company certainly will not be putting a gentoo system into our devices. we might look at their kernel if it's good and light. our embedded linux is not much more than a kernel and busybox.
BUT... if you hack up some device and install linux on it, it has huge advantages. you don't have to use some guy's Linux-4-XYZdevice distribution, which might be a mess, never maintained, and poorly supported. you don't have to go hunting for applications that will run on your arch, mess with build scripts to make it build right, and get the patches that will make things run on this processor and with your devices. if you installed linux on your device from 2 years ago that everyone forgot about, you can still have up to date software for it right now. and finally, you have a working ifrastructure of bug reporting and fixing, and a good way to communicate with people doing similar things as you (even if the devices they use are different).
why? because they are automating a HUGE amount of work in creating an embedded linux install.. MOST embedded linux systems have their os rolled by hand. you need to fight to get perl to compile with uclibc, good luck getting python cross compiling without rewriting the makefile system by hand, and many other items that embedded engineers fight with daily. Gentoo is making that task insanely simple.
I have a 9cm by 11cm board that uses a cirrus logic ep9301 processor at 200mhz and draws 9 watts with usb, ethernet, 2 serial 1 rs485, parallel and a CF slot I have 16 meg of flash on board with 64 meg of ram. this thing is a powerhouse in the embedded world and linux is a perfect fit for it. I am designing a home automation system around the device so python or perl will make programming it after the fact much easier.
I can not wait to dig into embedded gentoo.. espically cince it is based on uclibc... a mistake that all other embedded distros make is NOT basing on uclibc.
Do not look at laser with remaining good eye.