Gentoo Linux


javaJake

Jacob Godserv
Joined
Sep 13, 2007
Messages
1,773
Location
USA
Website
myhumblecorner.wordpress.com
Why Gentoo?
This will be moved to the Wiki at some point

Gentoo has some major advantages that other operating systems just can't provide, and the fundamental reason behind all these features is that you configure it, from the ground up. You don't have to rumage through the entire system to find out what you can clean and what you should keep. You decide what your Pandora should be able to do, even as Gentoo installs each part!

The result depends on how much stuff a user decides he/she wants, but it usually ends up being lighter, faster, and all around more efficient.

Oh, and I almost forgot to mention that, because Gentoo compiles from source, you don't have to wait to get any new versions ported for you - you can do it automatically. :D

That's why the Pandora is a perfect candidate for Gentoo.

Please Visit Our Website
We're writing all of our documentation and some announcements in our website. Please visit it and the wiki within for the latest information and instructions:
http://gentoo.openpandora.org/
 
2008-11-08 (latest since the move to this forum)
An update for everyone since the last news on the old forums: this project has been laying dormant for a few weeks, but I'm back on it again. I'm getting closer and closer to being able to cross-compile to a virtual QEMU computer.

The "Knife's Edge Edition" repository is being actively worked on. There've been some issues getting it set up, but worst comes to worst I have a backup solution (hint: Launchpad ;) ).

Also, the target was changed to armv7a-softfloat, so if you have anything different, you need to follow the instructions in the opening post again.
 
I don't know much about gentoo, but where does the choice of gcc 4.0.2 come from? I would recommend a much more recent version :)
 
Thanks for the update javaJake, gentoo is my primary desktop distro at home and office and I love it! I'd be very glad to see it running on the Pandora.

I probably won't be looking at any implementation details until I actually have a the Pandora, but I just wanted to say there is some interest here :).

Cheers!
 
Laurent said:
I don't know much about gentoo, but where does the choice of gcc 4.0.2 come from? I would recommend a much more recent version :)
He probably meant 4.1.2, as that's the latest version available through the Gentoo package manager that isn't marked as "testing". Gentoo does a lot of package QA/QC, and marks packages that aren't totally stable as testing. Those aren't downloaded and installed on an installation marked as using "stable" packages, unless the user forces the installation of a "testing" version.
 
Last edited by a moderator:
Laurent said:
I don't know much about gentoo, but where does the choice of gcc 4.0.2 come from? I would recommend a much more recent version :)
We're using gcc-4.3.2, the latest working unstable gcc compiler in Gentoo. The 4.3.2 version still uses a patch from 4.0.2 in its ebuild, but since the patch is old enough, I had to update it so it'd apply correctly.

timothee said:
I probably won't be looking at any implementation details until I actually have a the Pandora, but I just wanted to say there is some interest here :).
Much appreciated! :D
 
Last edited by a moderator:
After installing the base system that you will make available, does emerge'ing require compiling on the Pandora? Or will there be binary packages available.

Also, by compiling from ground up you have a lot of possibilities when it comes to compiler target and settings. I see you're targeting armv7, any idea on the speed advantage this will bring compared to existing distros targeting armv5?

Do consider this post as interest in Gentoo on the Pandora :)
 
DesktopMan said:
After installing the base system that you will make available, does emerge'ing require compiling on the Pandora? Or will there be binary packages available.
binary packages? Isn't the idea of using gentoo that YOU compile the packages with your preferences? :)

I don't want to compil eon my Pandora. I have set up DEBIAN-etch in QEMU for ARM under Windows (Version 0.90 :( ) and installed gcc and friends. Maybe I try to compile on there (for GP2x I have compiled with thte open2x toolchain on my Linux box). What would be a good idea is to do an gentoo install on QEMU. Not that it compile much faster on the QEMU (as compared to the pandora) however, you I think it is more convinient because I then don't need all the dev-packages on my SD cards. You then can copy the binary packages (if that is possible) to the Pandora. Is that possible? Or does "emerge" an "make install" and doesn't generate any packages?
 
Last edited by a moderator:
I also wanted to install Gentoo as soon as I get my Pandora. ;)

