Link to home
Start Free TrialLog in
Avatar of Eggpatch
Eggpatch

asked on

GSM modem on linux(Ubuntu server)

hi! guys!.. i am developing now a SMS System which can forward a announcement messages to my customer, as of now my system is stabled except for one modem i had and i decide to replace it in a new modem, now i have a Edge modem (Philips TalkTalk SNU5630NS/05 Wireless Adapter). The problem is when i plug it it detects only the storage of modem which is i don't need because storage contain driver which is function only on windows system, what i need is the location of modem device so that i can put it in to my sms configuration. thanks!..

this is the dmesg i have.

new full speed USB device using uhci_hcd and address 5
[21911.876266] usb 2-2: configuration #1 chosen from 2 choices
[21911.882085] scsi12 : SCSI emulation for USB Mass Storage devices
[21911.882292] usb-storage: device found at 5
[21911.882297] usb-storage: waiting for device to settle before scanning
[21916.881406] usb-storage: device scan complete
[21916.884399] scsi 12:0:0:0: CD-ROM            Philips  Dev. 0 LUN 0     1.0  PQ: 0 ANSI: 0
[21916.904378] sr2: scsi-1 drive
[21916.904590] sr 12:0:0:0: Attached scsi CD-ROM sr2
[21916.904843] sr 12:0:0:0: Attached scsi generic sg2 type 5

Avatar of Duncan Roe
Duncan Roe
Flag of Australia image

It needs to detect USB Serial. Do you have the USB serial kernel module usbserial.ko? You may also need the right driver for your modems chipset - I have configured all of them as modules that I could find.
08:16:15$ ls -Fx /lib/modules/2.6.25.4_64/kernel/drivers/usb/serial
aircable.ko          airprime.ko    ark3116.ko          belkin_sa.ko    cp2101.ko
cyberjack.ko         cypress_m8.ko  digi_acceleport.ko  empeg.ko        ftdi_sio.ko
funsoft.ko           garmin_gps.ko  io_edgeport.ko      io_ti.ko        ipaq.ko
ipw.ko               ir-usb.ko      keyspan.ko          keyspan_pda.ko  kl5kusb105.ko
kobil_sct.ko         mct_u232.ko    mos7720.ko          mos7840.ko      navman.ko
omninet.ko           option.ko      pl2303.ko           safe_serial.ko  sierra.ko
ti_usb_3410_5052.ko  usb_debug.ko   usbserial.ko        visor.ko        whiteheat.ko

Open in new window

You probably want to get the very latest kernel for largest choice of drivers
Avatar of Eggpatch
Eggpatch

ASKER

Hi! duncan_roe thanks for your reply, i have already usb driver uhci_hcd. uhci_hcd driver is for modem usb driver may i right? Modem driver already modprobe but i cant see the Modem device location why is it that the Cdrom/storage only detect?. i have  Linux kernel 2.6.27-11-server (its ubuntu 8.10 server). I tried dmesg and this what i get.

 new full speed USB device using uhci_hcd and address 4
[ 3879.076270] usb 2-2: configuration #1 chosen from 2 choices
[ 3879.081804] scsi6 : SCSI emulation for USB Mass Storage devices
[ 3879.082634] usb-storage: device found at 4
[ 3879.082643] usb-storage: waiting for device to settle before scanning
[ 3884.081494] usb-storage: device scan complete
[ 3884.084466] scsi 6:0:0:0: CD-ROM            Philips  Dev. 0 LUN 0     1.0  PQ: 0 ANSI: 0
[ 3884.103464] sr0: scsi-1 drive
[ 3884.103669] sr 6:0:0:0: Attached scsi CD-ROM sr0
[ 3884.103895] sr 6:0:0:0: Attached scsi generic sg2 type 5
type=1503 audit(1240909191.241:7): operation="inode_permission" requested_mask="::r" denied_mask="::r" fsuid=103 name="/proc/4258/net/if_inet6" pid=4259 profile="/usr/sbin/named"

