Gentoo Development

Gentoo/MIPS Cobalt: n32 Stage 1 complete

Hi all…

Yep, the first 64-bit userland stageballs for Cobalt are well underway. A stage 1 tarball is being uploaded right as I type this, and Catalyst is just starting up the bootstrap script now to get the stage 2.

I also began a build for µClibc, but I’ve hit technical issues with Portage there, which I need to work through before I can make stages with it.

I won’t mention the link where to download them at this early stage, because these are über-experimental. They’re totally inappropriate to be used as a root userland, even on a crash-and-burn box at this stage, and will likely be that way until at least 2007.0 or even 2007.1. For those who know what they’re doing, I’m happy to provide the links to these experimental builds, ping me on IRC/IM, or shoot me an email.

On other news… the stable 32-bit glibc builds for 2006.1 will soon be moving to a mirror near you.
As always, I’ll keep you posted on the progress. 🙂

Gentoo/MIPS Cobalt: µClibc stages on their way

Hi All…

Whilst forging ahead into new territory for the Gentoo/MIPS project on the n32 front, I also figured now would be a good time to update the µClibc stages for mipsel.

I’ve completed a cross-compile from x86 of an entire mipsel environment, and I’m now just about to set this up to use as a seed stage in Catalyst.  Once this is done and I’ve bootstrapped a system with it, I should be set to build a full mipsel environment.  This will be compiled for MIPS-1 class CPUs, and thus should be compatable with embedded devices such as wireless routers.  Note: This does not mean we will officially start supporting wireless routers.  They are still officially unsupported, and users are very much on their own when troubleshooting problems on these devices.

I’ll keep you all posted on the progress. 🙂

Gentoo/MIPS Cobalt: n32 Stages just a little closer to reality…

Hi All…

Yep, I dusted off my n32 chroot again this morning (it’s 1:22am as I type this), determined to talk some sense into Portage. I figured I’d give it one last time before I invested the time into trying out Paludis (which I may still do yet, I’m hearing lots of good things about it).

