NOTE: You
only need to do these steps if your kernel doesn't have USB support!
This information is only valid for the official 2.2 and 2.4 kernels
from kernel.org. This information is NOT valid for 2.5/2.6 kernels.
 
 
 Installing the kernel Source:
 NOTE: If you need help with any of these steps, refer to the Linux  
 Kernel  HOWTO at 
          http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html 
    . If you don't know how to use the command line, refer to section 10
 of   
          http://www.redhat.com/support/manuals/RHL-7.1-Manual/getting-started-guide/
  If you don't have kernel source installed on your   system: 
   -  Use the links on the download page to get   the 2.2 or 2.4
kernel that is compatible with your system.
 
   -  Follow the steps at 
          http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO-4.html
      to unpack your kernel. Stop when you get to the section on kernel configuration.
 
   -  Unless you know what configuration options   to choose, I recommend 
  you do the following:
 
   
  
     -  Get a kernel from your distributor   (RedHat, SuSe, etc...) and 
install it (make sure to move the kernel source   you unpacked in the previous 
step to a safe location so it doesn't get overwritten.   It doesn't matter 
if it is older than the kernel you are installing, as long  as both are 2.2 
 or both are 2.4)
 
     -  These kernels usually come with  some  default configurations.
RedHat   puts them in the /usr/src/linux/configs/      directory.
Copy the one   that is most appropriate for your system to          
 /usr/src/<name of new  kernel>/.config  (notice the '.' -- that
 means that it is a "hidden"  file).
 
     -  Get rid of the kernel source from your  distributor  and rename 
your new   kernel back to /usr/src/linux   .
 
     -  Some distributions have the kernel   header files in /usr/include 
  set up wrong. Make sure that /usr/include/linux      is a symbolic 
link   pointing to /usr/src/linux/include/linux    and         
 /usr/include/linux     is a symbolic link pointing  to         
 /usr/src/linux/include/asm. If  these are directories  instead of symbolic 
links, delete them and use the " ln -s" command  to create the symbolic 
links. For example, "  ln -s /usr/src/linux/include/linux   /usr/include/linux
  ".
 
     -  cd to /usr/src/linux,  and  run "make oldconfig
     " . This will update the config file  to match  your current kernel
version,   prompting you for new options.
 
   
  
 
 
 Configuring and building the kernel:
 NOTE: For more information on the following steps, read the   Linux-USB 
    Guide, at 
     http://www.linux-usb.org/USB-guide/book1.html
 
   -  From /usr/src/linux, run either "make   menuconfig
     " for a text-mode configuration program, or "make  xconfig
" for  a graphical configuration program.
 
   -  Enable Video4Linux support. In 2.2 kernels, it  is  "Character 
Devices->Video   For Linux->Video For Linux",  and  in 2.4/2.5 kernels
it is "Multimedia   Devices->Video For Linux  ". You  can set this
to "M" (module) or "Y"   (built into kernel).
 
   -  If you have a 2.4/2.5 kernel, enable "Multimedia  Devices->Video 
 For Linux->Video For Linux->V4L information in proc  filesystem
 "
 
   -  USB Configuration:
 
   
  
     -  Enter the "USB support" menu and  enable  "Support For 
USB    " (Y or M)
 
     -  Enable "Preliminary USB device filesystem"
 
     - DISABLE "Enforce USB bandwidth   allocation".
NOTE: This option will be disabled by default and will not be visible
if you have CONFIG_EXPERIMENTAL disabled (it's the very first option in
the kernel configuration).
 
     -  Enable a USB controller driver (UHCI, UHCI   Alternate, or OHCI). 
"  lspci -vv" should tell you whether you have  UHCI or OHCI (hint: 
Intel controllers are UHCI). Either UHCI driver should  work, but I recommend 
that you use UHCI instead of UHCI Alternate. If you  don't know which to choose,
  set all three to "M".
 
     -  Set "USB OV511 Camera support" to  "M".
 
   
  
   -  Rebuild the kernel (this will be slightly different   for non-Intel 
systems):
 
   
  
     - make dep
 
     - make clean
 
     - make bzImage
 
     - make modules
 
     - make modules_install
 
   
  
   -  Copy arch/i386/boot/bzImage to your /boot   directory. Give 
  it a unique name like "vmlinux-2.4.4-usb", and   be sure you don't 
  overwrite your existing kernel!!
 
   - If you boot from anything other than IDE, you will probably have 
to  create a new initial ramdisk (initrd) image:
 
 
 
   
  mkinitrd /boot/initrd-2.4.4.img 2.4.4
     
     
     
    
       - Set up your bootloader:
        
     
    
     
    If you use LILO as your bootloader:
       
               
        Edit your /etc/lilo.conf file. This contains
   sections that   start with an "image = " line. Do not change them unless
  you know what you   are doing. Instead, copy one of those sections to the
  bottom of the file,   and change the filename in the "image" line to that
  of your kernel file.  Change the "label" line to whatever you want (e.g.
 "linux-2.4-usb"). This  is the name that you will type at the LILO prompt
 to boot your kernel. The  "root" line tells where your root filesystem is
 stored. Make sure it is the  same as with your other kernels. Here is an
example from my /etc/lilo.conf      :
           
           
          
             
            
               
              
                 
                image=/boot/vmlinuz-2.4
               
              
               
              
                 
                        label=linux-2.4
               
              
               
              
                 
                        read-only
               
              
               
              
                 
                        root=/dev/sda5
               
              
             
            
           
          
           
                       
             Save the file, and run the "lilo" command. You can
   safely ignore most   warnings.
               
               If you use GRUB as your bootloader (this is the RedHat 
  7.2 default):
               
              Edit /etc/grub.conf, and copy your current boot 
  selection (the section beginning with "title" and all of the indented lines 
  afterward). Edit the new selection so that the "kernel" and "initrd" (if 
 necessary) lines refer to your new kernel files. You do not need to run
any commands afterward.
                 
                 
                 
                
                   - Add the following line to your /etc/fstab
    file:      none /proc/bus/usb usbdevfs defaults 0 0 
    
 
                   - Reboot with the new kernel. If it works, you can 
set  it to be the default in lilo.conf (don't forget to run lilo again afterward!),
or in grub.conf.