This unofficial HOWTO explains how you can make Option’s GlobeTrotter Fusion Broadband Wireless Datacard work with a Linux laptop. It is based on my experiences with the card and the SUSE 9.1 version of Linux.
The information presented here, except for the WLAN section is very similar to my Vodafone 3G Howto.
As with previous Howtos I use the following conventions:
For simplicity I refer to the Option GlobeTrotter Fusion Broadband Wireless Datacard as the Fusion.
For clarity all commands typed at a command terminal are indicated like this.
Some_command with parameters
Modem AT commands are indicated like this in text or this:
AT
Please feel free to comment on what you find here.
The Fusion is a multifunction Cardbus device. It has a very good feature set providing 3G and 2.5G (UMTS 2100 MHz and GPRS/GSM 900/1800 MHz) and 802.11g/b WiFi.
If your Linux OS has been configured correctly you will have one 802.11g Wlan device on the PCI bus and four USB serial ports for 3G/GPRS. Two of the serial ports (#0 and #2) are needed for UMTS/GPRS under normal use.
The advantage of using two ports is that you can have your ppp link on one port and do GSM commands on the other port. For example, you can monitor the data connection, check GSM registration and send SMS without breaking the ppp data link.
Because the Fusion card uses USB serial ports we can use the standard Linux USB serial drivers.
Unfortunately, I do not know of any native Linux drivers for the Wlan part (Marvell) but with some very clever software it is possible to use the Windows NDIS drivers provided by Option.
The Fusion is a Cardbus compliant data card and so is designed to work at 3.3 Volts.
If USB support is enabled on your system the Fusion card will be recognised immediately by Linux. If it is not recognised then your kernel may be too old or it has not been compiled with USB support.
If you look at the system log you will see the last few lines will say something like this:
ohci_hcd 0000:02:00.1: OHCI Host Controller PCI: Setting latency timer of device 000:02:00.1 to 64 ohci_hcd 0000:02:00.1: irq 11, pci mem c9001000 ohci_hcd 0000:02:00.1: new USB bus registered, assigned bus number 2 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.5-7.104-default ohci_hcd usb usb2: SerialNumber: 0000:02:00.1 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected usb 2-1: new full speed USB device using address 2 usb 2-1: Product: Fusion UMTS GPRS WLAN usb 2-1: Manufacturer: Option N.V.
If your system did not report the “vend/prod” in the log it is probably because you have a 2.6 kernel. In this situation you can confirm the same information with the command:
cat /proc/bus/usb/devices
If things are working you should see a few lines in the listing:
The key information is the Vendor and Product ID which will be used to identify the card and load the drivers.
Note: It takes time for the card to power up completely when it is plugged in. This means it can take several seconds before the system log is updated.
We want to make changes so that the card is correctly configured when the laptop boots or when the card is inserted. One way to do this is by modifying:
/etc/module.conf.local
This file is read by the system to decide what modules are loaded at boot time and when devices are detected (such as USB devices).
The following are the lines I needed to add:
# # please add local extensions to this file # options usbserial vendor=0xaf0 product=0x6000 post-install usbcore modprobe usbserial
The first line tells the system that if it detects a device with vendor ID =0xaf0 and product ID =0x6000 it should use the usbserial module to communicate.
The second line works on my system – it may not be required by yours. This line is a directive that says that when basic USB services are running the system should force-load the usbserial module. It is this line that makes the system correctly detect the Fusion at boot time.
Note: Your system may only have /etc/modules.conf. In this case you can add the lines to the end of that file instead.
Since kernel 2.6.12 there is now support for these card built in. My experience with Fedora 4 is that it is now Plug and Play
The manual changes for earlier 2.6 kernels are also very simple:
The file you need to edit will be called
/etc/modprobe.conf.local
The following are the lines I needed to add:
# # please add local extensions to this file # options usbserial vendor=0xaf0 product=0x6000
Note: Your system may only have /etc/modprobe.conf. In this case you can add the lines to the end of that file instead
Once the changes are made you must reboot the system. If you plug in the Fusion card you will find messages similar to these in your system log:
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic usbserial 1-1:1.0: Generic converter detected usb 1-1: Generic converter now attached to ttyUSB0 (or usb/tts/0 for devfs) usbserial 1-1:1.1: Generic converter detected usb 1-1: Generic converter now attached to ttyUSB1 (or usb/tts/1 for devfs) usbserial 1-1:1.2: Generic converter detected usb 1-1: Generic converter now attached to ttyUSB2 (or usb/tts/2 for devfs) usbserial 1-1:1.3: Generic converter detected usb 1-1: Generic converter now attached to ttyUSB3 (or usb/tts/3 for devfs) usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
As you can see usbserial.c has been loaded and has assigned devices to each of the three ports.
Note: The actual device assignments (e.g. /dev/ttyUSB0) may be different if you have other USB serial devices installed..
Note: Because Linux has to load several drivers it will take several seconds after inserting the card before the system reports all the USB ports.
You should check the devices actually exist in the file system:
linux:~ # ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 ... linux:~ #
Normally the above entries exist. If they don’t then you can add them:
# mknod /dev/ttyUSB0 c 188 0 # mknod /dev/ttyUSB1 c 188 1 # mknod /dev/ttyUSB2 c 188 2 # mknod /dev/ttyUSB3 c 188 3
If you did this then you will need to re-insert the Fusion to get everything working.
**Remember - After making the changes you will need to reboot your system.**
You may find the connections scripts in my GPRS HOWTO useful, just remember to change the device name, data rates and pppd options as described in this document.
Make such that compression is not used on the ppp link. This means using the novj and nobsdcomp pppd options. If you have not configured pppd correctly then it will not be able to negotiate the ppp link to the card.
If you create a link between /dev/modem and /dev/ttyUSB0 then all the standard internet connection utilities – chat, wvdial, kinternet and kppp for example can be used to make the ppp link. If you want to keep /dev/modem for the traditional land-line (POTS) modem you can use alternative assignments such as:
/dev/usb/ttyACM0 which is not used by my system (SusSE 9.1) but is listed as a possible device by kppp. In which case:
ln –s /dev/ttyUSB0 /dev/usb/ttyACM0
creates the logical soft link.
The connection speed should be set as high as possible above 384 kbs. Try 460800.
The correct APN, username and password for your SIM provider must be used or the connection will not work. If the SIM provider cannot tell you what they are (it is often posted in the technical sections of their web-sites) you can usually do a successful internet search. Network APNs.
The Fusion uses the standard ETSI AT command sets. (You can refer to my GPRS HOWTO for some of the more useful ones).
There are some modifications just for the V3G:
AT+COPS?
Will return an additional value:
+COPS: 0,0,”Vodafone UK”,0
The digit at the end shows if the card is registered on a GPRS or a UMTS network. (0 == GPRS, 2 == UMTS).
There is a very useful command that changes the way the Fusion card behaves:
AT_OPSYS=n
Where n is a value between 0 and 5
AT_OPSYS=0 #Only connect to GSM networks AT_OPSYS=1 #Only connect to UMTS networks AT_OPSYS=2 #If you have a choice - GPRS first AT_OPSYS=3 #If you have a choice – UMTS first AT_OPSYS=4 #Which ever network you connect to stay with it. AT_OPSYS=5 #Automatic – let V3G decide
Sometimes this command will make the connection more reliable. This is true if you are working in a fringe coverage area (like me).
As with many WiFi devices there are no native Linux drivers available for the Fusion. However the Fusion uses a standard Marvell 802.11g chip which is listed as supported by Linuxant http://www.linuxant.com/driverloader/
{NDISWRAPPER http://ndiswrapper.sourceforge.net/ now also works with the Windows drivers}
What you get from Linuxant is a piece of software that wraps the Windows XP NDIS driver and allows the Linux system to communicate via the driver to the card.
In order to download the NDIS driver wrapper you will need to fill in the online application form with the Fusion MAC address (on the bottom of the card) and an email address that is used to confirm the request and authorise the driver. You can download the driver for a 30 day (max) trial period. I recommend you do this and confirm things are working before purchasing the driver from Linuxant.
In order for the wrapper to work you must supply it with two files:
g3grwlan.inf mrv8k51.sys
which you will find in the Windows XP driver sub-directory of the CD supplied with the Fusion card.
I recommend you copy these files from the CD to a temporary location on the hardisk. When you run the Linuxant installer you should point it at the directory containg those two files.
Note: If you cannot find the .inf file in the XP directory then use the one in the Windows 2000 directory.
If all is good then you should find that ifconfig will display a new entry for wlan0
wlan0 Link encap:Ethernet HWaddr 00:0C:E3:10:AB:EE inet6 addr: fe80::20c:e3ff:fe10:abee/64 Scope:Link UP BROADCAST NOTRAILERS MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:41 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
And iwconfig will give you the details.
linux:# iwconfig wlan0 wlan0 IEEE 802.11-DS ESSID:"" Nickname:"linux" Mode:Managed Bit Rate=54Mb/s RTS thr=2346 B Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
You can then use iwconfig to define the wireless connection details:
iwconfig wlan0 essid MyHotspot
KWifiManager works very well with this card. For good stability you should close the connection down before removing the card.