I think that I have a way that you can just compile the module, instead of the entire kernel. I am using Ubuntu 9.04 with the 2.6.28-11 kernel, so that is what my example will use. You first should install the kernel headers and the kernel source.
First you must modify the driver source file cp2101.c, as omarshehab mentioned in his first post. It is found in the kernel source. Then open the file in a text editor.
Code:
gksudo gedit /usr/src/linux-source-2.6.28/drivers/usb/serial/cp2101.c
I added a new line for the new device, below the existing one.
Code:
{ USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem */
Save the file and exit.
You then need to have a .config file for the kernel source. Enter the kernel source folder with this comman:
Code:
cd /usr/src/linux-source-2.6.28
Then run the config program:
Code:
sudo make menuconfig
You shouldn't have to change anything, but when you exit it should ask if you want to save your configuration. Answer "Yes".
Now run these commands.
Code:
sudo make oldconfig
We need a copy of the Modules.symvers file, so run this command:
Code:
sudo cp /usr/src/linux-headers-2.6.28-11-generic/Module.symvers /usr/src/linux-source-2.6.28
Run these commands to prepare the kernel source.
We now will go to the folder that contains the driver source file:
Code:
cd /usr/src/linux-source-2.6.28/drivers/usb/serial
Then run this command. It will compile all of the modules in the /serial folder.
Code:
sudo make -C /usr/src/linux-source-2.6.28 SUBDIRS=$PWD modules
It will build the modules in the same directory. You will need to copy the cp2101 module into the /lib/modules folder:
Code:
cp /usr/src/linux-source-2.6.28/drivers/usb/serial/cp2101.ko /lib/modules/2.6.28-11-generic/kernel/drivers/usb/serial
The new driver will now be loaded the next time it loads. If it is currently loaded, remove it first.
Code:
sudo modprobe -r cp2101
Now load it,
Code:
sudo modprobe cp2101
Let me know how this works out.