Help with kernel configuration to add drivers

Jay Moore jaymo at mail.bokler.com
Sun Nov 7 00:01:49 UTC 2004


I've recently bought an Antec Aria case. I bought it in part because
it's got a pretty nifty built-in CF & CD card reader. I'd planned on
installing WinXP on it, but after receiving the case I was pleasantly
surprised to find that the CF card reader is supported in Linux as well.

So about two weeks ago I installed FC2 on this system (Antec Aria &
Biostar M7NCG 400) to see if I liked it. I'm _really_ pleased with FC2
so far... now I'd like to add the required support for the CF card
reader. I've read the documentation supplied by Antec, but I can't
relate it to my system (no doubt 'cause I am Linux Newbie Extreme). I've
Google'd for HOW-TO's to help, but have had no success. 

I did try just mounting the device, but got an error message:
# mount /dev/sda1 /mnt/cf
mount: /dev/sda1 is not a valid block device

I've enclosed the complete instructions provided by Antec in the hopes
that someone can "translate" this, and help me round up the required
kernel sources, etc. My confusion starts with Step 1: Where do I get FC2
kernel source & where does it get installed? 

Thanks,
Jay Moore

-----  Begin Enclosure  ------

Installation instructions for using the Card Reader with the Linux OS.

Note:  The Linux kernel used must be 2.4.0 or above.

1. Getting the source code:
You can obtain the source code via anonymous ftp from ftp.kernel.org in
/pub/linux/kernel/vx.y
        a) where x.y is the version (eg 2.4),
Note:  versions ending with an odd number are development releases and
may be unstable.
The source code is typically labelled linux-x.y.z.tar.gz, where x.y.z is
the version number.

Many sites also typically carry ones with a suffix of .bz2,
which have been compressed with bzip2 (these files will be smaller and
take less time to transfer).

It is recommended to use ftp.xx.kernel.org where xx is your country
code. Eg. ftp.at.kernel.org for Austria, and ftp.us.kernel.org for the
United States.


2. Unpacking the source code:
Log in as or “su” to `root', and cd to /usr/src.
If you installed the kernel source when you first installed Linux (most
Linux users do so), there will already be a directory called `linux'
there, which contains the entire code source tree. If you have the disk
space and you want to play it safe, save that directory.

You will need to determine which version your system runs now and rename
the directory accordingly.
The command `uname -r' outputs the current kernel version. Therefore, if
`uname -r' said `1.0.9', you would rename the directory `linux' to
`linux-1.0.9' using the ‘mv’ command. Make certain there is no `linux'
directory in /usr/src before unpacking the full source code.

Now, in /usr/src, unpack the source with `tar zxpvf linux-x.y.z.tar.gz'
(if you have a .tar file with no .gz at the end, `tar xpvf
linux-x.y.z.tar' will work.).
The contents of the source will scroll by. When finished, there will be
a new `linux' directory in /usr/src.  cd to linux and look over the
README file. There will be a section with the labelled `INSTALLING the
kernel'.
Carry out the instructions when appropriate -- symbolic links that
should be in place, removal of stale .o files, etc.