I already got a working toolchain for armeb (that's big endian; Pandora is little endian). It's not that hard to set up cross compiling; if it would help you I can write some howto for that. The box I targeted on (NSLU2) unfortunately broke when I finally booted into Gentoo (probably not due to something I could have influenced but a manufacturing problem on the power supply). I took many notes on how I set up everything but sometimes I just linked to gentoo-wiki.com which is currently being restored after a very stupid data center problem (admin lost access to all data because the two hosting companies went crazy at each other). So my howto may have some holes...

I wouldn't recommend compiling on the Pandora; that would just take too much time. However, there's an option at /etc/make.conf you can set to package everything in some directory. That directory can then be shared/copied over network and be used as a binary repository. So you can cross-compile most (not all) ebuilds you need and offer them for public. [Edit: Not sure if that really was in make.conf but at least you can feed emerge the needed options on runtime.]

If enough people are interested in having Gentoo on their Pandora one could set up some trusted repository for public downloads somewhere.

IMHO emulation doesn't make much sense unless you find a ready-to-run Pandora emulator supporting the exact same hardware as the current production batch. Since the Pandora will have a LCD (well, at least when they are deliverable again ;) ) it will be easier (and much more time-saving) to just apply all necessary patches and watch what happens. Once the kernel has booted it's not hard to get the rest working too.

I'm currently at work but I will post some more info on how to do certain things when I am home.
 
This seems like a cool project. I always wanted to try gentoo and see if it ran faster on my laptop but was too lazy to backup all the files before etc. I think this will be good to have on the pandora. When I get my unit I'll try to follow and see if it is a better distro for me than angstrom.
 
I don't see any advantage to using Gentoo on a device line the pandora, where every unit is exactly the same. It would be perfectly possible to create a optimised binary distro like Arch. Which would also save a lot of unnesoserry compiling.
 
Creature XL said:
binary packages? Isn't the idea of using gentoo that YOU compile the packages with your preferences? :)
Gentoo has binary packages for a lot of things, especially the large ones. It makes zero sense for everyone to compile exactly the same on every Pandora. I have considered setting up my home computer to compile packages, if anything it would be a learning experience.
 
Last edited by a moderator:
What about different use flags? The purpose of Gentoo is not just to have WHAT you want the best way possible, but HOW you want it as well.
 
Since javaJake hasn't responded yet (he does a bit of maintaining of the openpandora.org forums) I will try to answer some of the questions/comments made lately. You can track our progress here, https://code.launchpad.net/~gentoo-pandora-...too-arm-pandora

In no deliberate order...
- Hessies: The goal of Gentoo on the pandora is to utilize the functionality of Gentoo-based package library (among other things), that we feel would improve upon the Angstrom-based OS that will be pre-installed.
- Creature XL, DesktopMan: Most Gentoo users, for various reasons, do build their environments from tar-balls and optimize accordingly. Understandably, since the hardware will be initially static and compiling on the pandora can be cumbersome, we as a community can use distcc and a common repository to install Gentoo optimized binary packages which then can be incorporated as each person desires. As a project we are not this far along yet, but please join/contribute on any ideas you have.
- DesktopMan, EnQ: we are using crossdev with the armv7a-softfloat-linux-gnueabi toolchain which with javajake's patch has compiled successfully. I can post the binutils, gcc, glibc versions when I get back home, but they are the most current stable-branch in Gentoo. At this time I have been able to successfully compile a omap patched 2.6.28-r3 kernel with some pandora defaults and busybox. Currently I am working on other base system services so we can get a stable image out for people to start testing with emulators until the real hardware comes out.

Thanks,
Viridior
 
Tinnus said:
What about different use flags? The purpose of Gentoo is not just to have WHAT you want the best way possible, but HOW you want it as well.
Sorry Tinnus, after I sent my previous post I forgot I didn't address your question. We are trying to incorporate as many optimizations as we can, while staying with what we think is reasonably stable. Since we don't have the hardware yet this is obviously problematic at best. Likely there will be people that disagree with some of our methods/optimizations and will want to branch off in their own direction. Please, if you do, let us know if you see any improvements! The first goal of our project is to get a highly-optimized (yet stable) Gentoo image for the pandora that will boot and get us to a command prompt. Afterwards, I believe that a majority of people that will use our image will want to add their own customizations and package choices, and that is highly encouraged. Another good argument for a common repository. I hope this helps.

Respectfully,
Viridior
 
Last edited by a moderator:
viridior said:
[...]we are using crossdev with the armv7a-softfloat-linux-gnueabi toolchain[...]
I am curious about the "softfloat" bit. I know the armv7 has VFPv3 and i checked that one should use the "-mfloat-abi=softfp" to use the VFP unit. However, in the "embedded"-document you link to on your web page there is only "soft" and "hard" listed (see here:).

does all this mean, we wil have to cope with performance loss because we can't use the hw floating point unit?
It is not meant to be a critic, I am just interested :)

