wiki:Old/WiMAX/30
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.

Version 55 (modified by Nilanjan Paul, 7 years ago) ( diff )

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

  1. Compile a Linux Kernel to Version greater than 2.6.35 and reboot into that kernel.
  1. 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
    
  2. 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
  1. 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 download

cd ~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.

  1. Build the Intel-Wimax-Tools Untar and unzip the downloaded source and

cd ~Downloads/wimax-1.5.1

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

GENI Definition File

GENI Database File

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

  1. wimaxcu ron - Turn the Software Radio On
  1. wimaxcu plist - Check to See Geni Profile is Available
  1. wimaxcu scan wide - Scan all the available Base Stations
  1. wimaxcu connect network Geni - Connect to the GENI wimax station
  1. dhclient wmx0 - Obtain an IP address
  1. wimaxcu -i wmxX -b - Start the wimax service in background
  1. 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

General Info

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.

Files Needed

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:

Material Type: FR4
Material Thickness: 0.031"
Number of Layers: 2
First Dimension: 1.428"
Second Dimension: 2.668"
Finish Plating: LFSOLDER
Copper Outers: 1oz
Copper Inners: 0 oz
Solder Mask Sides Both
Solder Mask Type LPI
Solder Mask Color Green
Silkscreen Sides Top
Silkscreen Color White


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:

$ dmesg

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:
username: admin
password: genipass

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
Bandwidth: 10000
FFT: 1024

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:
username: admin
password: admin01

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

Here.

12.4 Installing the Beceem Driver for Linux-Airspan BS Compatibility

Commands to be run as the root user have the # prompt, commands to be run as a normal user have the $ prompt.

1. Install Linux

Install Ubuntu version 11.04 or later on a netbook. 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-cache search linux | grep generic

This will provide a list of available kernel images for the running system. To install an image:

$ apt-get install linux-image-3.8.0-31-generic

Follow all the prompts and reboot if required.

The following steps were completed successfully on Ubuntu 11.10 and Ubuntu 12.04.

2. Resources

A WiMAX dongle with a Beceem chipset is required to use the driver to connect to a WiMAX network. An AWB US211 USB adapter was used when testing the netbook configured using this guide, although any dongle with a Beceem chipset should work.

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.

It will be assumed that these files were downloaded to the ~/Downloads/ directory for the remainder of the guide. Extract the files:

$ cd ~/Downloads
$ tar -xzf BeceemSource.tar.gz

The following packages must be installed via apt-get:

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

Download the source files for the linux kernel distribution into /usr/src:

# pushd /usr/src
# apt-get source linux-image-$(uname -r)
# popd

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.

4. Prepare linux-source for Install

A kernel environment is required to properly construct the driver. To create this environment from the source files installed with apt-get, run:

# cd /usr/src
# tar -xjf linux-source-X.Y.Z.tar.bz2  # where the kernel version number takes the place of X.Y.Z
# ln -s linux-sources-X.Y.Z linux

The final command creates a symlink, which simplifies later installation by allowing all default paths to be used when building the driver.

5. Build the Driver

Unpack the Sprint tarball and run the install script:

$ 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.

After the install finishes run the following commands to add the new driver to the startup modules, and verify success:

# modprobe drxvi314
# dmesg | grep usbbcm

The last command should output a line that includes "Initialised usbbcm" upon a successful kernel install.

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

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

6. Reboot, Configure, and Verify

Reboot the netbook. After startup 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 explanitory. 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.

Plug the dongle into a usb port and run:

$ lsusb

One of the devices should include "Beceem Communications Inc." if the installation was successful.

7. Start the Server and Connect

Start the wimax daemon:

# wimaxd -c /etc/wimaxd.conf

The prompt "CSCM Server Started" should appear.

Run the connection utility:

$ wimaxc -i

Start search at the subprompt

> search

If networks are found then the installation is complete!

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

$ ifconfig

Match the hardware/MAC address of one of the eth interfaces with the dongle address. Then run the command on that interface (ethX in the code below):

# ifconfig ethX up

The wimaxc utility should successfully find the hardware and search.

Attachments (5)

Note: See TracWiki for help on using the wiki.