= Drivers for Specific Hardware Platforms = == Broadcom STA drivers == These drivers were required for the Broadcom BCM94352HMB an 802.11 AC compliant device. The primary reference is: http://www.broadcom.com/support/802.11/linux_sta.php ''' Building and loading the STA module:'''[[BR]] It's assumed that the matching kernel headers are installed, and the proper build tools are also installed (e.g. make, g++). 1. copy this file for the [http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_141.tar.gz 32-bit kernel] or [http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-portsrc.tar.gz 64-bit kernel ] 2. Untar and make / make install 3. the module is named wl.ko and is located at /lib/modules/3.2.0-36-generic/kernel/drivers/net/wireless/wl.ko 4. Following this [http://www.broadcom.com/docs/linux_sta/README.txt readme] load these two modules with modprobe {{{ modprobe cfg80211 modprobe lib80211 }}} 5. then load the module that was built with insmod: {{{ insmod /lib/modules/3.2.0-36-generic/kernel/drivers/net/wireless/wl.ko }}} == Netgear AC341U == ''' BUILD DRIVERS: '''[[BR]] From this website: http://support.netgear.com/product/AirCard+341U+$28Sprint$29#wrapper Download [http://downloadcenter.netgear.com/en/Disclaimer.aspx?redirecturl=http://www.downloads.netgear.com/files/aircard/Linux-Support-S2.12N2.21.zip# this zip file] It include the installation directions and the driver directories. To build Follow these steps: 1. Ensure you have an appropriate kernel version and respective headers, 3.5.0.49 in our case since btest2.ndz in Ubuntu 12.04 2. Copy the driver directories into /usr/src sudo cp –avr /home/user1/Desktop/GobiSerial /usr/src sudo cp –avr /home/user1/Desktop/GobiNet /usr/src 3. Enter each driver directory and run make all make install 4. Load the serial and net modules via modrpobe {{{ modrpobe -i GobiSerial modprobe -i GobiNet Dmesg output should look like: [ 459.924062] usb 1-4.4: new high-speed USB device number 4 using ehci_hcd [ 460.016555] usb 1-4.4: config 1 has an invalid interface number: 8 but max is 5 [ 460.016560] usb 1-4.4: config 1 has no interface number 5 [ 460.017054] usb 1-4.4: New USB device found, idVendor=1199, idProduct=9057 [ 460.017058] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 460.017061] usb 1-4.4: Product: AC341U [ 460.017065] usb 1-4.4: Manufacturer: Sierra Wireless, Incorporated [ 460.017068] usb 1-4.4: SerialNumber: 355745050048959 [ 460.146715] usbcore: registered new interface driver cdc_ether [ 460.147711] usbcore: registered new interface driver usbserial [ 460.147732] usbcore: registered new interface driver usbserial_generic [ 460.147749] USB Serial support registered for generic [ 460.147757] usbserial: USB Serial Driver core [ 460.153904] rndis_host 1-4.4:1.0: usb0: register 'rndis_host' at usb-0000:00:1a.7-4.4, RNDIS device, 32:85:11:c8:2c:09 [ 460.153936] usbcore: registered new interface driver rndis_host [ 460.158052] usbcore: registered new interface driver GobiSerial [ 460.158140] USB Serial support registered for GobiSerial [ 460.158805] GobiSerial 1-4.4:1.2: GobiSerial converter detected [ 460.158968] usb 1-4.4: GobiSerial converter now attached to ttyUSB0 [ 460.159427] GobiSerial 1-4.4:1.3: GobiSerial converter detected [ 460.159511] usb 1-4.4: GobiSerial converter now attached to ttyUSB1 [ 460.159925] GobiSerial 1-4.4:1.4: GobiSerial converter detected [ 460.160062] usb 1-4.4: GobiSerial converter now attached to ttyUSB2 [ 460.160077] GobiSerial: 2013-10-08/NTGR_2.12:GobiSerial [ 460.168785] GobiNet: 2013-10-08/NTGR_2.21 [ 460.169255] GobiNet 1-4.4:1.8: eth2: register 'GobiNet' at usb-0000:00:1a.7-4.4, GobiNet Ethernet Device, c6:c1:97:7e:a4:09 [ 461.569774] creating qcqmi2 [ 461.569852] usbcore: registered new interface driver GobiNet }}} Notice that multiple serial USB interfaces are enumerated, the one that accepts AT commands is ttyUSB1, the latter are for some kind of diagonostics. ''' FIRMWARE UPDATE: (Incase you need one) '''[[BR]] The firmware update has to be done on windows. Insert the device into a windows box, and let it install drivers and enumerate interafaces. Make sure you can see the managment webpage. Then download, install and run the following file: http://downloadcenter.netgear.com/en/Disclaimer.aspx?redirecturl=http://www.downloads.netgear.com/files/aircard/1101857_9902536_NTG9X15C_45.04.20.00_00_SPRINT_000.046_000-field.exe# ''' USING SERIAL INTERFACE: '''[[BR]] To actually use the device you'll have to connect to the virtual serial interface, enable pass through, and initiate a connection. To connect to the serial interface I used minicom. The command string was: minicom -D /dev/ttyUSB1 Port settings were 115200 8N1 with hardware Flow Control (but not sure if that is necissary). In minicom I also made the Init string AT, and the Reset string empty. When you launch minicom you should see an initial AT command. Pressing enter will get you an OK reponse, this inidicates it's working. You only need to enter passthrough mode once. But it will require a device restart. The AT commands are: AT!ippassthrough=1 AT!reset You can check if it's enabled by running: AT!ippassthrough? If you get a 1 back, it's in pass through mode. Additionally the output of LSUSB is different, if you run it and get: {{{ Bus 001 Device 004: ID 1199:9057 Sierra Wireless, Inc. }}} It's in pass through mode, if you get: {{{ Bus 001 Device 004: ID 1199:9055 Sierra Wireless, Inc. }}} It's in NAT mode. Once the device reboots, the device enumeration will be different. Instead of just eth2, there will be an eth2 interface and a USB interface. We'll still use the eth2 interface however. (these numbers are for the btest2 image on a machine with 2 intefaces, dmesg will give you the actual device name). Once the interfaces enumerate, reconnect to the serial port ttyUSB1 and issue the follow commands: {{{ AT!entercnd="A710" AT!dxcfg=wwan,connect,11 }}} The quotations are required for the entercnd line. The entercnd line is the equivalent of an enable command (enter privileged mode). The latter command actually connects to the BS. It's disconnect counterpart is: AT!dxcfg=wwan,connect,0 You can verify on the device that the actual state is connected. Additionally: at!gstatus? Will get you a status out put like: {{{ at!gstatus? !GSTATUS: Current Time: 10049 Temperature: 42 Bootup Time: 0 Mode: ONLINE System mode: LTE PS state: Attached LTE band: B25 LTE bw: 10 MHz LTE Rx chan: 8365 LTE Tx chan: 26365 EMM state: Registered Normal Service RRC state: RRC Connected IMS reg state: No Srv RSSI (dBm): -83 Tx Power: 0 RSRP (dBm): -117 TAC: 0001 (1) RSRQ (dB): -10 Cell ID: 01A2D001 (27447297) SINR (dB): 1.6 }}} Don't let the mode ONLINE fool you. This does not mean the device is connected, merely that it sees the BS. Finally once the device is actually connected, bring up the Ethernet interface and run dhclient on it. In this case that was eth2. == USRP Universal Hardware Driver == TBD. == ATH 5k == No build necissary, uses stock kernel drivers from Ubuntu Repository. == ATH 9k == No build necissary, uses stock kernel drivers from Ubuntu Repository. == Intel® PRO/Wireless 2200BG and 2915ABG == No build necissary, uses stock kernel drivers from Ubuntu Repository. == Linux Blue tooth == No build necissary, uses stock kernel drivers from Ubuntu Repository. == Ath 3K == No build necissary, uses stock kernel drivers from Ubuntu Repository.