天天看點

使用bladeRF和樹莓派+YateBTS做GSM基站

        個人出于對無線電的好奇加入了gnuradio的學習。

        本次測試是基于以下連結網址内容進行的相關測試:

        https://www.freebuf.com/geek/102729.html

        我的安裝步驟是一個大神給我找的:

        https://github.com/MBRO95/PortableCellNetwork

        PS:整個安裝過程中,會因為下面.sh檔案中安裝bladeRF的時候安裝bladeRF失敗,但不影響後面的安裝,是以需要手動安裝bladeRF,原因是下面程式中的一條指令的問題:

        這個指令wget -c https://github.com/Nuand/bladeRF/archive/master.zip得到的源檔案會缺少部分檔案,需要你從GitHub上找到缺少的檔案手動下載下傳下來或者直接手動下載下傳壓縮包,從其中找到需要的檔案放入相應區域,即可繼續安裝。

#INSTALL BladeRF
echo -e "\e[1;32mINSTALL BladeRF\e[0m"
cd /tmp
wget -c https://github.com/Nuand/bladeRF/archive/master.zip
unzip master.zip
cd bladeRF-master
cd host
mkdir build
cd build
echo `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON ../`
make -j4
make install > /var/log/BladeRF_install.log
ldconfig
if dmesg | grep -q bladeRF; then
    echo -e "\e[1;32mBladeRF Successfully Detected!\e[0m"
else
    echo -e "\e[1;32mBladeRF Was Not Detected!\e[0m"
    read -n1 -r -p "Please connect the BladeRF...then press any key to continue..."
    if dmesg | grep -q bladeRF; then
        echo -e "\e[1;32mBladeRF Successfully Detected!\e[0m"
    else
        echo -e "\e[1;32mBladeRF Was Not Detected! Exiting Script...\e[0m"
        exit
    fi
fi
           

        缺失的檔案如下:

使用bladeRF和樹莓派+YateBTS做GSM基站

        解決方案(我這裡示範的步驟和在樹莓派上是一樣的,但是是用的Ubuntu16.04LTS示範):

        進入以下網址:

        https://github.com/analogdevicesinc/no-OS/tree/0bba46e6f6f75785a65d425ece37d0a04daf6157

        然後點選Clone or download,再點選Download ZIP

使用bladeRF和樹莓派+YateBTS做GSM基站

        我把檔案下載下傳到桌面,右鍵點選Extract Here解壓到目前檔案夾,再将檔案夾重命名為no-OS,然後找到下面的檔案夾:

使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站

        删除之前的no-OS檔案夾,将新的no-OS檔案夾放入,裡面原本空白一片就會出現很多檔案

使用bladeRF和樹莓派+YateBTS做GSM基站

        這個時候就可以再次執行以下指令即可:

    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON ../

    make -j4

    make install > install.log(要加sudo)

    ldconfig(要加sudo)

使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站

        整個手動安裝指令過程如下(

wget -c https:

//github.com/Nuand/bladeRF/archive/master.zip

會缺少no-OS檔案裡面的檔案,記得補上)

        PS:最後兩個指令要加sudo

使用bladeRF和樹莓派+YateBTS做GSM基站

        然後輸入bladeRF-cli -i進行測試:

使用bladeRF和樹莓派+YateBTS做GSM基站

        至于FPGA version的問題,就去找官網下相應的版本刷就好了。

使用bladeRF和樹莓派+YateBTS做GSM基站

----------------------------------------------------------------------------------------------------------------------------------------------------------------

        因為之前做了很久都是不明是以,很多地方的操作都是照着輸入,感覺學得很迷茫。

        自己也嘗試過添加訂閱者(老師買了白卡幫助我學習),但手機收到基站依然連不上去,不知道什麼原因,是以我将希望放在了能直接連接配接所有具有GSM功能手機的強大功能上,如下:

使用bladeRF和樹莓派+YateBTS做GSM基站

        但是你要注意,不是單獨一個“*” 号,我看漏了應該是“.*”,少了個“.”!!!我還是看到下面連結中的文字說明才反應過來:

        http://mini.eastday.com/a/160410125702346-3.html

使用bladeRF和樹莓派+YateBTS做GSM基站

        這一次,我成功連上了基站,但是可能因為我配置的問題,導緻信号很弱,要離bladeRF的天線很近才能搜尋并連接配接到GSM基站:

使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站

        這是我舊的華為手機,裡面SIM卡是買的白卡,接下來測試的是我的堅果pro手機,裡面是移動的SIM卡:

使用bladeRF和樹莓派+YateBTS做GSM基站

        因為不想暴露自己移動SIM卡的IMSI,是以後面塗掉了,前面460是MCC(移動使用者所屬國家代号),460代表中國,而00是MNC(移動網絡編碼),00代表中國移動。

        MSISDN是這個GSM基站配置設定給的一個移動使用者所需撥打的号碼,這裡進行通話測試(語音效果差):

使用bladeRF和樹莓派+YateBTS做GSM基站

        當你連接配接上基站後會有短信提示(還會發送你此時被配置設定的移動号碼):

        我的華為舊手機(白卡)(左上角的數字為00101(90170)):

使用bladeRF和樹莓派+YateBTS做GSM基站

        00101是基站設定的MCC和MNC,90170是白卡IMSI前五位數字。

        我的堅果pro手機(移動SIM卡):

使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站

        接下來是短信測試:

使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站
使用bladeRF和樹莓派+YateBTS做GSM基站

        以上是本次所有測試,因為是将近淩晨一點,做完通話測試和短信測試後,暫時不懂什麼叫GPRS測試,是以先去睡覺了,今早起來查了一下,GPRS(General Packet Radio Service,通用分組無線業務),GPRS是介于2G和3G之間的技術,也被稱為2.5G。它後面還有個弟弟EDGE,被稱為2.75G。它們為實作從GSM向3G的平滑過渡奠定了基礎。

        GPRS參考連結:

        https://zhidao.baidu.com/question/2009624091261062828.html

        我覺得最重要的功能還是在打電話的情況下能上網?因為還要上課,暫不測試。

        文章内有錯的地方煩請各位指出,謝謝大家!

        其它的使用方法還不知道,希望有志同道合的人多多指教。