uhci_hcd & uhci_hcd are low-level drivers for all USB devices. For modem you need to have usbserial. Please post output from the 2 commands below:

lsmod

ls -Fx /lib/modules/$(uname -r)/kernel/drivers/usb/serial
here is the output i have of command  lsmod

Module                  Size  Used by
cdc_acm                23712  8
ipt_MASQUERADE         10752  1
iptable_nat            13448  1
nf_nat                 25368  2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4      21900  3 iptable_nat,nf_nat
nf_conntrack           72032  4 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4
iptable_filter         10752  0
ip_tables              19600  2 iptable_nat,iptable_filter
x_tables               22916  3 ipt_MASQUERADE,iptable_nat,ip_tables
ac                     12292  0
lp                     17156  0
loop                   23180  0
sr_mod                 22212  0
cdrom                  43040  1 sr_mod
zd1211rw               53252  0
snd_hda_intel         383920  0
evdev                  17696  3
pcspkr                 10624  0
mac80211              216692  1 zd1211rw
snd_pcm                83332  1 snd_hda_intel
snd_timer              29832  1 snd_pcm
snd                    63268  3 snd_hda_intel,snd_pcm,snd_timer
soundcore              15328  1 snd
snd_page_alloc         16264  2 snd_hda_intel,snd_pcm
cfg80211               32392  1 mac80211
parport_pc             39460  1
parport                42604  2 lp,parport_pc
i2c_viapro             15892  0
button                 14224  0
i2c_core               31892  1 i2c_viapro
shpchp                 38164  0
pci_hotplug            34976  1 shpchp
via_agp                16256  1
agpgart                42184  1 via_agp
ipv6                  263460  28
ext3                  133000  2
jbd                    55828  1 ext3
mbcache                16004  1 ext3
sd_mod                 42392  5
crc_t10dif              9984  1 sd_mod
pata_acpi              12160  0
ata_generic            12804  0
sg                     39348  0
usb_storage            82496  0
libusual               30356  1 usb_storage
pata_via               15876  3
sata_via               15492  0
ehci_hcd               44428  0
via_rhine              30728  0
uhci_hcd               30992  0
mii                    13440  1 via_rhine
libata                176928  4 pata_acpi,ata_generic,pata_via,sata_via
usbcore               149872  7 cdc_acm,zd1211rw,usb_storage,libusual,ehci_hcd,uhci_hcd
scsi_mod              155212  5 sr_mod,sd_mod,sg,usb_storage,libata
dock                   16656  1 libata
thermal                23708  0
processor              42156  1 thermal
fan                    12420  0
fbcon                  47392  0
tileblit               10752  1 fbcon
font                   16512  1 fbcon
bitblit                13824  1 fbcon
softcursor              9984  1 bitblit
fuse                   60700  1


and ls -Fx /lib/modules/$(uname -r)/kernel/drivers/usb/serial

aircable.ko         ark3116.ko  belkin_sa.ko    ch341.ko       cp2101.ko       cyberjack.ko         cypress_m8.ko
digi_acceleport.ko  empeg.ko    ftdi_sio.ko     funsoft.ko     garmin_gps.ko   hp4x.ko              io_edgeport.ko
io_ti.ko            ipaq.ko     ipw.ko          keyspan.ko     keyspan_pda.ko  kl5kusb105.ko        kobil_sct.ko
mct_u232.ko         mos7720.ko  mos7840.ko      moto_modem.ko  navman.ko       omninet.ko           option.ko
oti6858.ko          pl2303.ko   safe_serial.ko  sierra.ko      spcp8x5.ko      ti_usb_3410_5052.ko  usb_debug.ko

