I am setting up a Bigpond wireless USB modem and have a few questions to check I am going down the right path.
I am using the following guide however my modem differs slightly:
quozl.linux.org.au/bp3-usb![]()
The modem is identified with:
children@children:~$ lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 003: ID 1199:6855 Sierra Wireless, Inc.
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 003: ID 413c:3200 Dell Computer Corp.
Bus 003 Device 002: ID 413c:2003 Dell Computer Corp.
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
children@children:~$
However to get a tty device I have to issue the following command every time the computer starts:
sudo insmod /lib/modules/`uname -r`/kernel/drivers/usb/serial/usbs erial.ko vendor=0x1199 product=0x6855
The guide suggests the following command as a test which appears to indicate the modem is setup and working:
children@children:~$ sudo pppd noauth nodetach /dev/ttyUSB0 user ' connect '/usr/sbin/chat ABORT BUSY ABORT "NO CARRIER" "" ATZ OK ATDT*99# CONNECT'
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
PAP authentication succeeded
IPCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
children@children:~$
If someone can confim this means I have set it up correctly I will then proceed with the ppp part which has proven to be a brick wall so far...
Thanks in advance...
As a further question:
How can I obtain a terminal window attached to the modem port so that I can issue AT commands ?
Thanks for this one too...
Best thing you can use for that is minicom, though you can actually open two xterms and do a 'cat /dev/ttyUSB0' in one, the 'echo 'AT<commands>' > /dev/ttyUSB0' in the other. Your card doesn't appear in the sierra.c of the kernel, but if you feel a little adventurous, just adding the pci id's in the source file might give you some joy. (then you should get better speeds out of it, and not have to feed id's to usbserial) When you load the module, does it give three tty's or just the one? The driver has two structs for either one port modems or three port, add to the appropriate one. This page may help.
foomagic.org/wiki/index....card_under_linux![]()
I guess get it working with usbserial first, then if you want any help with editing your kernel, give us a hoy.
Edit: I see your linked page mentions how to patch the sierra source.
Three tty's are created as shown below:
children@children:/$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2008-01-16 09:15 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 2008-01-16 09:15 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 2008-01-16 09:15 /dev/ttyUSB2
children@children:/$
www.sierrawireless.com/f...FAQ.aspx?ID=1077![]()
The following indicates the Sierra Wireless driver is already installed and is the current version:
children@children:/$ modinfo sierra
filename: /lib/modules/2.6.22-14-generic/ker nel/drivers/usb/serial/sierra.ko
license: GPL
version: v.1.0.6
description: USB Driver for Sierra Wireless USB modems
author: Kevin Lloyd <linux@sierrawireless.com
>
srcversion: D464FC22D7181A8DE7EB15F
alias: usb:v05C6p6613d*dc*dsc*dp*ic*isc*i p*
alias: usb:v0F3Dp0112d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0112d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6820d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6813d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6812d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6803d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6804d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p6802d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0021d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0120d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0019d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0020d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0218d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0018d*dc*dsc*dp*ic*isc*i p*
alias: usb:v1199p0017d*dc*dsc*dp*ic*isc*i p*
depends: usbserial,usbcore
vermagic: 2.6.22-14-generic SMP mod_unload 586
children@children:/$
The link above also states the Kernel will be fully compatible in version 2.6.23 and I understand I am current on 2.6.22-14 so I'm guessing as the next Kernel will solve all I'll just stick to usbserial for the time being to avoid stuffing things up. I have no idea about patching the kernel but it sounds a bit beyond my skill set.
Can anyone shed some light on what may be causing the following to fail.
When I dial using wvdial I receive the following information:
children@children:~$ sudo wvdial
WvDial<*1>: WvDial: Internet dialer version 1.56
WvModem<*1>: Cannot get information for serial port.
WvDial<*1>: Initializing modem.
WvDial<*1>: Sending: ATZ
WvDial Modem<*1>: OK
WvDial<*1>: Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
WvDial Modem<*1>: OK
WvDial<*1>: Sending: AT+CGDCONT=1,"IP","telstra.interne t"
WvDial Modem<*1>: OK
WvDial<*1>: Modem initialized.
WvDial<*1>: Sending: ATD*99#
WvDial<*1>: Waiting for carrier.
WvDial Modem<*1>: CONNECT
WvDial<*1>: Carrier detected. Starting PPP immediately.
WvDial<Notice>: Starting pppd at Wed Jan 16 11:18:36 2008
WvDial<Notice>: Pid of pppd: 5740
WvDial<*1>: Using interface ppp0
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: pppd: З[06][08]
WvDial<*1>: Disconnecting at Wed Jan 16 11:19:13 2008
WvDial<*1>: The PPP daemon has died: A modem hung up the phone (exit code = 16)
WvDial<*1>: man pppd explains pppd error codes in more detail.
WvDial<Notice>: Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
WvDial<Notice>: Auto Reconnect will be attempted in 5 seconds
The following is logged in /var/log/messages:
Jan 16 11:12:53 children pppd[5718]: pppd 2.4.4 started by root, uid 0
Jan 16 11:12:53 children pppd[5718]: Using interface ppp0
Jan 16 11:12:53 children pppd[5718]: Connect: ppp0 <--> /dev/ttyUSB0
Jan 16 11:12:53 children pppd[5718]: CHAP authentication succeeded
Jan 16 11:12:53 children pppd[5718]: CHAP authentication succeeded
Jan 16 11:13:23 children pppd[5718]: IPCP: timeout sending Config-Requests
Jan 16 11:13:29 children pppd[5718]: Connection terminated.
Jan 16 11:13:29 children pppd[5718]: Modem hangup
Jan 16 11:13:29 children pppd[5718]: Exit.
Jan 16 11:13:35 children pppd[5722]: pppd 2.4.4 started by root, uid 0
Jan 16 11:13:35 children pppd[5722]: Using interface ppp0
Jan 16 11:13:35 children pppd[5722]: Connect: ppp0 <--> /dev/ttyUSB0
Jan 16 11:13:35 children pppd[5722]: CHAP authentication succeeded
Jan 16 11:13:35 children pppd[5722]: CHAP authentication succeeded
Jan 16 11:14:05 children pppd[5722]: IPCP: timeout sending Config-Requests
Jan 16 11:14:11 children pppd[5722]: Connection terminated.
Jan 16 11:14:11 children pppd[5722]: Modem hangup
Jan 16 11:14:11 children pppd[5722]: Exit.
Jan 16 11:14:22 children pppd[5725]: pppd 2.4.4 started by root, uid 0
Jan 16 11:14:22 children pppd[5725]: Using interface ppp0
Jan 16 11:14:22 children pppd[5725]: Connect: ppp0 <--> /dev/ttyUSB0
Jan 16 11:14:22 children pppd[5725]: CHAP authentication succeeded
Jan 16 11:14:22 children pppd[5725]: CHAP authentication succeeded
Jan 16 11:14:53 children pppd[5725]: IPCP: timeout sending Config-Requests
Jan 16 11:14:59 children pppd[5725]: Connection terminated.
Jan 16 11:14:59 children pppd[5725]: Modem hangup
Jan 16 11:14:59 children pppd[5725]: Exit.
Thanks in advance...
Thats the same error I was getting when I was trying to use my telstra sim in my vodafone locked card. I know its a telstra modem, but you do have a telstra sim in it dont you? Even after setting pppd to be more verbose, I still wasn't getting any informative errors when I had the wrong sim card in, so I am at a bit of a loss as to how to debug this further.
Oh, and btw, I am running a 24rc kernel, and the id's for your card still arent in it. Not that it matters atm anyway.
My card was supplied straight from bigpond with a sim, it works under XP.
The model is Sierra Wireless 880U which appears to be a new cad that has not be addressed by the linux community yet.
I thought I had struck gold with the following kb article however even though it applies to my model it is not included in the supported devices table...
www.sierrawireless.com/f...FAQ.aspx?ID=1077![]()
I've sent an email off to them and will wait for a response...
This article claims the drivers and patches are in the 2.6.23 Kernel so guess I'll be sticking with usbserial for a while now.
Thanks and I'll let you know if I discover anything.
OK I have discovered the following...
IT WORKS !!!!
Once I've fine tuned I'll document my solution however I have the following question.
Every time I boot I have to enter the following commands in a terminal window:
sudo modprobe -r usbserial
sudo modprobe usbserial vendor=0x1199 product=0x6855
I would like to save these settings to avoid entering them every time and I found the following solution here: quozl.linux.org.au/bp3-u...nfiguring-kernel![]()
make the change permanent, so that the insmod will happen automatically next time a system is booted, add the following two lines to /etc/modules on Ubuntu, or Debian GNU/Linux:
options usbserial vendor=0x16d8 product=0x6280
usbserial
However after a reboot it still didn't work... is this the correct solution or should I enter my commands in rc.local as I have read elsewhere ?
Thanks in advance...
options usbserial vendor=0x16d8 product=0x6280
By the time /etc/modules is read, the module has likely already been loaded by the initramfs (intial ramdisk used during the boot process, there is one stored in /boot/ for each kernel you have installed). Instead, create a file under /etc/modprobe.d/ with any name you like (eg. "LOCAL") and put the above in that.
That means that in future when you run modprobe usbserial, modprobe will use those options, saving you from having to give them on the command line. The last step is to regenerate/update your initramfs now so that it will contain the new modprobe options.
Try running a update-initramfs -u. This should regenerate it, and back up the old one to the same name with a .bak extension.
Hi eloki... answering my cries for help yet again :)
I do apologise but after the adrenaline rush of getting this card running last night I posted the wrong command. It appears that the following was not the solution I found:
sudo modprobe -r usbserial
sudo modprobe usbserial vendor=0x1199 product=0x6855
The command that I got the card to work with was:
sudo insmod /lib/modules/`uname -r`/kernel/drivers/usb/serial/usbs erial.ko vendor=0x1199 product=0x6855
I have tried both and only the second command works... after reading the man pages for both the appear to be similar so I'm not sure why one works and the other doesn't Most users will want to use modprobe(8) instead, which is cleverer
So to automate this command upon startup is this the one I should be putting into rc.local ?
Thanks in advance...
then if you want any help with editing your kernel, give us a hoy.
"hoy" :)
I have found the following which appears straight forward enough:
www.howtogeek.com/howto/...ur-ubuntu-kernel![]()
I have downloaded the kernel source, unzipped it and now I am guessing I find the sierra.ko module and manually edit it to include the vendor and product ids for my card then I simply recompile the kernel and viola !
The page I originally linked mentions how to patch the sierra module however my card's numbers differ slightly to what is shown. My numbers are:
vendor=0x1199
product=0x6855
quozl.linux.org.au/bp3-usb/#2007-01-25![]()
OK... I'm stuck !
children@children:/usr/src$ ls -l
total 44348
lrwxrwxrwx 1 root src 19 2008-01-17 07:44 linux -> linux-source-2.6.22
drwxr-xr-x 19 root root 4096 2007-12-21 20:21 linux-headers-2.6.22-14
drwxr-xr-x 5 root root 4096 2007-12-21 20:21 linux-headers-2.6.22-14-generic
drwxr-xr-x 21 root root 4096 2008-01-17 07:45 linux-source-2.6.22
-rw-r--r-- 1 root root 45347309 2007-12-18 21:23 linux-source-2.6.22.tar.bz2
children@children:/usr/src$ sudo find /usr/src/linux | grep sierra
children@children:/usr/src$
OK... I'm stuck !
You didn't read enough of the article you quoted, see: drivers/usb/serial/sierra.c
OK... slowly understanding the process... (emphasis on slowly)
I got thrown as my find command didn't find the sierra.c file (not sure why) however I have located an updated sierra.c file from here from my 2.6.22 kernel:
www.sierrawireless.com/f...FAQ.aspx?ID=1077![]()
I have downloaded the file and unzipped it and found an updated sierra.c file and a Makefile file.
Now I can conclude that I would simply replace the old source sierra.c file with the new one I have downloaded then recompile the kernel however I have no idea where the 'Makefile' file fits into the picture.
In an earlier post...
options usbserial vendor=0x16d8 product=0x6280
In a later post...
It appears that the following was not the solution I found:
sudo modprobe -r usbserial
sudo modprobe usbserial vendor=0x1199 product=0x6855
In your two posts you have passed different vendor and product IDs to the module in question. Is this intentional? It makes the conclusion seem a bit iffy.
I have tried both and only the second command works...
I agree, it's highly unlikely that insmod succeeds but modprobe fails. As you have rightly concluded, they are almost exactly the same; the only difference is that modprobe can load a module from your module directory by name alone (eg. "usbserial") rather than requiring a full path, and that modprobe also loads any other modules your module depends on (sort of like the difference between apt and dpkg).
If you do a modinfo usbserial to display information about the module named "usbserial", the "filename" field should be the same path as the one you are doing an insmod on.
Sorry eloki, my mistake. Using the correct vendor and product ids did work.
children@children:~$ cat /etc/modprobe.d/LOCAL
options usbserial vendor=0x1199 product=0x6855
children@children:~$
Now when I reboot I issue modprobe usbserial and it works ! What would be the best way to automate the entering of this command so it is automatically run at startup ?
Thanks in advance...
p.s. I'm getting adventurous here and looking at the kernel patch as I understand it will give greater download speeds from the 7.2 card.
It looks like to me that the make file is an executable that will update the sierra.ko module without having to rebuild the kernel. Reading through the makefile it makes no reference to the source directory other than the line commented out so it appears to just be a case of run the Makefile and it's done.
# Copyright Sierra Wireless 2006
# Makefile to install the sierra module.
# Dependencies: usb-serial.ko already installed.
# this makefile assumes that kernel modules are installed in /lib/modules/'uname -r'/
# and that kernel source is located /usr/src/linux/
obj-m := sierra.o
BUILDDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
USBDIR := /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial
default:
# $(shell cp /usr/src/linux/drivers/usb/serial/ usb-serial.h ./)
$(MAKE) -C $(BUILDDIR) SUBDIRS=$(PWD) modules
install:
$(shell install -m 644 sierra.ko $(USBDIR))
$(shell depmod -a)
$(shell modprobe sierra)
clean:
$(shell rm -f *.o *.ko usb-serial.h sierra.mod.c)
# Copyright Sierra Wireless 2006
Soooo close now...
children@children:~/Desktop/v.1.2. 7(kernel2.6.21)$ sudo chmod +x Makefile
children@children:~/Desktop/v.1.2. 7(kernel2.6.21)$ sudo ./Makefile
./Makefile: 9: obj-m: not found
./Makefile: 11: shell: not found
./Makefile: 11: BUILDDIR: not found
./Makefile: 12: shell: not found
./Makefile: 12: PWD: not found
./Makefile: 13: shell: not found
./Makefile: 13: USBDIR: not found
./Makefile: 16: default:: not found
./Makefile: 18: MAKE: not found
./Makefile: 18: BUILDDIR: not found
./Makefile: 18: PWD: not found
./Makefile: 18: -C: not found
./Makefile: 21: install:: not found
./Makefile: 22: USBDIR: not found
./Makefile: 22: shell: not found
./Makefile: 23: shell: not found
./Makefile: 24: shell: not found
./Makefile: 28: clean:: not found
./Makefile: 29: shell: not found
children@children:~/Desktop/v.1.2. 7(kernel2.6.21)$
Edit: make then make install :) Got it working !