大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
单树莓派/双树莓派+USRP+srsLTE分布式搭建4G LTE微基站
前言
阅读本文前请确保UHD和srsLTE已经正确安装,安装教程:
树莓派3B安装Ubuntu Server 18.04 + UHD + GNU Radio,其中GNU Radio对于本文不是必须的,可以不安装。
树莓派Ubuntu18.04安装srsLTE
实验环境:
Name | System | UHD | srsLTE |
---|---|---|---|
电脑1 | Ubuntu18.04.4 LTS Desktop x86-64 | 3.15.LTS | 19_12 |
树莓派3B | Ubuntu18.04.4 LTS for Raspi3 arm64 | 3.15.LTS | 19_12 |
树莓派4B | Ubuntu18.04.4 LTS for Raspi3 arm64 | 3.15.LTS | 19_12 |
电脑2 | Win10 10586 64bit | × | × |
2020.08.10 修改srsLTE版本,从20_04_01降级到19_12。
测试了20_04_01和19_12两个版本,灌包测得的最大基本一致,均为上行36Mbps,下行13Mbps,但是在手机上用测速软件测得的实际速率却不一样。
使用20_04_01版本,在手机上用测网速app测得的最大上行速率为5.8Mbps,下行速率为9.8Mbps,与灌包测得的速率相差较大;
而使用19_12版本,在手机上用测网速app测得的最大上行速率为12.8Mbps,下行速率为34.7Mbps,基本达到了灌包的速率。
测试手机Redmi 4,eNB参数设置dl_earfcn = 1500
、n_prb = 50
,测试平台PC(eNB)+树莓派3B(EPC)
一、添加SIM卡的配置信息
使用SIM卡写卡读卡器修改SIM卡的信息如下:
修改~/.config/srslte/user_db.csv
文件:
格式为(ue_name),(imsi),(K),(OP/OPc_type),(OP/OPc_value),(AMF),(SQN),(QCI)
,仿照原文件中的例子进行修改,最后两项保持不变。倒数第三项被红色画笔涂亮的部分一开始我设置的是1234,后来在运行过程中被程序自动修改,保持程序自动修改后的数值即可。
二、修改enb配置信息
sudo vim ~/.config/srslte/enb.conf
其中mcc
为手机卡IMSI的前三位,mnc
为IMSI的4、5位;mme_addr
设置为树莓派(EPC)的IP地址;gtp_bind_addr
和s1c_bind_addr
改为(eNB)的IP地址,s1c_bind_addr
为eNb发送的SCTP消息的源地址,因此在分布式部署时应该改为真实IP地址;dl_earfcn
为频点号,与频率、频段的关系见第七节;n_prb = 50
表示带宽为10MHz,该参数与带宽的对应关系如下:
三、修改epc配置信息
需要注意的是EPC设备需要能正常连接外网并且执行网口伪装sudo srsepc_if_masq.sh eth0
,这样手机连上LTE信号后才能正常上网。eNB设备可以不连接外网,只要和EPC设备在同一局域网(能相互ping通)即可。
sudo vim ~/.config/srslte/epc.conf
其中mcc
为手机卡IMSI的前三位,mnc
为IMSI的4、5位,mme_addr
设置为树莓派(EPC)的IP地址,gtpu_bind_addr
改为树莓派上可以上网的IP地址。这里我通过sudo ifconfig eth0:gtp 192.168.2.111/24 up
开启了一个虚拟网口,gtpu_bind_addr
也可以直接改为与mme_bind_addr
相同的IP地址。
四、修改手机SIM卡配置信息
此处以小米手机为例,进入设置->双卡和移动网络->选择对应的SIM卡->接入点名称(APN)->新建APN,名称
和APN
都改为srsapn
,MCC
改为460
, MNC
改为 11
,修改完成后返回保存即可。
五、树莓派运行srsepc,电脑1运行srsenb
进行灌包测试,必要的设置如下:
#在树莓派(运行srsepc)上设置手机上网的接口
ifconfig #查看网络接口
sudo srsepc_if_masq.sh eth0 #选择能上网的接口进行伪装,此处为eth0
#在电脑1(运行srsenb)上设置路由信息使得电脑1能ping到测试手机
sudo route add -host 172.16.0.2 gw 192.168.2.104 #临时添加路由信息,其中172.16.0.2为测试手机的IP地址,192.168.2.104为树莓派的IP地址
route -n #查看路由信息
永久添加路由信息需要修改/etc/network/interfaces
,添加以下内容:
#其中`enp5s0`需要根据`ifconfig`给出的信息进行选择
up route add -net xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gw xxx.xxx.xxx.xxx enp5s0
#在测试手机上
设置->双卡和移动网络->SIM卡信息.中国电信->运营商网络设置.接入点名称(APN)->新建APN,名称:srsapn,APN:srsapn,MCC:460,MNC:11,设置好后保存,然后选择此APN。
在epc和enb建立连接后,打开飞行模式再关闭飞行模式,再打开数据流量。
测试手机和电脑2通过USB连接,需要在手机上开启USB网络共享,或者开启热点无线连接,只要电脑2能ping通电脑1就行。
1.下行灌包测试
电脑1选择Client模式,Server address填手机的IP,传输时间选择60s,传输层选择UDP,带宽100MB/s,包尺寸1KB。
本来应该是电脑1作为CLient,电脑2作为Server。然后手机连电脑2并且开启USB网络共享,然后电脑1的Server address填电脑2的IP,电脑2开启软件选择Server模式。这里由于电脑2驱动无法安装的问题无法通过USB共享网络,只能通过测试手机的热点进行连接。但是这样连接电脑2可以ping到电脑1,但是电脑1 ping不到电脑2,暂未解决。
2.上行灌包测试
电脑2作为Client,电脑1作为Server。
电脑2配置与下行灌包的Client设置相同;
电脑1选择Server模式,Output Format选择MBits,传输层选择UDP。
经测试,对于同一个手机Redmi 4,在电脑运行srsenb,树莓派运行srsepc的情况下,树莓派3B与4B的效果相同,在手机上测得的最高速率均为下行36.52Mbps,上行13.42Mbps。
六、树莓派4B运行srsenb,树莓派3B运行srsepc
在运行eNB的树莓派4B上开启性能模式:
sudo systemctl disable ondemand
nano /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor #查看是否进入性能模式,若都为performance则成功
修改enb.conf
:
sudo nano /root/.config/srslte/enb.conf
[enb]
mcc = 460 #IMSI的前三位
mnc = 11 #IMSI的第4、5位
mme_addr = 192.168.2.101 #EPC的IP地址
gtp_bind_addr = 192.168.2.104 #eNB的IP地址
s1c_bind_addr = 192.168.2.104 #eNB的IP地址
n_prb = 15
tm = 2
nof_ports = 2
[rf]
dl_earfcn = 1934
tx_gain = 80 ## this power seems to work best
rx_gain = 40
device_name = UHD
device_args = auto
修改epc.conf
:
sudo nano /root/.config/srslte/epc.conf
[mme]
mcc = 460 #IMSI的前三位
mnc = 11 #IMSI的第4、5位
mme_bind_addr = 192.168.2.101 #EPC的IP地址
[spgw]
gtpu_bind_addr = 192.168.2.101 #EPC的IP地址
修改user_db.csv
:参考第一节。
运行epc的设备需要打开进入防火墙的端口以允许srsenb进行S1-MME和S1-U连接:
S1-MME = sctp, port 36412 || S1-U = udp, port 2152
或者使用iptables命令:
sudo iptables -A INPUT -p sctp -m sctp --dport 36412 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 2152 -j ACCEPT
这套设置频段为B3,频点1934,带宽3MHz。
1.下行灌包测试
图片误删…
2.上行灌包测试
七、LTE载波频率和载波频点号
参考:LTE Carrier Frequency and EARFCN
- Fdownlink=FDLLow+0.1(NDL−NDLOffset)Fdownlink=FDLLow+0.1(NDL-NDLOffset)
- Fuplink=FULLow+0.1(NUL−NULOffset)
where,
NDL = downlink EARFCN
NUL = uplink EARFCN
NDLoffset = offset used to calculate downlink EARFCN
NULoffset = offset used to calculate uplink EARFCN
EARFCN of carrier frequency can be calculated with Eq-(1) or Eq-(2) using FDL_low, NOffs-DL, FUL_low and NOffs-UL given in table below.
Downlink | Uplink | |||||
---|---|---|---|---|---|---|
Band | FDL_low (MHz) | NOffs-DL | NDL Range | FUL_low (MHz) | NOffs-UL | NUL Range |
1 | 2110 | 0 | 0-599 | 1920 | 18000 | 18000-18599 |
2 | 1930 | 600 | 600-1199 | 1850 | 18600 | 18600-19199 |
3 | 1805 | 1200 | 1200-1949 | 1710 | 19200 | 19200-19949 |
4 | 2110 | 1950 | 1950-2399 | 1710 | 19950 | 19950-20399 |
5 | 869 | 2400 | 2400-2649 | 824 | 20400 | 20400-20649 |
6 | 875 | 2650 | 2650-2749 | 830 | 20650 | 20650-20749 |
7 | 2620 | 2750 | 2750-3449 | 2500 | 20750 | 20750-21449 |
8 | 925 | 3450 | 3450-3799 | 880 | 21450 | 21450-21799 |
9 | 1844.9 | 3800 | 3800-4149 | 1749.9 | 21800 | 21800-22149 |
10 | 2110 | 4150 | 4150-4749 | 1710 | 22150 | 22150-22749 |
11 | 1475.9 | 4750 | 4750-4949 | 1427.9 | 22750 | 22750-22949 |
12 | 729 | 5010 | 5010-5179 | 699 | 23010 | 23010-23179 |
13 | 746 | 5180 | 5180-5279 | 777 | 23180 | 23180-23279 |
14 | 758 | 5280 | 5280-5379 | 788 | 23280 | 23280-23379 |
… | ||||||
17 | 734 | 5730 | 5730-5849 | 704 | 23730 | 23730-23849 |
18 | 860 | 5850 | 5850-5999 | 815 | 23850 | 23850-23999 |
19 | 875 | 6000 | 6000-6149 | 830 | 24000 | 24000-24149 |
20 | 791 | 6150 | 6150-6449 | 832 | 24150 | 24150-24449 |
21 | 1495.9 | 6450 | 6450-6599 | 1447.9 | 24450 | 24450-24599 |
22 | 3510 | 6600 | 6600-7399 | 3410 | 24600 | 24600-25399 |
23 | 2180 | 7500 | 7500-7699 | 2000 | 25500 | 25500-25699 |
24 | 1525 | 7700 | 7700-8039 | 1626.5 | 25700 | 25700-26039 |
25 | 1930 | 8040 | 8040-8689 | 1850 | 26040 | 26040-26689 |
26 | 859 | 8690 | 8690-9039 | 814 | 26690 | 26690-27039 |
27 | 852 | 9040 | 9040-9209 | 807 | 27040 | 27040-27209 |
28 | 758 | 9210 | 9210-9659 | 703 | 27210 | 27210-27659 |
292 | 717 | 9660 | 9660-9769 | N/A | – | |
31 | 462.5 | 9870 | 9870-9919 | 452.5 | 27760 | 27760-27809 |
… | – | |||||
33 | 1900 | 36000 | 36000-36199 | 1900 | 36000 | 36000-36199 |
34 | 2010 | 36200 | 36200-36349 | 2010 | 36200 | 36200-36349 |
35 | 1850 | 36350 | 36350-36949 | 1850 | 36350 | 36350-36949 |
36 | 1930 | 36950 | 36950-37549 | 1930 | 36950 | 36950-37549 |
37 | 1910 | 37550 | 37550-37749 | 1910 | 37550 | 37550-37749 |
38 | 2570 | 37750 | 37750-38249 | 2570 | 37750 | 37750-38249 |
39 | 1880 | 38250 | 38250-38649 | 1880 | 38250 | 38250-38649 |
40 | 2300 | 38650 | 38650-39649 | 2300 | 38650 | 38650-39649 |
41 | 2496 | 39650 | 39650-41589 | 2496 | 39650 | 39650-41589 |
42 | 3400 | 41590 | 41590-43589 | 3400 | 41590 | 41590-43589 |
43 | 3600 | 43590 | 43590-45589 | 3600 | 43590 | 43590-45589 |
44 | 703 | 45590 | 45590-46589 | 703 | 45590 | 45590-46589 |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185234.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...