Adding a Driver to the Kernel Source
Occassionally you may need to rebuild your kernel with a driver which isn't part of the kernel source you have. This is a general guideline to the steps you will need to carry out. Specific details are dependent on the type of driver. Mention is made of editing various files and inserting extra lines. The position of these lines will depend on the driver. Normally a driver will come with instructions on the exact lines to enter and where. If it doesn't , you will need to experiment, position the entries near entries for similiar drivers. In this example we are adding the fictious driver “mydriver” which is a SCSI driver. You will need to adapt these guidelines to the type of driver you have.
1. To make the driver appear as an option in "make config", "make menuconfig" or "make xconfig , edit /usr/src/linux/drivers/scsi/Config.in adding the line dep_tristate 'My SCSI river' CONFIG_SCSI_MY_DRIVER $CONFIG_SCSI 2. Copy the source into place, cp mydriver.c /usr/src/linux/drivers/scsi and cp mydriver.h /usr/src/linux/drivers/scsi 3. Edit /usr/src/linux/drivers/scsi/Makefile adding the following: ifeq ($ (CONFIG_SCSI_MY_DRIVER),y) L_OBJS += mydriver.o else ifeq ($ (CONFIG_SCSI_MY_DRIVER),m) M_OBJS += mydriver.o endif endif And.... mydriver.o: mydriver.h mydriver.c $(CC) $(CFLAGS) -c mydriver.c -o mydriver.o 4. Edit hosts.c adding the following: #ifdef CONFIG_SCSI_MY_DRIVER #include "mydriver.h" #endif And.... #ifdef CONFIG_SCSI_MY_DRIVER MYDRIVER_LINUX_TEMPLATE #endif
You are now ready to rebuild_the_kernel