So, what’s been holding me up? Well, the issue has been this nagging bug that I couldn’t figure out. Cobalt doesn’t have any n32 stages, let alone NPTL n32 stages. For the most part, I was able to nick the settings out of default-linux/mips/2006.1/generic-be/n32/* copying this into the default-linux/mips/2006.1/cobalt/ directory, and replacing mips64 with mips64el in the CHOST variable.

This worked quite well, but there was still one nagging issue that cropped up when trying to compile various packages, particularly portage itself:

These are the packages that would be merged, in order:

Calculating dependencies... done!
Traceback (most recent call last):
File "/usr/bin/emerge", line 3316, in ?
mydepgraph.display(mydepgraph.altlist())
File "/usr/bin/emerge", line 1650, in display
verboseadd += create_use_string(key.upper(), cur_iuse_map[key], cur_use_map[key],
KeyError: 'elibc'

On further investigation, I noticed that on all the working environments, there was a USE-expand flag: elibc_glibc. This is susposedly set in the base profile, but for whatever reason, my sub-profile transplant seems to have lopped this flag off. Portage would see this, and b0rk when it didn’t know which libc to use. Thus, I tried something… I hacked around it by setting USE="elibc_glibc" in /etc/make.conf then gave it another try. Sure enough, emerge --info now listed the illusive USE flag, and packages started compiling once more.

Right now, I’m rebuilding all the system packages in my chroot (which also has lib64 stuff floating in it). This will hopefully get me to the point of producing a first seed-stage for Catalyst, and will allow stagebuilds to be done for n32 at long last. As for n64? Well, time will tell… it’s certainly a possibility. I’d like to first discover why this USE flag is getting dropped… as setting it in make.conf is not an acceptable workaround IMHO, but it’s better than nothing.

I shall keep you all posted on my progress. 🙂

Gentoo/MIPS: New Cobalt Stage 3 Uploaded, and Documentation to review…

Hi All…

A few days ago I mentioned I’d be uploading the new stage 3 tarball for Gentoo/MIPS… I’ve now done this, and for now, you can find it in my devspace. Cobalt users… please give this stageball a try and report back… I’d like to get things checked out early before I get it pushed out to the mirrors.

Also needing attention, is the handbook. My draft version has been updated with the new profiles I mentioned in my last post, as well as other corrections. Any typos, mistakes, ommissions… please let me know. 🙂

Regards,
Stuart Longland

Gentoo/MIPS Cobalt 2006.1 Stage 3

I’ve finally completed the Gentoo 2006.1 stage 3 tarball… I’ll hopefully be uploading this on Tuesday when I’m next at uni.

Over the next week, I’ll be updating the handbook, and putting together some new netboot images. Things to look out for — the profiles have moved somewhat since the last release.

The profiles are now arranged as follows (Comments mine):

stuartl@beast /usr/portage/profiles/default-linux/mips $ find . -type f -name make.defaults -exec dirname {} \;

Outdated 2006.0 profiles
./cobalt/2006.0
./mips64/ip28/2006.0
./mips64/multilib/2005.1
./mips64/multilib
./mips64/multilib/2006.0
./mips64/n32/2006.0
./mips64/2006.0
./2006.0

New profiles
./2006.1/cobalt/o32/nptl Cobalt with NPTL (not ready for production use)
./2006.1/cobalt/o32 Cobalt (using linuxthreads, recommended for Cobalt users)

Generic Big Endian profiles (including SGI Indy, Indigo2 R4x00, O2)
./2006.1/generic-be/n32/nptl
./2006.1/generic-be/n32
./2006.1/generic-be/n64/nptl
./2006.1/generic-be/n64
./2006.1/generic-be/o32/nptl
./2006.1/generic-be/o32

Profile for SGI Origin 200/2000
./2006.1/ip27/n32/nptl
./2006.1/ip27/n32
./2006.1/ip27/o32/nptl
./2006.1/ip27/o32

Profile for SGI Indigo2 Impact R10000
./2006.1/ip28/n32/nptl
./2006.1/ip28/n32
./2006.1/ip28/o32/nptl
./2006.1/ip28/o32

Profiles for SGI Octane/Octane2
./2006.1/ip30/n32/nptl
./2006.1/ip30/n32
./2006.1/ip30/o32/nptl
./2006.1/ip30/o32

You’ll also notice… we’re working on NPTL support on MIPS. The new glibc-2.4 no-longer includes support for linuxthreads, and thus all architectures are migrating across. NPTL support requires gcc-4.1, kernel 2.6.17, and use of the NPTL profiles. This is a work in progress and is not recommended unless you know what you’re doing. It is recommended people stick to using linuxthreads until things are stable using NPTL.

As mentioned earlier… this will be going into the handbook. If people have any questions… feel free to drop in, we lurk in -mips on irc.freenode.net.

Gentoo 2006.1 for Cobalt: Preparing for another build

Well, it’s that time again… time to wind up the Qube2, and get it building a seed stage in preparation for yet another release of Gentoo.

Then it’ll be a case of waiting for the official 2006.1 snapshot to be released, and the full stagebuilds will begin in earnest. I may release pre-2006.1 stageballs, we’ll see how everything pans out.

I’ll keep you all posted. 🙂

Gentoo Linux/MIPS for Cobalt — The beginnings of a 64-bit port

Hi All,

Just to let you know, things haven’t been totally silent over here… Lately, I’ve been messing about with a mips64el tarball I got from Joel Martin. This is a full multilib environment (o32/n32/n64), which was cross-compiled from x86 via some build scripts based around portage and crossdev. There was however, a snag … there were artifacts of cross-compilation lurking about, some i386 binaries (cc1, cpp1 and tbz2tool being a few), and some even more bizzare “n32 MIPS32” binaries (which I’d have normally considered impossible).

This afternoon, after some tinkering with crossdev, I discovered I was able to get gcc-4.1.0 to build enough to patch up the broken files, to the point I was able to build packages like rsync (although it failed to package due to tbz2tool being broken). I’ve since managed to rebuild things like libtool, and have Python 2.4 well underway as I type this post.

What does this mean? Well, in the distant future (probably in the next few months following my end-of-semester exams), there’s the possibility of providing n32 and n64 (i.e. 64-bit) stages for Cobalt hardware. These will probably be as broken as their big endian counterparts (probably more so), and won’t be officially supported by the MIPS team, but are provided for those who know what they are doing. Those who want stable stages, just stick with the 32-bit (o32) ones we officially support. 🙂

It’ll be a while before I make 64-bit netboot images available… it won’t be anytime soon… if people want a 64-bit userland, it’s best at this point to use it in a chroot environment (as I am doing now), using it for a root environment could lead to all sorts of avoidable headaches.

Also in the plans, as soon as I have the time to do so, I’ll look at a LiveCD for netbooting Cobalt servers. This will be a minimalist x86 LiveCD, which when booted, turns a standard x86 desktop into a BOOTP/NFS server required for booting Cobalt hardware. Initially this will be exclusively for MIPS-based Cobalt servers, but may later be extended to x86-based Cobalt hardware, when suitable netboot images become available. SGI hardware is also a possibility that I may consider. At the moment, it’s little more than some thoughts in my head … I’ll keep you all posted on what happens here.

Anyways, I best get some sleep (1:19am right now), and get some university work done … I’ve got a very busy week ahead. 😐

Gentoo Linux/MIPS for Cobalt — 2006.0 stage 3 — showing at a mirror near you

The 2006.0 stage 3 has been pushed out to the mirrors. You can get it from
your local Gentoo
mirror
in the
experimental/mips/stages/cobalt/2006.0
directory.

Not all mirrors have the files yet (they were only pushed out last night), but they should appear soon — probably in the next day or two. 🙂

As always… any bugs, issues… let me know. 🙂

Stage 3 is Uploaded…

Well, after my genius moment last night (forgot to stick the stage 3 tarball on my laptop to take to uni), I managed to upload the Cobalt stage 3 tarball for Gentoo/MIPS 2006.0.

Feedback would be appreciated, I’ve done some testing, and everything seems kosher, but more thorough tests would be appreciated before I go pushing them out to mirrors. They are presently available in the usual location, along side the 2005.1 stages.

Gentoo Linux/MIPS for Cobalt — 2006.0 stage 3 complete

Well, at long last it’s built… I’m currently doing some testing of the stage 3 tarball (I’ve already hit a problem with missing /dev entries, which has now been rectified).

Currently, I’m doing some build tests to check that everything is okay, once that is done I’ll release the tarball onto my devspace.

ETA: approximately 1 day, I’ll probably upload after 12:00PM local time (Brisbane Time; that’s 2:00AM GMT).