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? :-)"
Coral link here
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)
ARM eh? I see some gentoo on my Nintendo DS real soon...
Oh, and anyone who things that a source based distribution would be bad for embedded, the opposite is true. Since its embedded you probably wouldn't be managing packages on it, like if it was say, a portable DVD player. Gentoo is really technically a meta-distro. It would just make it easier to create linux systems for different devices without having to do full on LFS. The compiling would be done once by the developer, then imaged into the devices. But the build would be device specific, meaning it would be as good as it can be.
The GeekNights podcast is going strong. Listen!
Well my laptop emerging kde is a far more effective toaster than the funky chrome one in my kitchen.
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.
Depending on how they set up the cross compile environment this could be a very very good thing.
.mk files and ensuring that I have all the right patches for each package, or even worse porting the packages myself. This is all assuming they set the portage system up so that emerge can be used to send packages to the cross compiler and merged into the root filesystem being created.
Recently I have been doing lots of devel. work to be used on Gumstix. At present I already need to compile the full root filesystem and flash that to the Gumstix, so there isn't much change there, but provided that the emerge and USE system work well without adding bloat like the emerge system itself or Python to the system image, this would make an excellent tool as it would remove the headache of creating
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.
Well, someone has probably already pointed this out but the openembedded.org build system is kinda similar to gentoo in a way. Personally I'd like to see a rubyx or gentoo marriage with openembedded so that developing for embedded devices (a cheap old ipaq H3650 in my case) and keeping the software up to date is made easier. Note that although it is technically feasible to compile on the ipaq cross compiling is orders of magnetude faster and thus worth the setup pain IMHO.
Oh, and to qualify my comment: I'm a wannabe developer, I still haven't gotten an oe build for my iPAQ that I'm happy with.
90% of the wealth is in 2% of the pockets. Bummer to be in the majority.
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
Actually, I suppose it could be ballparked.
When I first started using Linux back in early '93, compiling was about all you could do. (Pre-slackware, Yggdrisil or something was the only distro, I think).
I remember compiling X on my computer, a 486/66DX2 with eight meg of RAM. It took a few days to build. Considering my busted down four year old iPaq is like 166mhz, and has 64 meg of RAM, it'd certainly be doable, probably take a day or so, maybe less.
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.
I would have read about 40-50 comments & all i see if people have serious misunderstanding of this project..
Here is their project goal. From what i read, build in ur PC & move it to embeded device, gentoo style.
2. Project Goals
The intention of the project is to make Gentoo viable for embedded systems. This includes creating a system for cross compiling and building the image for an embedded system on a Gentoo workstation. The base install image should be minimal, with different libc options. Building on this base, the system can be customized for the particular system.
Native compiling, eh... considering it's Gentoo, how long would X take to compile on an iPAQ? :-)"
;-) not Gentoo, native compiling is a great curiosity but simply works for many GNU projects. Great to make impressions on WinCE users, whose usability of the PDA is rather limited in sortiment of apps in comparision with full abilities of linux on the same hardware. I have already converted several coders from windows to linux just by demonstration of my iPAQ running at the same time a web server, python curses app in terminal, Quake1 in dynamic desktop icon and C compilation on background.
Although I am using Familiar Linux on iPAQ (for years
Of course, for serious development or building whole system from the bottom I would rather suggest crosscompilation. iPAQ memory is too small to use templates in C++. And, by the time the build of X11 will be finished, certainly X22 will be the standard....
There you are, staring at me again.