Here is collection of random info I gathered while bringing up SGI Origin 2000 with Linux.
First of all: toolchain does matter. I had to use gcc-2.95.4 to build kernels. Otherwise I had images that would hang completely right after loading. The problem was recently solved, so currently I am using gcc-3.3.3.
On hardware side: Origin node boards have special screws on the back,
labeled "Connection actuator" on mine ("Compression" in SGI documentation).
It was not very obvious what they are used for. My unit came with those
screws completely unscrewed. For some reason I was getting errors as
following:
It took me a while to relate these errors to screws. In fact I didn't figure
out what are they for until I found pictures of O2K router boards in
techpubs, then pulled some node boards out, did that a few times, and
finally saw that nodeboard hub connector is not male-female socket type,
but rather a film with contacts, so you actually need something to tightly
attach it to contacts on router board side. I actually had to go back and forth
between docs and actual hardware few times, before I noticed what's going on.
Widget present but link is down!
We have rack-mount system here. It has MMSC unit, unfortunately without display. By default MSC control ports on the back of each unit connect to MMSC. However, in absence of display, and due to lack of desire to make extra minidin-db9 cables to hook up to "console" output of MMSC, I just hooked normal null-modem cable to MSC console directly.
First self-built kernel that actually gave me some output hung during serial driver initialization. To be more precise - it barfed while IOC3 ethernet driver was registering UARTA (IOC3 board contains both ethernet and serial ports). After some pain and angst, I was told that in reality IP27 doesn't have propper PCI support yet. Bacchus gave me some of dirty hacks he uses to get around, but doesn't want to include in CVS.
With those patches I was able to build bootable kernel. And it even booted. Even all the way to multi-user. There are still two problems though:
I am also trying to get n32/n64 (as Bacchus put it "penis size factor") userland to work, but almost no success there yet. My pointer is still not any bigger then your pointer :(
gcc+glibc+C++. I still didn't find kernel-level issue that is preventing gcc-3x stdc++ from working, however, we now have gcc-3.4+glibc-latest based stages in Gentoo. You can find them on my gentoo webspace. They work for me and have been reported to work for few other people (on IP27 as well as other hardware).
n32/n64 userland. I have managed to build gcc-3.4 multilib-enabled compiler. I also managed to build o32/n32/n64 glibc combo. However rebuilding rest of userland as n32 and/or n64 turned out to be a bit of a challenge. Many packages have library paths hardwired (and for some propper library path detection is just not smart enough), so multi-abi system is *real* pain. Not to mention the fact that Gentoo package manager itself is simply not designed for that kind of thing. I will probably try to build purely n32 and purely n64 systems at some point in time, but I'm afraid bootstrapping' that will not be an easy task, since I'll have to cross-build enough packages manually to get portage system going. Ugh.
Authoright © Total Knowledge: 1999-2013