在安裝OpenBTS 5.0之前,要先安裝GNU Radio和UHD,只要運行安裝文件包可執行腳本build-gnuradio,就可以自動安裝,安裝過程耗時較長,但是不需要過多的手動操作。
Step1:安裝合適的系統
Ubuntu Desktop or Server 32-bit 12.04(我使用的是Desktop)
Step2:更新Git
OpenBTS使用了Git的幾個新的特性,為了確保客戶端的兼容性,Git的版本必須在1.8.2以上。命令如下:
$ sudo apt-get install software-properties-common python-software-properties
$ sudo add-apt-repository ppa:git-core/ppa
(press enter to continue)
$ sudo apt-get update
$ sudo apt-get install git
Step3:下載
l 工具:
首先確定Git的版本是不是大於1.8.2
$ git --version
git version 1.9.1
下載最新的工具
$ git clone https://github.com/RangeNetworks/dev.git
l 組件:
首先在GitHub上建立自己的SSH keys。首先登陸github,可以使用已經注冊的github賬號。
在執行下列命令之前,首先輸入命令
sudo apt-get install ssh
安裝了ssh之后,再進行下列步驟
產生SSH keys的步驟:
1、首先檢查已經存在的SSH keys,輸入命令
檢查是否已經有了公鑰,默認的公鑰文件名:
Ø id_dsa.pub
Ø id_ecdsa.pub
Ø id_ed25519.pubid_rsa.pub
注:如果沒有出現上述文件,則需要使用ssh-keygen -t rsa命令產生
2、產生新的SSH key
3、把自己的SSH key加到GitHub中
打開id_rsa.pub,把里面的內容復制到剪貼板
選擇SSH keys,點擊add SHH key
在title field添加名字
把復制的內容粘貼到“key”field。
4、檢測是否產生了SSH keys
這時可能會有這樣的提示:
輸入yes,顯示如下
說明SSH配置成功。
下面就可以下載所有的組件了,只需要簡單的輸入命令:
$ cd dev
$ ./clone.sh
就可以實現自動的安裝。
Step4:選擇一個branch或tag
$ ./switchto.sh master
Step5:編譯
Build.sh腳本會自動安裝所有編譯所需要的東西
$ ./build.sh
N210
編譯的包會被放在一個新的目錄中。這個目錄在dev的BUILD中,找到最新的時間戳文件夾。
注意:這一步需要在安裝完GNU Radio之后進行,否則會報找不到UHD包的錯誤。
Step6:安裝
先cd到最新的時間戳文件里
$ sudo dpkg -i *.deb
安裝了該目錄下所有.deb
這里可能會遇到dependencies的問題,輸入下面的命令可以解決:
$ sudo apt-get -f install
Step7:運行
下面可以運行OpenBTS
$ sudo start sipauthserve
$ sudo start smqueue
$ sudo start openbts
$ sudo start asterisk
如果上述組件都能被啟動,分配到進程號,說明OpenBTS安裝成功,這里需要注意一點,前兩個進程可以在沒有安裝完GNU Radio的情況下被啟動,openbts和asterisk必須在安裝完GNU Radio的情況下才能被啟動。是否能被啟動的判斷依據是是否分配了進程號,如果輸入start命令顯示的是unknown job,則表示啟動失敗。
停止的命令:
$ sudo stop sipauthserve
$ sudo stop smqueue
$ sudo stop openbts
$ sudo stop asterisk
Step8:用戶數據庫的注冊
$ sudo sqlite3 /var/lib/asterisk/sqlite3dir/sqlite3.db
sqlite> .tables
DIALDATA_TABLE RRLP SIP_BUDDIES rates
sqlite> select * from sip_buddies;
sqlite> select * from dialdata_table;
sqlite> .quit
以上,OpenBTS的安裝結束。
下面進入運行的階段。
OpenBTS運行
Step1:連接USRP,按照USRP的ip地址,給主機配置一個網絡,命令行中中執行uhd_find_devices,若能夠找到USRP,則繼續執行下述步驟,否則,檢查IP地址配置是否正確,網線是否正確連接,UHD和GNU Radio驅動是否正常運行。
Step2:啟動上面提到的四個進程:
$ sudo start sipauthserve
$ sudo start smqueue
$ sudo start openbts
$ sudo start asterisk
Step3:四個進程都被分配了各自的進程號以后。啟動OpenBTSCLI命令,操作如下:
$ cd /OpenBTS
$ ./OpenBTSCLI
OpenBTS> help (list all commands available)
OpenBTS> audit (check if your configuration is correct)
OpenBTS> config (list all parameters)
OpenBTS> config XYZ (list all parameters that contain XYZ)
OpenBTS> devconfig (change developer and factory parameters)
OpenBTS> trxconfig (view the factory radio calibration) [so far only on Range Networks equipment]
OpenBTS> chans (view the currently active channels)
OpenBTS> tmsis (view all IMSIs that have interacted with the system)
OpenBTS> trans (view all completed transactions like calls and sms)
OpenBTS> quit
Step4:啟動OpenBTSCLI以后
config GSM.Radio.Band 900
config GSM.Radio.C0 1
config Control.LUR.OpenRegistration .*
上面配置BTS 為GSM900,ARFCN 1,對所有手機開放注冊權限。注意:該配置使得手機沒有注冊限制。這樣如果系統配置天線的情況下,附近的任何手機便可使用該網絡,謹慎在居民點使用。
給101發送你想使用的手機號碼,位數在5到12位之間均可。
手機選擇運營商(我搜到的運營商名字是00101),連接該運營商。
這樣配置以后手機就可以接入網絡,並實施通話,發短信功能了。