USB Modem detected - but not showing under Interfaces?
-
Firstly the Linux driver for smoothwall. I tested it back and forth and attach it again :-\ There are 3 copies now… it contains folders.
Secondly the modem is USB only
I would have liked another option with ethernet.
Wallabybob, if you could open the linux driver , can it be used?Let us try to get a way to make drivers. 8)
Yes - I have been reading about reverse engineering the windows USB drivers for Linux.
U start the USB device in Windows, with its correct drivers, and snoop what they do and how they are functioning.
SniffUSB 2.0 then creates the log files.
[Emacs is then used to read the info]
One would use the log files generated to create a simple libusb skeleton driver through a perl parser.
Windows have 3 drivers for it: The modem driver, a composite usb driver, and a diagnostic driver. All their log files is included.I don't know how to use the last yet.
I created the modems log files. Took me quite a while. I have a second set if there are a need.
Attached are my log files, again remove.txt. to get the zipped file. ;)And yes, let us document the process so that PfSense USB drivers get well populated.
So let us document each step and at success, post a new How to USB Drivers post - summing up each step.
[usb - Copy.tgz.txt](/public/imported_attachments/1/usb - Copy.tgz.txt)
DupontLogs.zip.txt -
I have the same problem with Vodafone (Huawei) K3765. the modem is detected but not shown under interfaces
The u3g driver does not have that Huawei device in its table of known devices. The fact that FreeBSD calls it ugen1.2 indicates the kernel doesn't have a driver that specifically knows about that device so the USB "generic" device driver has attached to it.
Perhaps this device is "similar enough" to the other Huawei devices already supported by the u3g driver, perhaps its substantially different.
I suggest you discuss this with the authors of the FreeBSD u3g driver: Andrea Guzzo aguzzo@anywi.comand Nick Hibma n_hibma@freebsd.org@dimi3:
With Huawei E220 its working nice but I would like to have 7.2Mbit modem atached.
It could take a while to get this issue sorted out. The Huawei E1762 and E169 both appear to be supported in FreeBSD 8.1 (see http://azrixx.blogspot.com/2010/05/simple-way-to-use-huawei-e1762-maxis.html and http://www.listware.net/201007/freebsd-mobile/36378-australian-3g-pppconf.html FreeBSD) and both appear to support the 7.2Mbps mode (see http://www.3gmodem.com.hk/Huawei/E169.html and http://www.3gmodem.com.hk/Huawei/E1762.html) although it has been reported that the E1762 is "faster" than the E169 (see http://forums.whirlpool.net.au/forum-replies-archive.cfm/1288764.html)./n_hibma@freebsd.org/aguzzo@anywi.com
-
Firstly the Linux driver for smoothwall. I tested it back and forth and attach it again :-\
I originally downloaded it to a Linux system. I have now downloaded the copy to a windows system and WinZip reports "Trailing garbage in GZIP file" and refuses to show me anything in the archive. In both cases I downloaded with Firefox. What are you doing differently to what I've done?
What you have outlined is certainly possible but can take considerably longer to actually do than it does to describe it.
-
It does seem to be changed when I download the drivers from the post like you did.
That means I have to think of something else…. >:(Anyone that want to look at any of the zipped files, send me a private message.
Email is the answer….. I SHALL SEND THEM TO YOU :'( -
Here are the Window USBSniff log files for reverse engineering, - they are .txt - but maybe rename to .log for use in Emacs to create a driver from them ….
The USB modem driver logs
[MODEM - INIT.log.txt](/public/imported_attachments/1/MODEM - INIT.log.txt)
[MODEM DIAL MANAGER STARTED.log.txt](/public/imported_attachments/1/MODEM DIAL MANAGER STARTED.log.txt)
[MODEM DIALED.log.txt](/public/imported_attachments/1/MODEM DIALED.log.txt)
[MODEM DISCONNECTED.log.txt](/public/imported_attachments/1/MODEM DISCONNECTED.log.txt)
[MODEM STOPPED.log.txt](/public/imported_attachments/1/MODEM STOPPED.log.txt) -
Driver 2 Composite USB Driver:
[COMPOSITE USB - INIT.log.txt](/public/imported_attachments/1/COMPOSITE USB - INIT.log.txt)
[COMPOSITE USB DIAL MANAGER STARTED.log.txt](/public/imported_attachments/1/COMPOSITE USB DIAL MANAGER STARTED.log.txt)
[COMPOSITE USB DIALED.log.txt](/public/imported_attachments/1/COMPOSITE USB DIALED.log.txt) -
Composite diver remaining logs:
[COMPOSITE USB DISCONNECTED.log.txt](/public/imported_attachments/1/COMPOSITE USB DISCONNECTED.log.txt)
[COMPOSITE USB STOPPED.log.txt](/public/imported_attachments/1/COMPOSITE USB STOPPED.log.txt) -
Driver 3 - Diagnostic driver:
[DIAGNOSTICS on modem - INIT.log.txt](/public/imported_attachments/1/DIAGNOSTICS on modem - INIT.log.txt)
[DIAGNOSTICS on modem DIAL MANAGER STARTED.log.txt](/public/imported_attachments/1/DIAGNOSTICS on modem DIAL MANAGER STARTED.log.txt)
[DIAGNOSTICS on modem DIALED.log.txt](/public/imported_attachments/1/DIAGNOSTICS on modem DIALED.log.txt) -
Diagnostic driver remaining logs:
[DIAGNOSTICS on modem DISCONNECTED.log.txt](/public/imported_attachments/1/DIAGNOSTICS on modem DISCONNECTED.log.txt)
[DIAGNOSTICS on modem STOPPED.log.txt](/public/imported_attachments/1/DIAGNOSTICS on modem STOPPED.log.txt) -
I looked at http://mybroadband.co.za/vb/showthread.php/171823-How-I-got-Neotel-running-on-Ubuntu-9.04… and the Linux source file patched by the procedure.
It looks to me that just adding the IDs for the "Neotel" modem to the Linux driver that handles a lot of 3G USB modems was sufficient to get this modem working on Linux. This suggests that just adding the Neotel modem IDs to the FreeBSD 3G USB modem driver might just be enough to get it working.
I'll try to put aside some time in the next few days to work out a binary patch procedure for the kernel to replace one of the existing IDs.
-
Don't know if it will help you wallabybob but it shows how support for E1752 was added.
http://lists.freebsd.org/pipermail/freebsd-usb/2010-February/008294.html
http://svn.freebsd.org/viewvc/base?view=revision&revision=206306 -
**Thanks Wallabybob, I think you are on the right track. ;) **
Also - the USBSnoop/Sniff log files can help with what you actually have to do.
i it does, please let us know - so that others can follow….
Did you get my private message? i gave you my e-mail address so that I can give you the Linix diver - [also written by an Australian] -
Using USBSniffing-Snooping to reverse engineer Windows drivers for Linux:
http://www.jespersaur.com/drupal/book/export/html/21
http://groups.google.com/group/microdia/web/usb-sniffing-on-windows
http://groups.google.com/group/microdia/web/reverse-engineering-windows-drivers
http://groups.google.com/group/microdia/web/howto-write-your-init-driver-function -
Thanks Perry.
A Note: The modem speed is 2.4 Mbps - if you need to take into account when writing the driver…. -
**Thanks Wallabybob, I think you are on the right track. ;) **
A Note: The modem speed is 2.4 Mbps - if you need to take into account when writing the driver….
Ah, The perils of volunteering! :)
Please be clear about this! I haven't signed up to write a FreeBSD device driver for this device. I did sign up to INVESTIGATE if I could provide a way to get the existing FreeBSD u3g driver to attach to the device so someone could investigate if it would then function correctly enough to be useful.
Zani: I did get your email. By that stage I had already found the link I posted earlier, showing a patch procedure for the Linux driver.
Don't know if it will help you wallabybob but it shows how support for E1752 was added.
This involved adding the IDs for the E1752 to the u3g driver table AND adding a new initialisation function. The link I posted earlier for the Linux driver update just added the IDs.
-
Wallabybob I do understand :)
In the meantime I gave Hans Petter Selasky the info,
and about the getting the driver working under Ubuntu [Code:[b]// +++ chrisb
#define NEOTEL_DEVICE_VENDOR_ID 0x1d09
#define NEOTEL_DEVICE_PRODUCT_ID 0x4000
// +++[/b]
"and then in the struct add:" (the line in colour)
Code:
[b]Static struct USB_device_id option_ids[] = {
{ USB_DEVICE(NEOTEL_DEVICE_VENDOR_ID, NEOTEL_DEVICE_PRODUCT_ID) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
[/b]Save and close gedit.
"To compile:"
Code:
[b]$ cd /usr/src/Linux-source-2.6.28/drivers/USB/serial/
$ make -C /lib/modules/
uname -r
/build M=pwd
[/b]If successful you should see a long list without errors resembling the following:
Code:
[b]Make: Entering directory `/usr/src/Linux-headers-2.6.24-21-generic'
LD /usr/src/Linux-source-2.6.24/drivers/USB/serial/built-in.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/USB-serial.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/generic.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/bus.o
....
Make: Leaving directory `/usr/src/Linux-headers-2.6.24-21-generic'[/b]
"Backup the old drivers"
Code:
[b]$ mv /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko.backup[/b]
"Now add new drivers (compiled):"
Code:
[b]$ cp /usr/src/Linux-source-2.6.28/drivers/USB/serial/option.ko /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko[/b]
"You also need to load the new option:"
Code:
[b]$ gedit /etc/modules[/b]
"And just add to the end of the file:"
Code:
[b]Option[/b]
Reboot your computer, open a terminal again and type:
Code:
[b]$ lsusb[/b]
Which should produce, among others:
Code:
[b]
Bus 002 Device 002: ID 1d09:4000 TechFaith Wireless Technology Limited[/b][b]Step 3) [/b]
Open a terminal and type:
Code:
[b]$ sudo -s[/b]
And then:
Code:
[b]$ wvdialconf[/b]
Which should produce something similar to:
Code:
[b]Editing `/etc/wvdial.conf'.
Scanning your serial ports for a modem.
ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
[/b]Now run:
[b]$ gedit /etc/wvdial.conf[/b]
Copy and paste the following and change your username and password:
Code:
[b][Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Stupid Mode = 1
Phone = #777
Modem = /dev/ttyUSB0
Username = 1234567890@neotel.co.za
Dial Command = ATDT
Password = 1234
Baud = 460800
PPPD Options = crtcts multilink usepeerdns lock defaultroute
[Dialer neotel]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Baud = 460800
Stupid Mode = 1
Modem = /dev/ttyUSB0
Modem Type = USB Modem
Dial Command = ATDT
PPPD Options = crtcts multilink usepeerdns lock defaultroute
[/b]Save and close gedit
[b]
Step 4)[/b]In the terminal, as any user, type:
[b]$ wvdial[/b]
Which, if successful, should result in:
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ ATZ OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK
--> Modem initialized. --> Sending: ATDT#777
--> Waiting for carrier. ATDT#777 CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu May 14 22:59:46 2009
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 4541
--> Using interface ppp0
--> pppd: 0 [1c][08]P [1c][08]
--> pppd: 0 [1c][08]P [1c][08]
--> pppd: 0 [1c][08]P [1c][08]
--> pppd: 0 [1c][08]P [1c][08]
--> pppd: 0 [1c][08]P [1c][08]
--> local IP address 41.174.2.250
--> pppd: 0 [1c][08]P [1c][08]
--> remote IP address 2.2.2.2
--> pppd: 0 [1c][08]P [1c][08]
--> primary DNS address 41.160.0.36
--> pppd: 0 [1c][08]P [1c][08]
--> secondary DNS address 41.160.0.37
--> pppd: 0 [1c][08]P [1c][08]
and a fully working internet connection!!!!! :D
to disconnect, in the terminal that is running wvdial, hold ctrl-c
For a graphical way of dialing...
Install Gnome-PPP, it uses wvdial as it's backend and works perfectly.
" target="_blank"> he wrote:
His answer :
I think the driver is called uhso.c, see /sys/dev/usb/net/uhso.c . Maybe there
is a missing VID+PID in the table there if it does not get detected under
FreeBSD 8+.–HPS
Fredrik Lindberg's answer on HPS:
I don't recognize the device name nor the IDs. If it's a standard plain
serial modem for use with ppp then u3g is most likely the correct
driver.Fredrik
So now I repeat the Ubuntu process from the forum for the sake of comprehensiveness:
How I [somebody else] got Neotel running on Ubuntu 9.04…
Decided to install Jaunty as my Hardy was very messy. I've been running Linux since Breezy but still regard myself as a noobie.
After much trial and tribulation, and many failed attempts on Hardy, I finally got my Neotel Prime running, first time round on Jaunty.
Following is a step-by-step process which I take NO CREDIT for!
I am merely posting this in an attempt to make the process a bit easier to understand and follow for all Linux(Ubuntu) users out there wishing to use Neotel.
This was done on a fresh installation of Ubuntu 9.04 Jaunty Jackalope.
It helps having an Internet connection for the first step of the process... Otherwise packages can be downloaded seperately and Google will provide details on unpacking and installing.
Step 1)
First download the necessary packages we need.
Open System>Administration>Synaptic Package Manager
Find and install:
Code:
**1) wvdial
- Linux-source**
If the above are not listed, open terminal, use the code(s):
Code:
**1) $ sudo apt-get install wvdial
- $ sudo apt-get install Linux-source**
Step 2)
Open a terminal and type:
Code:
**$ sudo -s
$ cd /usr/src
$ tar xjvf Linux-source-2.6.28.tar.bz2
$ gedit /usr/src/Linux-source-2.6.28/drivers/USB/serial/option.c**
"Now look for static struct USB_device_id option_ids[] about line 300 and add the following just above it:"
Code:
**// +++ chrisb
#define NEOTEL_DEVICE_VENDOR_ID 0x1d09
#define NEOTEL_DEVICE_PRODUCT_ID 0x4000
// +++**
"and then in the struct add:" (the line in colour)
Code:
**Static struct USB_device_id option_ids[] = {
{ USB_DEVICE(NEOTEL_DEVICE_VENDOR_ID, NEOTEL_DEVICE_PRODUCT_ID) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },**
Save and close gedit.
"To compile:"
Code:
**$ cd /usr/src/Linux-source-2.6.28/drivers/USB/serial/
$ make -C /lib/modules/
uname -r
/build M=pwd
**If successful you should see a long list without errors resembling the following:
Code:
**Make: Entering directory `/usr/src/Linux-headers-2.6.24-21-generic'
LD /usr/src/Linux-source-2.6.24/drivers/USB/serial/built-in.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/USB-serial.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/generic.o
CC [M] /usr/src/Linux-source-2.6.24/drivers/USB/serial/bus.o
….
Make: Leaving directory `/usr/src/Linux-headers-2.6.24-21-generic'**
"Backup the old drivers"
Code:
$ mv /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko.backup
"Now add new drivers (compiled):"
Code:
$ cp /usr/src/Linux-source-2.6.28/drivers/USB/serial/option.ko /lib/modules/2.6.28-11-generic/kernel/drivers/USB/serial/option.ko
"You also need to load the new option:"
Code:
$ gedit /etc/modules
"And just add to the end of the file:"
Code:
Option
Reboot your computer, open a terminal again and type:
Code:
$ lsusb
Which should produce, among others:
Code:
Bus 002 Device 002: ID 1d09:4000 TechFaith Wireless Technology LimitedStep 3)
Open a terminal and type:
Code:
$ sudo -s
And then:
Code:
$ wvdialconf
Which should produce something similar to:
Code:
**Editing `/etc/wvdial.conf'.
Scanning your serial ports for a modem.
ttyS0<*1>: ATQ0 V1 E1 – failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"</info>**
Now run:
$ gedit /etc/wvdial.conf
Copy and paste the following and change your username and password:
Code:
**[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 9600
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Stupid Mode = 1
Phone = #777
Modem = /dev/ttyUSB0
Username = 1234567890@neotel.co.za
Dial Command = ATDT
Password = 1234
Baud = 460800
PPPD Options = crtcts multilink usepeerdns lock defaultroute
[Dialer neotel]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Baud = 460800
Stupid Mode = 1
Modem = /dev/ttyUSB0
Modem Type = USB Modem
Dial Command = ATDT
PPPD Options = crtcts multilink usepeerdns lock defaultroute**
Save and close gedit
Step 4)In the terminal, as any user, type:
$ wvdial
Which, if successful, should result in:
–> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ ATZ OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK
--> Modem initialized. --> Sending: ATDT#777
--> Waiting for carrier. ATDT#777 CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu May 14 22:59:46 2009
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 4541
--> Using interface ppp0
--> pppd: 0 [1c][08]P [1c][08]
–> pppd: 0 [1c][08]P [1c][08]
–> pppd: 0 [1c][08]P [1c][08]
–> pppd: 0 [1c][08]P [1c][08]
–> pppd: 0 [1c][08]P [1c][08]
–> local IP address 41.174.2.250
--> pppd: 0 [1c][08]P [1c][08]
–> remote IP address 2.2.2.2
--> pppd: 0 [1c][08]P [1c][08]
–> primary DNS address 41.160.0.36
--> pppd: 0 [1c][08]P [1c][08]
–> secondary DNS address 41.160.0.37
--> pppd: 0 [1c][08]P [1c][08]
and a fully working internet connection!!!!! :D
to disconnect, in the terminal that is running wvdial, hold ctrl-c
For a graphical way of dialing…
Install Gnome-PPP, it uses wvdial as it's backend and works perfectly.</info>](he wrote:<br /><br />His answer :<br />[color]I think the driver is called uhso.c, see /sys/dev/usb/net/uhso.c . Maybe there<br />is a missing VID+PID in the table there if it does not get detected under<br />FreeBSD 8+.<br /> <br />--HPS[/color]<br /><br />[b]Fredrik Lindberg[/b]'s answer on HPS:<br /><br />[color]I don't recognize the device name nor the IDs. If it's a standard plain<br />serial modem for use with ppp then u3g is most likely the correct<br />driver.<br /> <br />Fredrik[/color]<br /><br />[b]So now I repeat the Ubuntu process from the forum for the sake of comprehensiveness:[/b]<br /><br />How I [somebody else] got Neotel running on Ubuntu 9.04...<br /><br />Decided to install Jaunty as my Hardy was very messy. I've been running Linux since Breezy but still regard myself as a noobie.<br /><br />After much trial and tribulation, and many failed attempts on Hardy, I finally got my Neotel Prime running, first time round on Jaunty.<br /><br />Following is a step-by-step process which I take NO CREDIT for!<br /><br />I am merely posting this in an attempt to make the process a bit easier to understand and follow for all Linux(Ubuntu) users out there wishing to use Neotel.<br /><br />This was done on a fresh installation of Ubuntu 9.04 Jaunty Jackalope.<br /><br />It helps having an Internet connection for the first step of the process... Otherwise packages can be downloaded seperately and Google will provide details on unpacking and installing.<br /><br />[b]Step 1)[/b]<br /><br />First download the necessary packages we need.<br /><br />Open System>Administration>Synaptic Package Manager<br /><br />Find and install:<br /><br />Code:<br /><br />[b]1) wvdial<br /><br />2) Linux-source<br />[/b]<br /><br />If the above are not listed, open terminal, use the code(s):<br /><br />Code:<br /><br />[b]1) $ sudo apt-get install wvdial<br /><br />2) $ sudo apt-get install Linux-source[/b]<br /><br /><br />[b]Step 2) [/b]<br /><br />Open a terminal and type: <br /><br />Code:<br /><br />[b]$ sudo -s<br /><br />$ cd /usr/src<br /><br />$ tar xjvf Linux-source-2.6.28.tar.bz2<br /><br />$ gedit /usr/src/Linux-source-2.6.28/drivers/USB/serial/option.c[/b]<br /><br /><br />)
-
INSTRUCTIONS BY NEOTEL SELF:
Instructions for Use:
Steps are as follows (with sample explanation to follow):
-
modprobe the usbserial driver directly for the device
-
ppp dialer config
How to do it:
Plug in your modem, and then use the 'lsusb' command.
Code
user@linux:~$> lsusb
Bus 002 Device 002: ID 1d09:4000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Here we get the USB vendor and product ID's (the first one, in this case).
Now we load the 'usbserial' driver specifically for this device:
Code
user@linux:~$> sudo modprobe usbserial vendor=0x1d09 product=0x4000
As you can see, we use the first segment of the ID number as the vendor,
and the second segment as the product ID, both with 0x prepended.
Now, we check /dev to see that the devices are there:
Code:
user@linux:~$>ls /dev/ttyU*
/dev/ttyUSB0 /dev/ttyUSB1
Next step is to configure the ppp connection.
Since this example is done on an Ubuntu installation, we can use the Debian pppconfig utility
Code:
user@linux:~$> sudo pppconfig
In this utility, you enter the your username, password and the telephone number as needed, and then save the connection.
Be sure to pick a descriptive name, as it is what you will be using to dial it up. Exit, and then we're ready to dial.
Dialing on Ubuntu:
Code:
user@linux:~$> sudo pon neotel
Where "neotel" is the connection name you picked in setup.
And that's it. At this point if nothing went wrong, you'll have a fully working ppp0 connection up.
Code:
ifconfig | grep ppp0
-
-
The recent snapshot of pfSense that I downloaded is missing a few components (kgdb and kernel symbols) I hoped to use in the procedure to see if Zani's modem would work with the u3g driver. So here's a way of testing the theory with a standard FreeBSD 8.1:
-
(if necessary) install FreeBSD 8.1
-
Boot FreeBSD 8.1 without the modem plugged in.
-
Login as root and type the bold parts of the following:
kgdb -w /boot/kernel/kernel /dev/mem
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"…
#0 sched_switch (td=0xc09cdf10, newtd=0xc2d35780, flags=260) at ../../../kern/sched_ule.c:1850
1850 cpuid = PCPU_GET(cpuid);
(kgdb) p/x u3g_devs[0]
$1 = {driver_info = 0x0, idVendor = 0x4a5, idProduct = 0x4068, bcdDevice_lo = 0x0, bcdDevice_hi = 0x0, bDeviceClass = 0x0,
bDeviceSubClass = 0x0, bDeviceProtocol = 0x0, bInterfaceClass = 0x0, bInterfaceSubClass = 0x0, bInterfaceProtocol = 0x0,
match_flag_vendor = 0x1, match_flag_product = 0x1, match_flag_dev_lo = 0x0, match_flag_dev_hi = 0x0,
match_flag_dev_class = 0x0, match_flag_dev_subclass = 0x0, match_flag_dev_protocol = 0x0, match_flag_int_class = 0x0,
match_flag_int_subclass = 0x0, match_flag_int_protocol = 0x0, match_flags = 0x0}
(kgdb) set u3g_devs[0].idVendor = 0x1d09
(kgdb) set u3g_devs[0].idProduct = 0x4000
(kgdb) p/x u3g_devs[0]
$2 = {driver_info = 0x0, idVendor = 0x1d09, idProduct = 0x4000, bcdDevice_lo = 0x0, bcdDevice_hi = 0x0, bDeviceClass = 0x0,
bDeviceSubClass = 0x0, bDeviceProtocol = 0x0, bInterfaceClass = 0x0, bInterfaceSubClass = 0x0, bInterfaceProtocol = 0x0,
match_flag_vendor = 0x1, match_flag_product = 0x1, match_flag_dev_lo = 0x0, match_flag_dev_hi = 0x0,
match_flag_dev_class = 0x0, match_flag_dev_subclass = 0x0, match_flag_dev_protocol = 0x0, match_flag_int_class = 0x0,
match_flag_int_subclass = 0x0, match_flag_int_protocol = 0x0, match_flags = 0x0}
(kgdb) quitThis changes an entry in the u3g driver's table of devices it recognises so it will recognise the Neotel modem.
-
Plug in the modem. On the console the system should report a u3g device.
-
Configure and attempt to use the u3g interface. I'm hoping to get a 3G modem later this week. I may be able to provide more configuration details later ths week or early next week.
If the modem works with the (slightly modified) u3g driver you can submit a problem report to the FreeBSD developers to get the corresponding change into the source code and work on the pfSense developers to get it into pfSense.
-
-
Download the file from here.
http://www.mediafire.com/?bcsv0efbdq3boyxPut it in /boot/kernel on the pfSense install and reboot.
Is your modem detected after rebooting?This is patched kernel with your ids.
-
Thanks so far Wallabybob: :)
I have to download FreeBSD 8.1 -
The # kgdb -w /boot/kernel/kernel /dev/mem was not recocnized by PfSense.So I tried Ermal's [thanks!]kernel file - with no luck so far.
Ermal, I need to understand this kernel file - did you put the missing components in there?
My next step is to download FreeBSD8.1 - this can take a while…
PS
;D IT SEEMS I WAS NOT LOOKING PROPERLY - SEE DOWN BELOW! ;D
AND ERMAL - WHAT DID YOU DO! :D - We need to know! Just the ID's? How?
And is the future kernel going to have it?