wiki:aWiMAX/cHardware/cUdev/aAWB1
close Warning: Can't synchronize with repository "(default)" (/common/SVN/wimax does not appear to be a Subversion repository.). Look in the Trac log for more information.

AWB US211

Table of Contents

    AWB US211 is the USB WiMAX adapter with a Beceem chipset.

    Driver Installation

    The following steps were completed successfully using Ubuntu 12.04.

    Files in the following tarball are required to install the driver: http://wimax.orbit-lab.org/downloads/BeceemSource.tar.gz . The tarball is quite large (~150 MB) and may take a few minutes or more to download. Download the tarball and extract the files:

    # mkdir ~/Downloads
    # cd ~/Downloads
    # wget http://wimax.orbit-lab.org/downloads/BeceemSource.tar.gz
    # tar -xzf BeceemSource.tar.gz
    

    The following packages must be installed via apt-get:

    # apt-get update
    # apt-get install libssl-dev linux-headers-$(uname -r) make patch unzip
    

    It's most likely the linux header files are downloaded into the directory /usr/src. To check:

    # ls -ltr /usr/src
    total 8
    drwxr-xr-x 24 root root 4096 May 13 11:36 linux-headers-3.8.0-31
    drwxr-xr-x  7 root root 4096 May 13 11:36 linux-headers-3.8.0-31-generic
    

    Download the source files for the linux kernel distribution into /usr/src and create a symlink to simplify installation when building the driver:

    # pushd /usr/src
    # apt-get source linux-image-$(uname -r)
    # ln -s <linux-source-directory> linux
    # popd
    

    Note: <the linux-source-directory> should be suffixed with the kernel version.

    Install libeap Library

    Patch and install the wpa_supplicant using the commands:

    # cd ~/Downloads/BeceemSource/
    # tar -xzf wpa_supplicant-0.7.3.tar.gz
    # cd wpa_supplicant-0.7.3
    # patch -p1 < ../wpa_supplicant-0.7.3-generate-libeap-peer.patch
    # make -C src/eap_peer
    # make -C src/eap_peer install
    

    This library is required to install the wimaxd utility, and does not get installed properly by the script provided in the Sprint tarball.

    Build the Driver and Load the Driver Module

    Unpack the Sprint tarball and run the script. This will build and install the driver:

    # cd ~/Downloads/BeceemSource/
    # tar -xzf Sprint4GDeveloperPack-1.6.1.2.2.tar.gz
    # cd Sprint4GDeveloperPack-1.6.1.2.2
    # ./install.sh
    

    The installer will prompt for various file paths, if the symlink was created in the previous step then the default choices should be correct.

    On some recent kernels, you will need to blacklist the bcm_wimax driver to prevent it from claiming the device on start up.

    # echo "blacklist bcm_wimax" > /etc/modprobe.d/blacklist-bcm-wimax.conf
    

    Reboot the machine:

    # reboot
    

    Once the machine comes back up again run the following command to add the new driver to the startup modules:

    # modprobe drxvi314
    

    Check if the module loaded correctly:

    # lsmod | grep drxvi314
    drxvi314              309219  0
    

    Check if above driver registered properly with the system:

    # dmesg | grep usbbcm
    

    This should output a line that includes " usbcore: registered new interface driver usbbcm"

    Verify USB Dongle is Present in System and Configure Center Frequency

    In a another terminal window, tail the syslog file. This will show the system messages for the wimax commands down below. This is for informational purpose.

    # tail -f /var/log/syslog
    

    List the USB devices and verify if the Wimax adapter is present:

    # lsusb
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 003 Device 002: ID 198f:0220 Beceem Communications Inc. BCSM250 WiMAX Adapter
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    

    One of the devices should include "Beceem Communications Inc." if the installation was successful. The Bus and Device number may be different.

    Copy the following files with the commands:

    # cp /usr/src/USB_350/Source/CSCM/BeceemCSCM/wimaxd.conf /etc
    # cp /lib/firmware/macxvi350.bin /lib/firmware/macxvi200.bin
    

    Edit the new /etc/wimaxd.conf file as desired, the file is heavily commented and should be self explanatory. Make sure that the network's center frequency can be found in the CenterFrequencyMHz parameter of the config file, the GENI network center frequency (2590) is not one of the default frequencies. The firmware file is copied because the utilities expect that both the macxvi350.bin and macxvi200.bin will be present when utilities are run.

    Start the Server and Connect

    Start the wimax daemon:

    # wimaxd -c /etc/wimaxd.conf
    ********** CSCM Server Started ********** 05/13/14 10:24:11
    

    Use the connection utility to search for the base station and check for similar output:

    # wimaxc search
    Beceem CM Server Version 1.1.7.0
    Network search returned 1 base station.
    Idx BSID                    Pre      Freq      BW  RSSI  CINR
     0  01:01:44:51:db:00:00:01 0x00 2590.000  10.000   -56    31
    

    If networks are found then the installation is complete and the wimax interface will try to connect to a base station. The syslog file should show a similar output:

    May 13 10:24:27 localhost kernel: [  260.814967] LinkControlResponseMessage:PHY_SYNC_ACHIVED
    May 13 10:24:34 localhost kernel: [  268.573803] LinkControlResponseMessage:PHS Support Status Recieved In LinkUp Ack : 1
    May 13 10:24:34 localhost kernel: [  268.573806]
    May 13 10:24:35 localhost kernel: [  269.186284] CmControlResponseMessage:### TID RECEIVED 35968
    

    Configure and Test the Interface

    Once connected the wimax dongle should come up as an eth interface. Match the dongle's MAC address to eth interface. In this example, the MAC address of the wimax dongle used is b8:61:6f:0d:a0:6d. To see a list of interfaces:

    # ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 00:03:1d:0c:7d:d0
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:20 Memory:f0700000-f0720000
    
    eth1      Link encap:Ethernet  HWaddr 00:03:1d:0c:7d:d1
              inet addr:10.10.7.10  Bcast:10.10.255.255  Mask:255.255.0.0
              inet6 addr: fe80::203:1dff:fe0c:7dd1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:710 errors:0 dropped:0 overruns:0 frame:0
              TX packets:576 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:71675 (71.6 KB)  TX bytes:92532 (92.5 KB)
              Interrupt:17 Memory:f0600000-f0620000
    
    eth2      Link encap:Ethernet  HWaddr b8:61:6f:0d:a0:6d
              BROADCAST MULTICAST  MTU:1400  Metric:1
              RX packets:35246 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:11366 (11.3 KB)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:35 errors:0 dropped:0 overruns:0 frame:0
              TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:2590 (2.5 KB)  TX bytes:2590 (2.5 KB)
    
    
    

    The wimax dongle came up on eth2. We'll configure this interface as working example:

    # ifconfig eth2 10.41.41.29 netmask 255.255.0.0 up
    

    Now check eth2 interface.

    # ifconfig eth2
    eth2      Link encap:Ethernet  HWaddr b8:61:6f:0d:a0:6d
              inet addr:10.41.41.29  Bcast:10.41.255.255  Mask:255.255.0.0
              inet6 addr: fe80::ba61:6fff:fe0d:a06d/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
              RX packets:41362 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:13174 (13.1 KB)  TX bytes:168 (168.0 B)
    

    Test the interface by pinging the gateway (10.41.0.1):

    # ping 10.41.0.1 -c 5
    PING 10.41.0.1 (10.41.0.1) 56(84) bytes of data.
    64 bytes from 10.41.0.1: icmp_req=1 ttl=254 time=61.7 ms
    64 bytes from 10.41.0.1: icmp_req=2 ttl=254 time=59.9 ms
    64 bytes from 10.41.0.1: icmp_req=3 ttl=254 time=57.9 ms
    64 bytes from 10.41.0.1: icmp_req=4 ttl=254 time=61.9 ms
    64 bytes from 10.41.0.1: icmp_req=5 ttl=254 time=60.9 ms
    
    --- 10.41.0.1 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4005ms
    rtt min/avg/max/mdev = 57.951/60.522/61.963/1.494 ms
    

    To run a speed test via webservice, download speedtest-cli script:

    # apt-get install python-pip
    # pip install speedtest-cli
    # pip install speedtest-cli --upgrade
    

    Update the routing table to ensure all traffic routed through the eth2 interface. First delete the default gateway:

    # route del default
    

    Now set default gateway via eth2:

    # route add default gw 10.41.0.1 eth2
    

    View the routing table entries:

    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         wmgw.outdoor.or 0.0.0.0         UG    0      0        0 eth2
    10.10.0.0       *               255.255.0.0     U     0      0        0 eth1
    10.41.0.0       *               255.255.0.0     U     0      0        0 eth2
    

    After the routing table has been updated, run the speedtest-cli script. The uplink and downlink speeds will be shown as measure by speedtest:

    root@node7-11:~# speedtest-cli --source 10.41.41.29
    Retrieving speedtest.net configuration...
    Retrieving speedtest.net server list...
    Testing from Rutgers University (128.6.192.190)...
    Selecting best server based on ping...
    Hosted by Atlantic Metro (New York City, NY) [42.62 km]: 19.948 ms
    Testing download speed........................................
    Download: 6.90 Mbits/s
    Testing upload speed..................................................
    Upload: 0.81 Mbits/s
    
    Last modified 9 years ago Last modified on Jan 13, 2015, 7:15:06 PM
    Note: See TracWiki for help on using the wiki.