thanks..
You are missing usbserial.ko in the output from ls -Fx command above. Without that, you are never going to detect USB serial devices, such as modems. If you tell me you have another USB modem working on that system then you prove me wrong - but I'm pretty sure you don't.
Do you have the source that your kernel was built from? If so, you should be able to build usbserial.ko quite easily. Have you configured a kernel before?
Just checked 2.6.29.1 source - the module is renamed usb_serial. It is possible that the module is built in to the kernel. However this is not recommended if using the Generic Serial Driver - from its Help in "make xconfig":

"Say Y here if you want to use the generic USB serial driver. Please
read <file:Documentation/usb/usb-serial.txt> for more information on
using this driver. It is recommended that the "USB Serial converter
support" be compiled as a module for this driver to be used
properly.

You might want to try the generic USB serial driver if your USB chip is otherwise unsupported. From file:Documentation/usb/usb-serial.txt:

"Generic Serial driver

  If your device is not one of the above listed devices, compatible with
  the above models, you can try out the "generic" interface. This
  interface does not provide any type of control messages sent to the
  device, and does not support any kind of device flow control. All that
  is required of your device is that it has at least one bulk in endpoint,
  or one bulk out endpoint.
 
  To enable the generic driver to recognize your device, build the driver
  as a module and load it by the following invocation:
        insmod usbserial vendor=0x#### product=0x####
  where the #### is replaced with the hex representation of your device's
  vendor id and product id.

  This driver has been successfully used to connect to the NetChip USB
  development board, providing a way to develop USB firmware without
  having to write a custom driver.

  For any questions or problems with this driver, please contact Greg
  Kroah-Hartman at greg@kroah.com
Many thanks duncan_roe you are so generous..  Yah i have another modem and it's running find, only my newer modem have problem.. and maybe you are right.. you said that i need to build a usb serial?.. but how? and i never tried configure linux kernel.. but i am willing to learn.
Sounds like you must have usb-serial built in then (when the source is usb-, the module is usually called usb_). The first thing you need to do is ensure you have the source from which your Linux kernel was built. Failing that, just get the latest one from ftp.kernel.org. You'll need to configure it in that case. You could fetch an older kernel (say the latest point rev of what you have now) - that has less potential problems to configure - potential increases the older your current kernel is - but a new kernel may have better drivers.

The best way to configure is to find the configuration file for your current kernel and use that as a starting point. In the source tree itself, it's called ".config" (a hidden file). With luck, you will have a copy of that somewhere - possibly actually in the source tree if you have it (use ls -A to see it). Failing that, there may be a file /proc/config.gz (it's a configuration option to create that). Red Hat has a configs directory in /usr/src/linux. Some distros put a copy of .config in /boot with a name like config_$(uname -r).

Have a look round your system and post back with what you find. Do you have your kernel's source? Have you found the config?

Also please post the output from:

uname -a
i cant find my .conf in my ubuntu...  and i think i have latest ubuntu kernel.. look at this..

uname -a
Linux filsat 2.6.27-11-server #1 SMP Wed Apr 1 21:53:55 UTC 2009 i686 GNU/Lin


That's quite new for a distribution. The latest kernel is 2.6.29.2 released 27th April. You might have some luck from "locate config" - that will bring up a huge list but the file you want might be in there.
I have just downloaded 2.6.29.2 and, compared with my current 2.6.25.4 kernel, there are a *lot* of new USB drivers.
If you are going to embark on configuring a kernel without a previous .config, I definitely recommend going for the newest one.
Meanwhile, try to get more information about you USB device:
- does lspci show any extra detail?
- is there more in /var/log/debug than there is in dmesg (unplug and replug the modem & check any files in /var/log that get updated)
- is there a sticker on or underneath the modem with any extra details?
To give you an idea of what to look for, here are some extracts from new help screens in "make xconfig":

