I'm going to be away giving talks in the U.K. until Thursday
afternoon. With that in mind I'm going to show people how they can
begin to become acquainted with the work that is already done, and
how to setup a cross-compilation environment both for the kernel and
for userland binaries.
If you want to checkout and build your own SGILinux kernels, Larry and
myself have set things up so that this is possible on neteng. Just
ask Larry to put you into group 'hackers' on neteng and you'll be able
to check out a CVS kernel source tree.
Step 1: Get added to group 'hackers' on neteng.
Step 2: Make sure the following are close to the beginning of your
PATH:
/usr/local/gnu-cross-seb/bin
These are the cross gcc/binutils utilities necessary
to build a SGI Linux kernel.
/hosts/neteng/usr/people/dm/install/bin
These are miscellaneous GNU utilities such as CVS,
GNU make, and GNU awk, which are required for the
build process.
Step 3: Set CVSROOT environment variable to /hosts/tanya/cvs and
checkout your very own kernel.
$ export CVSROOT=/hosts/tanya/cvs
$ mkdir src
$ cd src
$ cvs checkout linux
If you've had a tree for a while, or see some updates on
linux-progress you would like integrated into your tree
do this.
$ cd src
$ cvs update linux
If you want to make changes to the source, and feel overly
free to, specify the file to be 'committed' back into the
CVS repository like this.
$ cd src/linux/drivers/net
$ cvs commit -m "My cool checkin message." sgiseeq.c sgiseeq.h
CVS has a lot of other powerful features such as revision
diffs, automatic commit conflict detection etc.
Step 4: Configure and build.
$ cd linux
$ make oldconfig
$ make dep; make clean
$ make vmlinux
Or if you like parallel builds (neteng can build Linux
kernels in around 2 1/2 minutes flat) replace the last
command with.
$ make -j
Step 5: If you want, boot the thing.
$ cp vmlinux /usr/local/boot
Go into the ARCS boot monitor prompt on the other machine
and say something like
>> bootp()server:vmlinux
And it should at least do something interesting ;-)
For userland, unfortunately, I can only point you at where the current
Linux/MIPS information is located. I will be doing some detective
work on native userland binaries myself when I return, but people can
check it out for now if they would like to.
The current main distribution site is:
ftp.fnet.fr:/linux-mips/
The current library the other MIPS are using as a basis cannot be
obtained from the above site, it is a pre-test release of GNU libc,
you can obtain snapshots of these prereleases from:
alpha.gnu.ai.mit.edu:/roland/
These are developer snapshots, so don't be surprised if it doesn't
work without applying a hammer to the code/makefiles. ;-)
I believe that the cross-development tools provided on ftp.fnet.fr can
be used to compile the GNU libc and subsequently the userlevel
binaries linked with GNU libc.
The Linux/MIPS web site hasn't been talking to me lately, seems like a
configuration on their end, but for reference it is:
http://www.fnet.fr/linux-mips/
The documation provided there can be found at the Linux/MIPS ftp site
as well I believe.
Later,
David S. Miller
dm@sgi.com
|