Friday, January 27, 2012

Run Beceem WiMAX Devices On Linux Mint Or Ubuntu

It is possible to run Beceem (or Broadcom) WiMAX Devices easily on Linux platforms. As I am doing this thing since several monthes, I can write some words with it.

  • First, get Sprint4GDevelopersPack, click here. It contains all sources, binaries and documentations from Sprint 4G.
  • Make sure your kernel version is 2.6.35+. I worked at 2.6.38-8, and previous versions did not work. To know your kernel version, put this in the terminal
uname -r
  • Download Linux Source, Header, OpenSSL library, and Patch. Write at terminal ...
sudo apt-get install linux-source linux-headers-$(uname -r) openssl unzip dos2unix patch
  •  Prepare Linux source for use, write
cd /usr/src
tar xvfj linux-source-2.6.38-8.tar.bz2
cd linux-source-2.6.38-8
make oldconfig && make prepare
make modules_prepare
  • Now you are ready to go. Go to the directory you downloaded Sprint4GDeveloperPack*.tar.gz. Open terminal, and again ...
tar xvfz Sprint4GDeveloperPack-1.6.1.2.2.tar.gz
cd Sprint4GDeveloperPack-1.6.1.2.2
  • Important: You need symbolic links of linux source elements at /usr/src/linux. Do ...
ln -s /usr/src/linux-sources-$(uname -r) /usr/src/linux
  • Now start the installer, write ...
 ./install.sh
  • The installer will automatically start. It will ask for some directory information, keep pressing Enter. After moments, the special kernel module for Beceem Mobile WiMAX Devices will be built. It will automatically be inserted. Or you can manually get it at /lib/modules/2.6.38-8-generic.
  • Add it to module startup list...
insmod drxvi314.ko
  • To verify, write ...
sudo dmesg -c
Here you will get the text "Initialized usbbcm". Now you are ready to go.
  • If you are tired of all these, simply click here and get modules and libraries I compiled for 2.6.38-8 (Linux Mint 11/Ubuntu 11.04).
  • Install it and all necessary files will be at their position. Reboot your machine. Plug your modem. Write at terminal ...
lsusb
  • Then it returns like this.
    Bus 001 Device 003: ID 198f:0220 Beceem Communications Inc.
  • If it is like these ...
   Bus 001 Device 003: ID 198f:bccd Beceem Communications Inc.
   Bus 001 Device 003: ID 19d2:bccd ONDA Communications S.P.A.

It means that your modem is not flipped properly or not supported. Don't panic! Download this, install (@any Windows) and run.
  • Connect the modem
  • Go to DSD -> Edit tools -> Modify USB Auto Init Data.
  • Press "Read from Device", Now change 19D2 to 198F and 0172 to 0220 and click "Write to Device". Caution!!! Don't put anything else!!! Your modem will be unusabele :(
  •  Go back to Linux machine, plug the modem and again lsusb says,
    Bus 001 Device 003: ID 198f:0220 Beceem Communications Inc.
  • Now time to play with it. You need a wimaxd.conf file that will help wimax daemon to run. A bleuprint of it...

BandwidthMHz                     10
CenterFrequencyMHz               2590.00 2600.00 2610.00
NetworkSearchTimeoutSec          60
LPSearchInShutDownEnabled        No
NetworkEntryTimeoutSec           10
NEToHighestCINRBaseStation       No
AuthEnabled                      Yes
EAPMethod                        0
ValidateServerCert               Yes
UserIdentity                     ''username"
UserPassword                     ''password"
TTLSAnonymousIdentity            '12-digit-mac-address@your-isp.domain'
CACertPath                       ''
CACertFileName                   '/path/to/ca.pem'
PrivateKeyPasswordFormat         'Ascii'
AuthenticationTimeoutSec         10
InvertMSKByteOrder               No
AlwaysIncludeTLSLength           No
EAPFragmentMaxLength             1398
EAPPollingLoopIntervalMs         50
FirmwareRSAPrivateKeyEncrypt     No
FirmwarePrivateKeyBits           2048
InnerNAIChange                   No
BeceemEngineFileName             '/lib/libengine_beceem.so'
AuthEthernetToRADIUS             No
RADIUSIPAddress                  '192.168.100.1'
RADIUSPort                       1812
RADIUSSecret                     ''
AutoReConnectEnabled             No
AutoReDisconnectEnabled          No
SkipNetSearch                    No
AutoReConnectIntervalSec         20
AutoReDisconnectIntervalSec      20
LinkStatusRequestPeriodSec       2
IPRefreshCommand                 'udhcpc --now --quit -i veth0 &'
NetEntryIPRefreshEnabled         No
TerminateDHCPClient              No
FirmwareFileName                 '/lib/firmware/macxvi200.bin'
ConfigFileName                   '/lib/firmware/macxvi.cfg'
CSCMDebugLogLevel                2
CSCMDebugLogFileName             '/tmp/CM_Server_Debug.log'
CSCMDebugLogFileMaxSizeMB        1
AuthLogLevel                     0
AuthLogFileName                  '/tmp/CM_Auth.log'
EnableAuthSysLogPrints           No
AuthLogFileMaxSizeMB             1
EngineLoggingEnabled             No
EngineLogFileName                '/tmp/CM_Engine.log'
EngineLogFileMaxSizeMB           1
RADIUSClientLogLevel             0
  • Save it as wimaxd.conf at /etc. Now start the daemon with this...
sudo wimaxd -c /etc/wimaxd.conf
  • Now start the conection manager console at interactive mode ...
wimaxc -i
  • To search, write ...
search
  • Then some base stations are returned like this ...
Network search returned 3 base stations.
Idx BSID                    Pre      Freq      BW  RSSI  CINR
 0  01:01:00:00:5b:33:01:3a 0x0C 2590.000  10.000   -77     8
 1  01:01:00:00:5b:33:00:4b 0x23 2600.000  10.000   -60    29
 2  01:01:00:00:5b:33:00:7c 0x46 2610.000  10.000   -77     4
  • Connect to the maximum CINR, here the max CINR is 29 at ID 1. So do
connect 1
  • Then you will be connected to the internet. If not, there is a problem with ethernet route. First, check which ethernet ID your modem got. Write...
ifconfig -a
  • If your hardware address (or mac address) matches at eth0 or eth1 or whatever, do
sudo ifconfig eth0 up
  • Now you are all done with that Beceem WiMAX Modem on Linux Platform. If you want to know more, post comments and I'll be replying as soon as I can.
  • Happy WiMAXing :D
Update:
Sometimes you don't need to build the module, it comes built in. Just do:

sudo modprobe bcm_wimax

Or

sudo /sbin/modprobe bcm_wimax

It works if you have the file bcm_wimax.ko at /lib/modules/`uname -r`/kernel/drivers/staging/bcm.

Oh yes! I have created a GUI for this app. Check it here. (Will be published soon!).

    No comments:

    Post a Comment

    Disqus for Minhazul Haq's Blog :: Sharing What I Know