USB Winchiphead CH341 Single Port Serial Driver (USB_SERIAL_CH341)
USB Infinity USB Unlimited Phoenix Driver (USB_SERIAL_IUU) Say Y here if you want to use a IUU in phoenix mode and get an extra ttyUSBx device. More information available on http://eczema.ecze.com/iuu_phoenix.html
USB Keyspan USA-xxx Serial Driver (USB_SERIAL_KEYSPAN) Say Y here if you want to use Keyspan USB to serial converter devices. This driver makes use of Keyspan's official firmware and was developed with their support. You must also include firmware to support your particular device(s). See <http://misc.nu/hugh/keyspan.html> for more information.
***NB lots of firmware alternatives follow, some of them mutually exclusive
USB Motorola Phone modem driver (USB_SERIAL_MOTOROLA)
USB Ours Technology Inc. OTi-6858 USB To RS232 Bridge Controller (USB_SERIAL_OTI6858)
USB SPCP8x5 USB To Serial Driver (USB_SERIAL_SPCP8X5)
USB HP4x Calculators support (USB_SERIAL_HP4X)

It's really bizarre that usb_serial is not built as a module - that is not an option at 2.6.29.2 (choice is module or nothing)
hi!..again duncan_roe thanks for your patients ahmmm.. i have now patch-2.6.29.2 kernel.. how do i install that? i tried apt-cache search kernel-image but i found older version.

for your question:

1. does lspci show any extra detail?

------ here is the output of lspci
00:00.0 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:00.1 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:00.5 PIC: VIA Technologies, Inc. P4M890 I/O APIC Interrupt Controller
00:00.6 Host bridge: VIA Technologies, Inc. P4M890 Security Device
00:00.7 Host bridge: VIA Technologies, Inc. P4M890 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
00:02.0 PCI bridge: VIA Technologies, Inc. P4M890 PCI to PCI Bridge Controller
00:03.0 PCI bridge: VIA Technologies, Inc. P4M890 PCI to PCI Bridge Controller
00:0f.0 IDE interface: VIA Technologies, Inc. VT8237A SATA 2-Port Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 07)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)
00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237A PCI to ISA Bridge
00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 7c)
00:13.0 PCI bridge: VIA Technologies, Inc. VT8237A Host Bridge
00:13.1 PCI bridge: VIA Technologies, Inc. VT8237A PCI to PCI Bridge
01:00.0 VGA compatible controller: VIA Technologies, Inc. P4M890 [S3 UniChrome Pro] (rev 01)
04:01.0 Audio device: VIA Technologies, Inc. VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller) (rev 10)


2.  is there more in /var/log/debug than there is in dmesg (unplug and replug the modem & check any files in /var/log that get updated)?

---------- result of tail -f /var/log/debug

May  1 10:35:13 filsat kernel: [   11.996238] HDA Intel 0000:04:01.0: setting latency timer to 64
May  1 10:35:10 filsat kernel: [   27.150020] eth0: no IPv6 routers present
May  1 12:11:58 filsat kernel: [ 5835.220991] usb-storage: device found at 24
May  1 12:11:58 filsat kernel: [ 5835.221001] usb-storage: waiting for device to settle before scanning
May  1 12:12:03 filsat kernel: [ 5840.210543] usb-storage: device scan complete
May  1 12:12:03 filsat kernel: [ 5840.273773] sr 4:0:0:0: Attached scsi CD-ROM sr0
May  2 11:07:04 filsat kernel: [88341.656254] usb-storage: device found at 30
May  2 11:07:04 filsat kernel: [88341.656263] usb-storage: waiting for device to settle before scanning
May  2 11:07:09 filsat kernel: [88346.650494] usb-storage: device scan complete
May  2 11:07:09 filsat kernel: [88346.654634] sr 5:0:0:0: Attached scsi CD-ROM sr0

3.  is there a sticker on or underneath the modem with any extra details?

------ none i have only the specification and feature.


