N0003: 软件定义的Radio?自己建个基站玩~

>>请自觉遵守无线电管理法规,依法设置和使用无线电设备<<

先讲个笑话,前几天我去搜索了一下稀疏矩阵的书,然后这几天某购物App就天天跟我推荐植发了。。。。人工智能真有趣~ 

于是为了头发稀疏一点,我来主动接受辐射了


年某个创新项目有一笔灵活的经费,刚好有个小圈子在说Software Defined Radio的事,于是就买了一块AD9361和一个Zedboard来玩了一小会儿,主要是在做一个Multidomain Assurance通过SDR构造一些WiFi的干扰信号供机器学习模型使用,不过水平太烂,大概就是看着人家教程依葫芦画瓢都画不像的水平。今年年初同事在问我如何在实验室弄个基站因为有个项目要测LTE的模块,自然就想到了SDR,但是真的没啥能力也没精力去写适配zedboard+AD9361,干脆又买了一块B210直接装srsLTE吧,正好还可以用它以后来跟zedboard+9361那套互相通信用:

N0003: 软件定义的Radio?自己建个基站玩~

找一台物理机(千万别虚拟机,时钟飘到你哭~),最好找带AVX2指令集的CPU,安装一个干净的ubuntu 18.04,然后安装基本的编译环境:

sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
sudo apt-get install python-pip python-apt python3-pip

安装PyBOMBS和GNURadio可以玩很多SDR的东西

sudo -H pip install PyBOMBS
mkdir ~/sdrcd ~/sdrpybombs auto-configpybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.gitpybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git
pybombs prefix init 

安装GNURadio

source ~/sdr/setup_env.shpybombs install gnuradio gnuradio-companion 

当然还以玩点其他的东西,有些东西就不说明了

pybombs install gr-osmosdr rtl-sdr  hackrf bladeRF airspy gr-iqbal libosmo-dsp osmo-sdr gr-usrp2 armadillo gflags glog gnutls gnss-sdr gqrx gr-bluetooth gr-ieee-80211

UHD:

sudo add-apt-repository ppa:ettusresearch/uhd -ysudo apt-get updatesudo apt-get -y --allow-unauthenticated install python python-tk libboost-all-dev libusb-1.0-0-devsudo apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-hostsudo uhd_images_downloader
kevin@ZartNode:~$ uhd_find_devices[INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.1.1-release[INFO] [B200] Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex...---------------------------------------------------- UHD Device 0--------------------------------------------------Device Address: serial: 8000057 name: xx-wireless_B210 product: B210 type: b200

LowLatency

sudo apt-get -y install linux-lowlatency sudo apt-get -y install linux-image-`uname -r | cut -d- -f1-2`-lowlatency sudo apt-get -y install linux-headers-`uname -r | cut -d- -f1-2`-lowlatency

Install srsLTE:

git clone https://github.com/srsLTE/srsLTE.gitcd srsLTEmkdir buildcd buildcmake ../makemake testsudo make installsudo ldconfig

eNB和EPC配置都抄作业:

enb:
cp srsenb/enb.conf.example srsenb/enb.confcp srsenb/rr.conf.example srsenb/rr.confcp srsenb/sib.conf.example srsenb/sib.confcp srsenb/drb.conf.example srsenb/drb.conf
epc:
cp srsepc/epc.conf.example srsepc/epc.confcp srsepc/user_db.csv.example srsepc/user_db.csv

当然注意mcc和mnc,epc.conf的配置需要改:

[mme]mme_code = 0x1amme_group = 0x0001tac = 0x0007mcc = 001mnc = 01mme_bind_addr = 127.0.1.100apn = iadns_addr = 8.8.8.8encryption_algo = EEA0integrity_algo = EIA1paging_timer = 2

同理enb的配置,还有RF的band,因为是一个北美版的LTE路由器,所以。。

[enb]mcc = 001mnc = 01mme_addr = 127.0.1.100gtp_bind_addr = 127.0.1.1s1c_bind_addr = 127.0.1.1n_prb = 50[rf]dl_earfcn = 2110tx_gain = 80rx_gain = 40

SIM卡烧卡:

N0003: 软件定义的Radio?自己建个基站玩~

烧卡软件:

然后填写user_db.csv

 

启动srsLTE:

cd ~/srs/LTE/srsenbsudo srsenb enb.conf
cd ~/srs/LTE/srsepcsudo srsepc epc.confsudo ./srsepc_if_masq.sh enp1s0f0

然后UE用了一台某司的测试路由器,上线成功~

N0003: 软件定义的Radio?自己建个基站玩~》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/759.html