<HTML ><HEAD ><TITLE > Preparation for XFS Installation </TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="Linux + XFS HOWTO" HREF="index.html"><LINK REL="PREVIOUS" TITLE="Introduction" HREF="x30.html"><LINK REL="NEXT" TITLE=" Kernel Configuration and Installation " HREF="x106.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Linux + XFS HOWTO: Linux on Steroids</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x30.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="x106.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN51">2. Preparation for XFS Installation</H1 ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN53">2.1. Downloading the Linux 2.4.x-XFS Kernel Source</H2 ><P >Currently the only place to get the source code for the XFS enabled Linux kernel is straight from SGI's Open Source Development site via CVS. </P ><DIV CLASS="NOTE" ><P ></P ><TABLE CLASS="NOTE" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TH ALIGN="LEFT" VALIGN="CENTER" ><B >Note</B ></TH ></TR ><TR ><TD > </TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >two distinct trees are available: <P ></P ><UL ><LI ><P >linux-2.5-xfs: development tree</P ></LI ><LI ><P >linux-2.4-xfs: stable bug fix only tree</P ></LI ></UL > </P ></TD ></TR ></TABLE ></DIV ><P > My experience has been with the 2.4 tree, but I imagine everything will work the same with the development tree. Both trees are kept in sync with their respective mainline kernel tree at least to the point of major release numbers. </P ><P >Here are the steps to download the kernel source tree: </P ><P >A. Normally the linux kernel source is installed in the /usr/src directory, so you should start off by switching to that directory. </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ cd /usr/src </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >B. Next, you should set the CVSROOT environment variable so that it points to the proper cvs server. </P ><P ></P ><UL ><LI ><P >If you are running sh, bash, ksh, etc...: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="90%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ export CVSROOT=':pserver:cvs@oss.sgi.com:/cvs' </PRE ></FONT ></TD ></TR ></TABLE > </P ></LI ><LI ><P >If you are running csh or tcsh: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="90%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ setenv CVSROOT :pserver:cvs@oss.sgi.com:/cvs </PRE ></FONT ></TD ></TR ></TABLE > </P ></LI ></UL ><P >If you plan on updating your kernel often (to keep up with the latest changes) you might want to put this in your login script. </P ><P >C. Then log in to the cvs server. </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ cvs login (the password is "cvs") </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >This needs to be done only ONCE, not everytime you access CVS. </P ><P >D. Now grab linux-2.4-xfs. The first time you will want to do something like: </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ cvs -z3 co linux-2.4-xfs </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >After you have checked the code out, you can use: </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >$ cvs -z3 update linux-2.4-xfs </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >to update your copy to the latest version from the CVS server. </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN89">2.2. XFS Support as Modules or Compiled Into the Kernel?</H2 ><P >The option to build XFS support for the Linux kernel as modules is available and will work (or so I am told) with the help of an initial RAM disk and a couple of additions to the lilo configuration. I have not tried this (yet), so I will not include documentation on how this is done other than just to qoute from a message to the development mailing list from Russell Cattelan: </P ><A NAME="AEN92"><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0" CLASS="BLOCKQUOTE" ><TR ><TD WIDTH="10%" VALIGN="TOP" > </TD ><TD WIDTH="80%" VALIGN="TOP" ><P >Actually running xfs as a module isn't very hard. in the directory cmd/xfs/misc there is a modified mkinitrd the will always generate a ram disk with pagebuf xfs_support and xfs. </P ><P >Once that is done just add the initrd line in lilo.conf AND </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >append = "ramdisk_size=25000" </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >The default size is 4096 which isn't nearly large enough to hold xfs. </P ><P >This is from my laptop. </P ><P > <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >punch[12:57am]-=>mount /dev/ide/host0/bus0/target0/lun0/part8 on / type xfs (rw,noatime) none on /proc type proc (rw) /dev/ide/host0/bus0/target0/lun0/part6 on /boot type ext2 (rw,noatime) none on /dev/pts type devpts (rw,mode=0620) /dev/ide/host0/bus0/target0/lun0/part1 on /mnt/windows type vfat (rw,nosuid,nodev,umask=0) /dev/ide/host0/bus0/target0/lun0/part9 on /blam type xfs (rw) punch[12:57am]-=>lsmod Module Size Used by autofs 13180 1 (autoclean) usb-uhci 24918 0 (unused) usbcore 35339 0 [usb-uhci] 3c59x 25149 1 (autoclean) maestro 29757 0 (unused) soundcore 6085 2 [maestro] vfat 13075 1 (autoclean) fat 37733 0 (autoclean) [vfat] xfs 447888 2 xfs_support 13954 0 [xfs] pagebuf 39935 2 [xfs] image=/boot/vmlinuz-2.4.0-XFS-test13-pre4 label=t13p4 root=/dev/hda8 initrd=/boot/initrd-2.4.0-XFS-test13p4.img append="ramdisk_size=25000" read-only </PRE ></FONT ></TD ></TR ></TABLE > </P ></TD ><TD WIDTH="10%" VALIGN="TOP" > </TD ></TR ><TR ><TD COLSPAN="2" ALIGN="RIGHT" VALIGN="TOP" >--<SPAN CLASS="ATTRIBUTION" > Russell Cattelan </SPAN ></TD ><TD WIDTH="10%" > </TD ></TR ></TABLE ><P >It seems to me that compiling the support into the kernel would be much simpler, so that is how I am doing it at this point. I will try it as a module at a later time and add more detailed instructions then. If anyone has time to document this method before I get around to it please email it to me and I will include it with credit given where credit is due. :-) </P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x30.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x106.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Introduction</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Kernel Configuration and Installation</TD ></TR ></TABLE ></DIV ></BODY ></HTML >