Results 1 to 5 of 5
I was trying to plug in a Mobidata EDGE modem (100EU) to my Linux (Ubuntu 8.04.2, kernel 2.6.24). It was not working. The lsusb command shows a device id 10CE:EA6A. ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 06-16-2009 #1Just Joined!
- Join Date
- May 2009
- Posts
- 3
Mobidata EDGE modem issue with Linux Kernel (cp2101.c)
I was trying to plug in a Mobidata EDGE modem (100EU) to my Linux (Ubuntu 8.04.2, kernel 2.6.24). It was not working. The lsusb command shows a device id 10CE:EA6A. In the line of 100 of cp2101.c, it says the device id should be 10C5:EA61. I think that's the source of problem everyone is facing with Mobidata EDGE modem. You may like to follow this link to see how many people are acing this problem.
I assume the solution is to edit the line or add a new line for Mobidata EDGE Modem 100EU and recompile the kernel.
The new line should be,
{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */
Here in Bangladesh, a lot number of people and enterprises are using this model and facing problem while migrating to Linux. So, we, Bangladesh Open Source Network (h t t p : / / w w w . bdosn . orgHomepage | Bangladesh Open Source Network), are trying to come up with a solution so that we can promote migration to Linux more cost effectively.
Thanks in advance for your reply.Last edited by oz; 06-16-2009 at 05:20 PM.
- 06-16-2009 #2
Hello, and thank you for the information.
There is a file that contains all of the USB device ID's, named usb.ids In Ubuntu 9.04 I found it in /var/lib/misc. You should be able to find it on your system with this command.
As suspected, your modem is not listed, but the EA6A is:Code:locate usb.ids
The solution to this may be two-fold. You may need the device to be included in the usb.ids list, and the developers of the driver need to include it.Code:10ce Silicon Labs ea6a MobiData EDGE USB Modem
Paul
Please do not send Private Messages to me with requests for help. I will not reply.
- 06-16-2009 #3Just Joined!
- Join Date
- May 2009
- Posts
- 3
Thanks waterhead for your reply. Adding the data to my device list is possible. But the device maker does not ship it with a Linux driver.
What should I do now?
As the cp2101.c file does have an entry for MobiData EDGE USB Modem, should I consider that the kernel already has a driver?
- 06-16-2009 #4
I had to rush off to work earlier, and cut my first post short.
Just adding the USB ID to the list won't make it work. It will just properly recognize it.
I did find what appears to be the web page for the driver development. Sometimes you can get the driver source, and change and install that. This does not appear to be the case with this driver.
CP210x Linux DriverLast edited by waterhead; 06-16-2009 at 07:13 PM.
Paul
Please do not send Private Messages to me with requests for help. I will not reply.
- 06-17-2009 #5
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.
I added a new line for the new device, below the existing one.Code:gksudo gedit /usr/src/linux-source-2.6.28/drivers/usb/serial/cp2101.c
Save the file and exit.Code:{ USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem */
You then need to have a .config file for the kernel source. Enter the kernel source folder with this comman:
Then run the config program:Code:cd /usr/src/linux-source-2.6.28
You shouldn't have to change anything, but when you exit it should ask if you want to save your configuration. Answer "Yes".Code:sudo make menuconfig
Now run these commands.
Code:sudo make clean
We need a copy of the Modules.symvers file, so run this command:Code:sudo make oldconfig
Run these commands to prepare the kernel source.Code:sudo cp /usr/src/linux-headers-2.6.28-11-generic/Module.symvers /usr/src/linux-source-2.6.28
Code:sudo make scripts
We now will go to the folder that contains the driver source file:Code:sudo make prepare
Then run this command. It will compile all of the modules in the /serial folder.Code:cd /usr/src/linux-source-2.6.28/drivers/usb/serial
It will build the modules in the same directory. You will need to copy the cp2101 module into the /lib/modules folder:Code:sudo make -C /usr/src/linux-source-2.6.28 SUBDIRS=$PWD modules
The new driver will now be loaded the next time it loads. If it is currently loaded, remove it first.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
Now load it,Code:sudo modprobe -r cp2101
Let me know how this works out.Code:sudo modprobe cp2101
Paul
Please do not send Private Messages to me with requests for help. I will not reply.


Reply With Quote