If you have a .bz2 file and the bzip2 program (read about it at
http://www.muraroa.demon.co.uk/),
do this:

bz2cat linux-x.y.z.tar.bz2 | tar xvf -

3. Backup old kernel:


        The backup files have:
        /boot/vmlinuz
        /boot/System.map


4. Make mrproper:
        It is important to begin a kernel build with the source tree in
a known condition. Therefore, it is recommended that you begin with the
command make mrproper.  This will remove any configuration files along
with the remains of any previous builds that may be scattered around the
source tree.


5. Configuring the kernel:

Note: Some of this is reiteration/clarification of a similar section in
Linux' README file.

Verify that bash is /bin/bash, /bin/sh, or $BASH.

The command `make config' while in /usr/src/linux starts a configure
script which asks you many questions. ‘Make config’ requires bash.

However, there are some alternatives to `make config' and you may find
them easier and more comfortable to use.

`make menuconfig' is probably the most widely-used. Whatever you choose,
it's best to get familiar with the interface because you may find
yourself back at it sooner than you think.

For those ``running X,'' you can try `make xconfig' if you have Tk
installed (`click-o-rama' - Nat).

make menuconfig' is for those who have (n)curses and would prefer a
text-based menu.

These interfaces have a rather clear advantage: If make a mistake or 
make a wrong choice during configuration, it is simple to go back and
fix it.

The configuration options will appear in hierarchies with `make
menuconfig' and `make xconfig'.

You are ready to answer the questions, usually with `y' (yes) or `n'
(no).
Device drivers typically have an `m' option. This means ``module,''
meaning that the system will compile it, but not directly into the
kernel, but as a loadable module.
         Some of the more obvious and non-critical options are not
described here see the section ``Other configuration options'' for a
short descriptions of a few others.

With `make menuconfig', the space bar toggles the selection.

        The USB reader needs the following items:
        SCSI emulation support = y
        SCSI support = y
        SCSI disk support = y
        SCSI generic support = y
        Support for USB = m
        UHCI Alternate Drive(JE) or OHCI (Compaq,iMacs,OPTi,SiS,ALi,...)
support = m
        USB Mass storage support = m
        Preliminary USB device filesystem = y
        Dos FAT fs support = y
         MSDOS fs support = y
          UMSDOS: Unix-like file system on top of standard MSDOS fs
        VFAT (Windows-95) fs support

        The optional items:
        USB verbose debug message = y
        USB Mass storage verbose debug =y

6. Make dep:
        This  starts compiling and building kernel.

7. Make clean:
        This step is to clean the old kernel and drivers

8. Make bzImage:
        If compile is successful  please do the following steps:
        (1) cd /usr/src/linux/arch/i386
        (2) cp bzImage /boot/vmlinuz-x.x.x (x.x.x is kernel version)
        (3) cd /boot
        (4) ln -s -i vmlinuz-x.x.x vmlinuz

9. Make modules and Make modules_install:
        This step is to compile the modules.
 Because during the configuration process we chose ‘m’ we need   to make
the modules and use modules_install to install them.

10. Refresh the System.map
         The setp is as follows:
(1) cp System.map /boot/System.map-x.x.x (x.x.x is kernel version)
         (2) cd /boot
         (3) ln -s -i System.map-x.x.x System.map

11. Edit the lilo.conf or grub.conf:
         If you selected GRUB as your boot loader, you need to modify
the file /boot/grub/grub.conf like as following:

         # grub.conf generated by anaconda
         #
         # Note that you do not have to rerun grub after making changes
to this file
         # NOTICE:  You do not have a /boot partition.  This means that
         #          all kernel and initrd paths are relative to /, eg.
         #          root (hd0,0)
         #          kernel /boot/vmlinuz-version ro root=/dev/hda1
         #          initrd /boot/initrd-version.img
         #boot=/dev/hda
         default=0
         timeout=10
         splashimage=(hd0,0)/boot/grub/splash.xpm.gz
         ###############Our additional information##############
         title Red Hat Linux (x.x.x)
                root (hd0,0)
                kernel /boot/vmlinuz-x.x.x ro root=/dev/hda1
                initrd /boot/initrd-x.x.x.img
         splashimage=(hd0,0)/boot/grub/splash.xpm.gz
         ##########  x.x.x is compiler kernel version ########
         #####################################################
         title Red Hat Linux (2.4.18-3)
                root (hd0,0)
                kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda1
                initrd /boot/initrd-2.4.18-3.img
         title DOS
                rootnoverify (hd0,4)
                chainloader +1

         If you selected LILO follow the same instructions as stated for
GRUB

12. Mount the usb device:
         The last thing is to mount the device.
         (1)first create a folder of /mnt
            example: mkdir /mnt/cf
         (2)mount the device
            example: mount /dev/sda1 /mnt/cf




More information about the users mailing list