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.

Changes between Initial Version and Version 1 of aWiMAX/cHardware/cUdev/aAWB1


Ignore:
Timestamp:
Jan 13, 2015, 7:13:22 PM (9 years ago)
Author:
seskar
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • aWiMAX/cHardware/cUdev/aAWB1

    v1 v1  
     1=== AWB US211 ===
     2
     3[[TOC(WiMAX/cHardware*)]]
     4
     5AWB US211 is the USB WiMAX adapter with a Beceem chipset.
     6
     7==== Driver Installation ====
     8
     9The following steps were completed successfully using Ubuntu 12.04.
     10
     11Files 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:
     12
     13{{{
     14# mkdir ~/Downloads
     15# cd ~/Downloads
     16# wget http://wimax.orbit-lab.org/downloads/BeceemSource.tar.gz
     17# tar -xzf BeceemSource.tar.gz
     18}}}
     19
     20The following packages must be installed via apt-get:
     21
     22{{{
     23# apt-get update
     24# apt-get install libssl-dev linux-headers-$(uname -r) make patch unzip
     25}}}
     26
     27It's most likely the linux header files are downloaded into the directory /usr/src. To check:
     28{{{
     29# ls -ltr /usr/src
     30total 8
     31drwxr-xr-x 24 root root 4096 May 13 11:36 linux-headers-3.8.0-31
     32drwxr-xr-x  7 root root 4096 May 13 11:36 linux-headers-3.8.0-31-generic
     33}}}
     34
     35Download the source files for the linux kernel distribution into /usr/src and create a symlink to simplify installation when building the driver:
     36{{{
     37# pushd /usr/src
     38# apt-get source linux-image-$(uname -r)
     39# ln -s <linux-source-directory> linux
     40# popd
     41}}}
     42Note: <the linux-source-directory> should be suffixed with the kernel version.
     43
     44==== Install libeap Library ====
     45
     46Patch and install the wpa_supplicant using the commands:
     47
     48{{{
     49# cd ~/Downloads/BeceemSource/
     50# tar -xzf wpa_supplicant-0.7.3.tar.gz
     51# cd wpa_supplicant-0.7.3
     52# patch -p1 < ../wpa_supplicant-0.7.3-generate-libeap-peer.patch
     53# make -C src/eap_peer
     54# make -C src/eap_peer install
     55}}}
     56
     57This library is required to install the wimaxd utility, and does not get installed properly by the script provided in the Sprint tarball.
     58
     59==== Build the Driver and Load the Driver Module ====
     60
     61Unpack the Sprint tarball and run the script. This will build and install the driver:
     62
     63{{{
     64# cd ~/Downloads/BeceemSource/
     65# tar -xzf Sprint4GDeveloperPack-1.6.1.2.2.tar.gz
     66# cd Sprint4GDeveloperPack-1.6.1.2.2
     67# ./install.sh
     68}}}
     69
     70The installer will prompt for various file paths, if the symlink was created in the previous step then the default choices should be correct.
     71
     72On some recent kernels, you will need to blacklist the `bcm_wimax` driver to prevent it from claiming the device on start up.
     73
     74{{{
     75# echo "blacklist bcm_wimax" > /etc/modprobe.d/blacklist-bcm-wimax.conf
     76}}}
     77
     78Reboot the machine:
     79{{{
     80# reboot
     81}}}
     82
     83Once the machine comes back up again run the following command to add the new driver to the startup modules:
     84
     85{{{
     86# modprobe drxvi314
     87}}}
     88
     89Check if the module loaded correctly:
     90
     91{{{
     92# lsmod | grep drxvi314
     93drxvi314              309219  0
     94}}}
     95
     96Check if above driver registered properly with the system:
     97{{{
     98# dmesg | grep usbbcm
     99}}}
     100This should output a line that includes " usbcore: registered new interface driver usbbcm"
     101
     102
     103=== 12.4.5. Verify USB Dongle is Present in System and Configure Center Frequency ===
     104In 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.
     105{{{
     106# tail -f /var/log/syslog
     107}}}
     108
     109List the USB devices and verify if the Wimax adapter is present:
     110{{{
     111# lsusb
     112Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
     113Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
     114Bus 003 Device 002: ID 198f:0220 Beceem Communications Inc. BCSM250 WiMAX Adapter
     115Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     116Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     117Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     118Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
     119}}}
     120
     121One of the devices should include "Beceem Communications Inc." if the installation was successful. The Bus and Device number may be different.
     122
     123Copy the following files with the commands:
     124
     125{{{
     126# cp /usr/src/USB_350/Source/CSCM/BeceemCSCM/wimaxd.conf /etc
     127# cp /lib/firmware/macxvi350.bin /lib/firmware/macxvi200.bin
     128}}}
     129
     130Edit 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.
     131
     132=== 12.4.6. Start the Server and Connect ===
     133
     134Start the wimax daemon:
     135
     136{{{
     137# wimaxd -c /etc/wimaxd.conf
     138********** CSCM Server Started ********** 05/13/14 10:24:11
     139}}}
     140
     141Use the connection utility to search for the base station and check for similar output:
     142
     143{{{
     144# wimaxc search
     145Beceem CM Server Version 1.1.7.0
     146Network search returned 1 base station.
     147Idx BSID                    Pre      Freq      BW  RSSI  CINR
     148 0  01:01:44:51:db:00:00:01 0x00 2590.000  10.000   -56    31
     149}}}
     150
     151If 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:
     152{{{
     153May 13 10:24:27 localhost kernel: [  260.814967] LinkControlResponseMessage:PHY_SYNC_ACHIVED
     154May 13 10:24:34 localhost kernel: [  268.573803] LinkControlResponseMessage:PHS Support Status Recieved In LinkUp Ack : 1
     155May 13 10:24:34 localhost kernel: [  268.573806]
     156May 13 10:24:35 localhost kernel: [  269.186284] CmControlResponseMessage:### TID RECEIVED 35968
     157}}}
     158
     159=== 12.4.7. Configure and Test the Interface ===
     160Once 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.
     161To see a list of interfaces:
     162{{{
     163# ifconfig -a
     164eth0      Link encap:Ethernet  HWaddr 00:03:1d:0c:7d:d0
     165          BROADCAST MULTICAST  MTU:1500  Metric:1
     166          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     167          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     168          collisions:0 txqueuelen:1000
     169          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
     170          Interrupt:20 Memory:f0700000-f0720000
     171
     172eth1      Link encap:Ethernet  HWaddr 00:03:1d:0c:7d:d1
     173          inet addr:10.10.7.10  Bcast:10.10.255.255  Mask:255.255.0.0
     174          inet6 addr: fe80::203:1dff:fe0c:7dd1/64 Scope:Link
     175          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     176          RX packets:710 errors:0 dropped:0 overruns:0 frame:0
     177          TX packets:576 errors:0 dropped:0 overruns:0 carrier:0
     178          collisions:0 txqueuelen:1000
     179          RX bytes:71675 (71.6 KB)  TX bytes:92532 (92.5 KB)
     180          Interrupt:17 Memory:f0600000-f0620000
     181
     182eth2      Link encap:Ethernet  HWaddr b8:61:6f:0d:a0:6d
     183          BROADCAST MULTICAST  MTU:1400  Metric:1
     184          RX packets:35246 errors:0 dropped:0 overruns:0 frame:0
     185          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     186          collisions:0 txqueuelen:1000
     187          RX bytes:11366 (11.3 KB)  TX bytes:0 (0.0 B)
     188
     189lo        Link encap:Local Loopback
     190          inet addr:127.0.0.1  Mask:255.0.0.0
     191          inet6 addr: ::1/128 Scope:Host
     192          UP LOOPBACK RUNNING  MTU:65536  Metric:1
     193          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
     194          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
     195          collisions:0 txqueuelen:0
     196          RX bytes:2590 (2.5 KB)  TX bytes:2590 (2.5 KB)
     197
     198
     199}}}
     200
     201The wimax dongle came up on ''eth2''. We'll configure this interface as working example:
     202{{{
     203# ifconfig eth2 10.41.41.29 netmask 255.255.0.0 up
     204}}}
     205
     206Now check ''eth2'' interface.
     207{{{
     208# ifconfig eth2
     209eth2      Link encap:Ethernet  HWaddr b8:61:6f:0d:a0:6d
     210          inet addr:10.41.41.29  Bcast:10.41.255.255  Mask:255.255.0.0
     211          inet6 addr: fe80::ba61:6fff:fe0d:a06d/64 Scope:Link
     212          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
     213          RX packets:41362 errors:0 dropped:0 overruns:0 frame:0
     214          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
     215          collisions:0 txqueuelen:1000
     216          RX bytes:13174 (13.1 KB)  TX bytes:168 (168.0 B)
     217}}}
     218
     219Test the interface by pinging the gateway (10.41.0.1):
     220{{{
     221# ping 10.41.0.1 -c 5
     222PING 10.41.0.1 (10.41.0.1) 56(84) bytes of data.
     22364 bytes from 10.41.0.1: icmp_req=1 ttl=254 time=61.7 ms
     22464 bytes from 10.41.0.1: icmp_req=2 ttl=254 time=59.9 ms
     22564 bytes from 10.41.0.1: icmp_req=3 ttl=254 time=57.9 ms
     22664 bytes from 10.41.0.1: icmp_req=4 ttl=254 time=61.9 ms
     22764 bytes from 10.41.0.1: icmp_req=5 ttl=254 time=60.9 ms
     228
     229--- 10.41.0.1 ping statistics ---
     2305 packets transmitted, 5 received, 0% packet loss, time 4005ms
     231rtt min/avg/max/mdev = 57.951/60.522/61.963/1.494 ms
     232}}}
     233
     234To run a speed test via webservice, download ''speedtest-cli'' script:
     235{{{
     236# apt-get install python-pip
     237# pip install speedtest-cli
     238# pip install speedtest-cli --upgrade
     239}}}
     240
     241Update the routing table to ensure all traffic routed through the eth2 interface.
     242First delete the default gateway:
     243{{{
     244# route del default
     245}}}
     246
     247Now set default gateway via eth2:
     248{{{
     249# route add default gw 10.41.0.1 eth2
     250}}}
     251
     252View the routing table entries:
     253{{{
     254# route
     255Kernel IP routing table
     256Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     257default         wmgw.outdoor.or 0.0.0.0         UG    0      0        0 eth2
     25810.10.0.0       *               255.255.0.0     U     0      0        0 eth1
     25910.41.0.0       *               255.255.0.0     U     0      0        0 eth2
     260}}}
     261
     262After the routing table has been updated, run the speedtest-cli script. The uplink and downlink speeds will be shown as measure by speedtest:
     263{{{
     264root@node7-11:~# speedtest-cli --source 10.41.41.29
     265Retrieving speedtest.net configuration...
     266Retrieving speedtest.net server list...
     267Testing from Rutgers University (128.6.192.190)...
     268Selecting best server based on ping...
     269Hosted by Atlantic Metro (New York City, NY) [42.62 km]: 19.948 ms
     270Testing download speed........................................
     271Download: 6.90 Mbits/s
     272Testing upload speed..................................................
     273Upload: 0.81 Mbits/s
     274}}}
     275