## Table of Contents %TOC% This is a brief Building OSKit Mach HowTO. It covers everything from getting the latest sources of both the [OSKit](http://www.cs.utah.edu/flux/oskit/) and the OSKit branch of the GNUmach kernel. There is also [another guide](http://www.etherhogz.org/doc/oskit-mach.html). Down to building and debugging them. On May 27 after the [[GnuMach]] 1.3 release, Roland McGrath merged OSKit Mach in the [[GnuMach]] 2.x mainline. To be able to actually make use of your recently checked out CVS version of the GNUMach kernel & C:o you need a GNU system of [gnu-20020816.tar.gz](ftp://ftp.funet.fi/pub/gnu/alpha/gnu/hurd/contrib/marcus/gnu-20020816.tar.gz) or later. ## Getting your hands on the source First you need to checkout the relevant sources. ### Accessing the FLUX groups' CVS, or FTP You can use either the bleeding edge OSKit from CVS, or the latest public release. The latter is preferrable! **_CVS:_** CVSROOT=":pserver:anoncvs@leak.cs.utah.edu:/cvs" CVS_RSH=ssh cvs -z3 co oskit **_FTP:_** St. Patricks day 2002 release: Valentine's day 2001 release: ### Accessing the GNU CVS The recommended document for accessing the Hurd CVS on [Savannah](http://savannah.gnu.org) is at This is only a brief restatement, which may ormay not be accurate. Setup your environment with the CVSROOT variable. How you do this may differ between shells. CVSROOT=":pserver:anoncvs@anoncvs.gnu.org:/cvsroot/hurd" **_Gnu Mach:_** All development, apart from critical bug fixes, is done on the upcoming 2.0 release. Previously the oskit-branch of gnumach. cvs -z3 co gnumach In case you have been tracking the oskit-branch and want to move to the current HEAD branch you can issue the following instead to update your tree. cd cvs -z3 update -r HEAD -Pd Where <YOUR MACH DIR> can be gnumach, oskit-mach, or similar. **_The Hurd servers:_** In case you want to build the Hurd servers as well, you can check them out too: cvs -z3 co hurd **_Inteface generator:_** See the [[Mig/MachInterfaceGenerator]] for more information. Check it out using cvs -z3 co mig ## Building ### The OSKit The attached [[ATTACHURLmodulesx86pc]] is an example setup, your needs may vary but this one works for standard COTS PC's. Now, how to configure and build the OSKit. **_Configuring:_** # cd oskit-20020317/ # mkdir build # cd build # CFLAGS="-g" ../configure --prefix=/usr/local --enable-debug **_Building:_** # make # sudo make install ### OSKit Mach To build any Mach kernel you need an interface generator, a mig. If your host system is Debian based you can get the "Cheap cross-compuler for GNU/Hurd" with a simple: $ apt-get gcc-i386-gnu This will install the i386-gnu-mig in /usr/bin for you. **_Configuring:_** # cd oskit-mach # mkdir build # cd build # CFLAGS="-g" MIG=i386-gnu-mig OSKIT_LIBDIR=/usr/local/lib/oskit ../configure --prefix=/gnu --enable-debug _I think this is a bug that you have to specify $prefix/lib/oskit as OSKIT\_LIBDIR. Libdir is usually just $prefix/lib._ -- [[Main/MichalSuchanek]] _I think not. The $prefix variable in autoconf comes from the --prefix option to configure, that in turn is intended as the prefix path to the installation of the package you are configuring, i.e. oskit-mach and **NOT** the OSKit itself_ -- [[Main/JoachimNilsson]] _I refer to the $prefix value at the time oskit is built. Of course, you can choose a different prefix for oskit-mach._ -- [[Main/MichalSuchanek]] _I see, it was not that clear the context of your first comment, well anyhow when reality changes so will this page. :)\__ -- [[Main/JoachimNilsson]] **_Building:_** # make kernel-ide+ethernet_vortex # sudo make install # sudo gzip /gnu/boot/oskit-mach Instead of using \`make kernel' to build kernel, in OSKit-Mach you have to use \`make kernel-DRIVERS', where DRIVERS is \`DRIVER+DRIVER+...+DRIVER' (a list of drivers separated by \`+'). DRIVER can be one of: * \`ide' * \`floppy' * \`ethernet\_ETHDRV' where ETHDRV is taken from 'oskit/oskit/dev/linux\_ethernet.h'. * \`scsi\_SCSIDRV' where SCSIDRV is taken from \`oskit/oskit/dev/linux\_scsi.h'. ## Debugging For now, see the [[RemoteDebugOskitMach]] page. ## Attachments * [[ATTACHURLmodulesx86pc]]: Modules to build in OSKit ---- First version. -- [[Main/JoachimNilsson]] - 14 May 2002 Updated by: -- [[Main/LuisBustamante]] - 04 Jun 2002 Moving from oskit-branch to HEAD. -- [[Main/JoachimNilsson]] - 05 Jun 2002