After building 2.6.29.2, fiund out the module is still called usbserial.ko, despite the name of the source file having changed
My bad re: "It's really bizarre that usb_serial is not built as a module - that is not an option at 2.6.29.2 (choice is module or nothing)". If you have configured "USB support (USB_SUPPORT)" to be built-in, then you can configure "USB Serial Converter support (USB_SERIAL)" to be built-in also. That looks like what Ubuntu has done - it would almost classify as a bug.
If you would like to have a shot at configuring your kernel, here's a way:
Do you have  patch-2.6.29.2.tar.bz2 or linux-2.6.29.2.tar.bz2? (or tar.gz). The patch file is against linux-2.6.29.tar.bz2. You can either fetch that, or forget about patching and fetch linux-2.6.29.2.tar.bz2.
Let's say you have only got the patch file and you are going to patch. That has the advantage that you can ypdate to future point revs of 2.6.29 by simply fetching the patch files:
- Fetch linux-2.6.29.tar.bz2
- (continued in code snippet)

"make defconfig" builds a large kernel with lots of stuff built in that you will never want. But it's practically guaranteed to be able to boot on your hardware without the need for an initial ram disk (initrd), which is an extra complication you simply don't want to worry about as a beginner.
When you type "make xconfig", you get a GUI screen. Scroll down until you see "USB support" in the left-hand panel. Click the empty square box next to "USB Serial Converter support". A black dot appears - this is what you want. If you click again, a tick appears - this means "build in to kernel" whereas the dot means "build as a module". So click twice more to get the dot back. (sometimes a tick means "feature selected" when there is no actual corresponding code, as is the case for "USB support").
While USB Serial Converter support is selected, a number of drivers appear in the top right-hand panel. Select all of these to be modules, except the Firmware drivers for USB Keyspan USA-xxx Serial Driver  (unless you know you have it and which one you want).

File / Save anfd file / Quit. Type "make", ror, to keep a record, "make 2>&1 | tee hee"

Sorry I have to go now - let me know how you get on
# Fetch linux-2.6.29.tar.bz2 (by whatever method you used for patch file), say to /usr/gz/linux-2.6.29.tar.bz2
# Unpack linux:
cd /usr/src
tar -xjf /usr/gz/linux-2.6.29.tar.bz2
cd linux-2.6.29
bzcat /usr/gz/patch-2.6.29.2.tar.bz2 | patch -p1
# You should see a list of lines like "Hunk xxx succeeeded at yyy" and no errors or warnings
# ename directory so you know what's happening
cd ..
mv linux-2.6.29 linux-2.6.29.2
cd linux-2.6.29.2
# The next line gets you a default .config to work on
make defconfig
# Tailor this as described in main panel
make xconfig

Open in new window

many thanks sir duncan_roe i have an idea now..  but i backup first my server... again many many thanks and i hope i can do it. i'll back later.
Hi!..  duncan_roe i have now kernel linux-2.6.29.2. During my compilation I encountered problem which is I cant use make depend command error said that:
 
scripts/kconfig/conf -s arch/x86/Kconfig
*** Warning: make depend is unnecessary now.

Command I used:
make defconfig
Make menuconfig (coz my system is text base so i did not used make xconfig)
Make oldconfig
Make depend (I stuck up here)

Here is my screen shot:

1.PNG
2.PNG
3.PNG
4.PNG
What is different between patch-2.6.29.2.bz2 and linux-2.6.29.2.tar.bz2?. i have now vmlinux and System.map other said that i need to copy that into my boot menu but under my boot menu i have vmlinuz-2.6.27-11-server and System.map-2.6.27-11-server is that okie if i replace it?..
ASKER CERTIFIED SOLUTION
Avatar of Duncan Roe
Duncan Roe
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
thanks a lot, but my only problem now is i can't bulid image like initrd.img-2.6.27-11becuase i want to build initrd.img-2.6.29-2. i tried comand yaird -o initrd.img-2.6.29.2  2.6.29.2 but error occurred:

yaird error: bad device link in /sys/block/sda (fatal)


 initrd.img-2.6.29.2 is need for my grub boot loader.. thanks again ^_^



hi!.. i complete now install my kernel but my modem still not working maybe.. i try again and find the best driver for this device.  thanks for your help. Goodluck and thank you so much...
thank you so much
completely rather