|Version 65 (modified by 9 years ago) ( diff ),|
12. GENI WiMAX Mobile Stations
- 12.1 Linux PC with Intel WiMAX Modem Card
- 12.2 Intel WiMAX Modem with USB Adaptor
- 12.3 Configuring a Teltonika WiMAX USB Card to Ping Base station from …
- 12.4 Installing the Beceem Driver for Linux-Airspan BS Compatibility
12. GENI WiMAX Mobile Stations
12.1 Linux PC with Intel WiMAX Modem Card
12.1.1 Linux Laptop PC Platform
12.1.2 Intel 6250 WiMAX Modem Card
12.1.3 Installing Image
Samsung NC10 NetBook
The firmware, tools , network service and the patch were downloaded from LinuxWimax
- Compile a Linux Kernel to Version greater than 2.6.35 and reboot into that kernel.
- Install the i2400m firmware
Download the i2400 firmware 1.5.0 version.
Untar the source , cd to the directory and
install -o root -g root -m 0644 *.sbcf /lib/firmware
- Install the Wimax Tools
First install libnl and libnl's development packages
apt-get install libnl1 libnl-dev libglib2.0-0 libglib2.0-dev apt-get install build-essential pkg-config cd ~Download/wimax-tools-1.4.3 export I2400M=/lib/firmware/ ./configure make make install
- Build the libeap library
To do that first install openssl libraries.
apt-get install libglobus-openssl-module0 libglobus-openssl-module-dev libssl-dev
Download the Supplicant from wpa-supplicant Untar and unzip the downloadcd ~Downloads/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 ldconfig
Please do not forget to run ldconfig otherwise you will not be able to build the Wimax-Tools from Intel.
- Build the Intel-Wimax-Tools Untar and unzip the downloaded source and
Copy the NDnSAgentConfig_forDriver.xml file to ./InfraStack/OSAgnostic/WiMax/Agents/NDnS/XML_Files or modify
NSP_ID 51 in the file to look like
<geni> <NetworkParameters> <H_NSP> <x0> <H_NSP_ID>51</H_NSP_ID> </x0> </H_NSP> <CAPL> <Entries> <x0> <NAP_ID>4451DB</NAP_ID> <Priority>1</Priority> <ChPlanRefIds> <x0> <RefId>AB</RefId> </x0> </ChPlanRefIds> </x0> </Entries> <Any>ListFirst</Any> <SelectPolicy>Strict</SelectPolicy> </CAPL> <RAPL> <Entries></Entries> <Any>ListFirst</Any> <SelectPolicy>Strict</SelectPolicy> </RAPL> <ChannelPlan> <Entries> <x0> <Id>AB</Id> <FirstFreq>2590000</FirstFreq> <LastFreq>2590000</LastFreq> <NextFreqStep>10000</NextFreqStep> <Preambles>ffffffffffffffffffffffffffffff</Preambles> <BW>10000</BW> <FFTSize>1024</FFTSize> <DuplexMode>1</DuplexMode> <TTL>0</TTL> </x0> </Entries> <BW>-1</BW> <FFTSize>-1</FFTSize> <DuplexMode>1</DuplexMode> </ChannelPlan> <OperatorName>GENI</OperatorName> <PollingInterval>-1</PollingInterval> <PollingAttempts>10</PollingAttempts> <ServerID></ServerID> </NetworkParameters> <SubscriptionParameters> <Primary> <Name></Name> <Activated>False</Activated> <EAP> <x0> <METHOD_TYPE>EAP_TLS</METHOD_TYPE> <VENDOR_ID>13</VENDOR_ID> <VENDOR_TYPE>13</VENDOR_TYPE> <USER_IDENTITY></USER_IDENTITY> <PROVISIONED_PSEUDO_IDENTITY></PROVISIONED_PSEUDO_IDENTITY> <PASSWORD></PASSWORD> <REALM>www.geni.net</REALM> <USE_PRIVACY>False</USE_PRIVACY> <ENCAPS>-1</ENCAPS> <VFY_SERVER_REALM>False</VFY_SERVER_REALM> <SERVER_REALMS></SERVER_REALMS> <CERT> <x0> <CERT_TYPE></CERT_TYPE> <SER_NUM></SER_NUM> <ISSUER></ISSUER> </x0> <x1> <CERT_TYPE></CERT_TYPE> <SER_NUM></SER_NUM> <ISSUER></ISSUER> </x1> </CERT> </x0> </EAP> </Primary> <OtherSubscriptions></OtherSubscriptions> </SubscriptionParameters> <Contacts> <x0> <Type>0</Type> <URI>http://wimax.orbit-lab.org</URI> <Text>GENI WiMAX Technical Support</Text> </x0> <x1> <Type>1</Type> <URI>http://www.geni.net</URI> <Text>GENI Portal</Text> </x1> </Contacts> </geni>
Update the .bin files source files located at ./InfraStack/OSAgnostic/Product/AppSrvInfra/ with the GENI files
Now configure the wimax service and install the service.
./configure --with-linux=/usr --with-libwimaxll=/usr --sysconfdir=/etc --localstatedir=/var --prefix=/usr --enable-instrument --with-wimax-db-bin=/var --with-ver-info-bin=/var make make install
This new configuration with the .bin enabled allows us now to modify the NDns parameters on the fly by modifying WiMAX_Def.bin and WiMAX_DB.bin files located in /var/lib/wimax directory.
You can edit the file and restart the wimaxd service to see the changes.
Connection and Scan Mode settings are set using the following commands
wimaxcu connectmode connect manual wimaxcu connectmode scan semi
Instructions are Here
12.1.4 Downloading Complete Image
Based on Ubuntu 10.04 with compiled Kernel .35 and the Intel WiMAX driver source compiled on 8/25/2010 and with the GENI configuration file;
latest image for NC10!
12.1.5 Using the Service
- wimaxcu ron - Turn the Software Radio On
- wimaxcu plist - Check to See Geni Profile is Available
- wimaxcu scan wide - Scan all the available Base Stations
- wimaxcu connect network Geni - Connect to the GENI wimax station
- dhclient wmx0 - Obtain an IP address
- wimaxcu -i wmxX -b - Start the wimax service in background
- wimaxcu -i wmxX -k - Kill the wimax service
12.1.6 Enable debugging on the client
You can get enhanced debugging for the following parameters by increasing the verbosity level
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_stack
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_op_rfkill
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_op_reset
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_op_msg
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_id_table
echo 3 > /sys/kernel/debug/wimax:wmx0/wimax_dl_debugfs
12.2 Intel WiMAX Modem with USB Adaptor
12.2.1 Intel 6250 WiMAX Modem in USB Adaptor
12.2.2 PC Platforms
12.2.3 Installing Image
12.2.4 Manufacturing USB Adaptor
The WiMAX model USB adaptor is an 'open source' WINLAB designed board. This section provides links to the instructions and
the files necessary to produce the board.
Please note that the instructions and files provided meet the specifications and requirements set by Advanced Circuits. If using another vendor please be aware that the tolerances may be different.
The following files are needed to make the board and attached to this page. Additionally the schematic is also provided as a reference.
- USB_mPCIx_Board.zip - These files describe the physical board. All fabrication houses should accept the gerber file format.
- USB_MPCIX.TOP & USB_MPCIX.BOT - Top and Bottom copper gerber files, respectively.
- USB_MPCIX.SMT & USB_MPCIX.SMB - Top and bottom soldermask gerber files, respectively.
- USB_MPCIX.SST - Top silkscreen gerber file.
- USB_MPCIX_thruhole.tap - Drill list gerber file.
- USB_mPCIx_Pop.zip - These files describe the position of the components.
- USB_MPCIX.AST - Assembly drawing of the board
- USB_MPCIX.SPT - Top solderpaste gerber file, there is only components on the top side.
- USB_MPCIX_BOM.xls - Bill of materials, provides links and vendors for parts being used.
- USB_MPCIX_INSERT.TXT - mounting locations for the components on the board.
Fabrication and Population
The following set of instructions is specific to the production house WINLAB uses, Advanced Circuits. Other manufacturer may require additional information, however the process should be similar.
To have a board made the fabricated you must provide 'USB_mPCIx_Board.zip' as it contains all the physical board information. Typically this can be sent directly to a sales representative for quoting. If you intend for the boards to be populated, some manufacturers (definitely Advanced Circuits) require minimum quantities and dimensions, so you may request for the board to be panelized to meet those conditions. WINLAB had them produced 4 boards to a panel to meet Advanced Circuit requirements. Some additional information that might be required is as follows:
|Number of Layers:||2|
|Copper Inners:||0 oz|
|Solder Mask Sides||Both|
|Solder Mask Type||LPI|
|Solder Mask Color||Green|
If ordering through Advanced Circuits it is a good idea to run the design through the automated FreeDFM service. The design has already passed the check, but it also creates a quote matrix and populates any additional information on the board.
To have the board populated with parts send the additional zip file (USB_mPCIx_Pop.zip) for quoting. The bill of materials (BOM) currently lists the right angle SMA header as not in use and 'do not install', if you wish to use it change that line in the BOM.
12.3 Configuring a Teltonika WiMAX USB Card to Ping Base station from an Ubuntu Host
12.3.1. Install Driver / Eject "CD-ROM"
When first inserted into a new computer, the Teltonika device is mounted as a CDROM. It will immediatly begin installing a driver on host machine. On Ubuntu this process is non-obvious; allow the computer to sit for 5 minutes after inserting the device to give the driver time to install.
After the time to install has passed, determine the device that the "CDROM" is associated with by running:
Somewhere near the bottom of the messages should be a message that contains "Attached scsi CD-ROM [device]". This interface must be ejected so that the device can act as a wireless transmitter rather than a CD-ROM. In most instances the CD-ROM will be associated with either sr0 or sr1. Eject the device using the command:
$ eject [device]
After a few moments a notification about a new ethernet interface becoming available should appear. This is the interface that the computer will use to communicate with the wireless dongle.
In some cases after this initial setup was completed the computer would always recognize the device as an ethernet interface, and sometimes the CD-ROM device would need to be ejected each time. Reasons for this difference is unknown at the time of writing.
12.3.2. Update Firefox (or Google Chrome)
A web interface is provided to configure and interact with the dongle graphically. This webpage requires the most recent version of Adobe Flash. To update/download Firefox and the Flash plugin run:
# apt-get install firefox flashplugin-installer
NOTE: Adobe has announced that it will no longer support Flash for Linux, and so in the near future Firefox may have depreciated Flash support. In this even Google has commited to maintaining Flash for Linux in it's Chrome browser, and it can be used as a viable alternative to Firefox.
12.3.3. Connect to the WebUI
If the the Teltonika dongle is recognized as a wireless interface open up the WebUI in Firefox or Chrome by navigating to 192.168.0.1 . If this IP address does not direct the browser to the WebUI then ask the previous user of the device for the new address, it is a configurable parameter and may be changed.
Login as an administrator by CTRL-SHIFT-Clicking the Teltonika banner at the top of the page. Login credentials are also configurable, but are most likely set to:
Other passwords may be: admin OR EifAFKt8
12.3.4. Configure Device
The device can be configured to look for networks on a number of channels under the WiMAX→Channels tab. The GENI network has the profile:
Frequency (kHz): 2590000
Other configuration parameters can be configured by altering the config.sh file, found under the Files tab of the WebUI.
WARNING: it is entirely possible to brick the dongle if parameters are altered in this file in a way that should not be.
It is fairly safe to alter the fields: ipaddr (IP address where the WebUI can be reached), netmask (Subnet mask that the device will operate on), dhcpdsip (DHCP server IP address), dhcpdeip (unknown meaning at time of writing, may be expected IP address from DHCP server).
12.3.5. Statically Set Device IP Address
Telnet to the device:
$ telnet [WebUI address] 700
The login credentials for the telnet session are:
Within the telnet session run the following command to statically set the devices IP address:
# ifconfig icc0 [desired address] netmask [desired netmask]
This static address is not preserved when the Teltonika device is removed from the host machine, and it needs to be configured each time that the device is connected to the host.
After statically setting the IP address, you need to also set up the iptables rules to send traffic to and from the host device. An easy way to do this is to use the same script that the DHCP client uses for this purpose. Run the following commands within a telnet session on the Teltonika device:
# export interface=icc0 # export subnet=[desired subnet, e.g. 16,24] # export ip=[desired address] # /etc/udhcpc.script bound
If you are planning to use the WiMAX interface for the default route, not just for traffic on its own subnet, you should also add
# export router=[router IP]
before /etc/udhcpc.script bound.
12.3.6. More Information
12.4 Installing the Beceem Driver for Linux-Airspan BS Compatibility
An AWB US211 USB WiMAX adapter was used for this guide.
The following steps were completed successfully using Ubuntu 12.04 on node7-10.grid.orbit-lab.org and node7-11.grid.orbit-lab.org. Both the nodes have a AWB US211 USB WiMAX adapter.
12.4.1. Install Linux
Install Ubuntu version 12.04 on the node. A Linux kernel of version of 2.6.38 or greater is required to install the drivers; to determine the current systems kernel version run:
# uname -r
If the kernel image needs to be updated then do the following:
# apt-get update # apt-cache search linux-image | grep generic
This will provide a list of available kernel images for the running system. To install the linux image version 3.8.0-31:
# apt-get install linux-image-3.8.0-31-generic
Reboot the machine to load the new kernel:
A WiMAX dongle with a Beceem chipset is required to use the driver to connect to a WiMAX network.
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.
12.4.3. 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.
12.4.4. 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-220.127.116.11.2.tar.gz # cd Sprint4GDeveloperPack-18.104.22.168.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:
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"
12.4.5. 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.
12.4.6. 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 22.214.171.124 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
If an error occurs, such as the device can not be found, the interface must be started. Determine the interface for the dongle by running
12.4.7. 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
) - added by 12 years ago.
Files needed for populating USB carrier boards
) - added by 12 years ago.
Files needed for fabricating USB carrier boards
) - added by 12 years ago.
Schematic diagram of USB carrier boards
- Install_WiMAX_Tools.tar.gz (5.3 MB ) - added by 10 years ago.
) - added by 9 years ago.
wimax tools version 1.5.1