I hope you can enlighten me on this topic. ;)
 
Last edited by a moderator:
Creature XL said:
viridior said:
[...]we are using crossdev with the armv7a-softfloat-linux-gnueabi toolchain[...]
I am curious about the "softfloat" bit. I know the armv7 has VFPv3 and i checked that one should use the "-mfloat-abi=softfp" to use the VFP unit. However, in the "embedded"-document you link to on your web page there is only "soft" and "hard" listed (see here:).

does all this mean, we wil have to cope with performance loss because we can't use the hw floating point unit?
It is not meant to be a critic, I am just interested :)

I hope you can enlighten me on this topic. ;)



Thanks for the excellent question Creature XL,

I will immediately confess that I haven't spent too much time tweeking CFLAGS, I been focused primarily at organizing and testing the base system. The link under the Code tab is a reference to the generic Gentoo embedded handbook which we have used as a guide. The actual bzr branch that we are using under /configs/make.conf, uses;
CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp -fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
I don't remember where I gleened this from...possibly elinux.org beagleboard forums, but I did a quick sanity check and it seems right. Let me know what you think. This is the CFLAGS that I have been compiling the base system with, but it can be fixed as necessary, just takes an hour or two to recompile what I already have.

Respectfully,
Viridior
 
Last edited by a moderator:
viridior said:
The actual bzr branch that we are using under /configs/make.conf, uses;
CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp -fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
I don't remember where I gleened this from...possibly elinux.org beagleboard forums, but I did a quick sanity check and it seems right. Let me know what you think. This is the CFLAGS that I have been compiling the base system with, but it can be fixed as necessary, just takes an hour or two to recompile what I already have.
hi again :)

Yeah, the flags look good (though I'd use -O2 instead of -O4)


I just finished installing gentoo on my GF's notebook (which runs windows) in a VirtualBox.
ATM I just started crossdev --target arm-uinknown-linux-gnu :)

EDIT:: Damn! Just realised oyu have a detailed description of how to setup crossdev :(

I never used gentoo and bzr... ;)

maybe tomorrow I try to checkout what you have done :)



EDIT 2:: viridior you have a PM :)
 
Last edited by a moderator:
Creature XL said:
viridior said:
The actual bzr branch that we are using under /configs/make.conf, uses;
CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp -fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
I don't remember where I gleened this from...possibly elinux.org beagleboard forums, but I did a quick sanity check and it seems right. Let me know what you think. This is the CFLAGS that I have been compiling the base system with, but it can be fixed as necessary, just takes an hour or two to recompile what I already have.
hi again :)

Yeah, the flags look good (though I'd use -O2 instead of -O4)


I just finished installing gentoo on my GF's notebook (which runs windows) in a VirtualBox.
ATM I just started crossdev --target arm-uinknown-linux-gnu :)

EDIT:: Damn! Just realised oyu have a detailed description of how to setup crossdev :(

I never used gentoo and bzr... ;)

maybe tomorrow I try to checkout what you have done :)



EDIT 2:: viridior you have a PM :)



Took me a little bit to figure out how bzr works, hope this helps get you started
$mkdir -p /usr/local/build;cd /usr/local/build
$bzr whoami "John Doe <john.doe@gmail.com>"
$bzr branch lp:gentoo-arm-pandora

Once you have synced with the latest trunk branch you can check out the ./gentoo-arm-pandora/README for the guide to get you going. I have tried very hard to document every step I've taken along the way, if you see any discrepencies and/or get different results let me know and preferably add a bug on LaunchPad. javaJake made a nice little script ./gentoo-arm-pandora/bzr-update that we use to maintain our branches. ./gentoo-arm-pandora/docs/README should get you going for crossdev and base-system install. Please let me know if you have any problems... **ducks and hides**
 
Last edited by a moderator:
Back
Top