树莓派Ubuntu18.04安装srsLTE

9 篇文章 4 订阅
4 篇文章 3 订阅

前言

环境:
Ubuntu Server 18.04 for Raspberry 3(ARM64)
UHD 3.15.LTS

注意需要先安装UHD再安装srsLTE,否则srsLTE安装过程中会出错安装不上,UHD的安装教程可参考上一篇博文:树莓派3B安装Ubuntu Server 18.04 + UHD + GNU Radio

系统官方下载地址:Install Ubuntu Server on a Raspberry Pi 2, 3 or 4
官方地址下载较慢,可以使用国内源下载

一开始在Ubunutu16.04的电脑上测试,由于apt-get install安装的libboost版本过低,只能安装srsLTE 18_12,测试时发现问题,后来升级手动安装高版本的libboost并将srsLTE升级到20_04_1,测试手机可以上网。Ubuntu18.04通过apt-get install安装的libboost可以直接安装srsLTE 20_04_1,因此后期直接将电脑的系统升级到了18.04。

在srsLTE 20_04_1测试的时候,同一张卡在Redmi 4上可以上网,而在小米K30上却不能上网,查询得知srsLTE官方建议在树莓派上使用srsLTE 19_12而不是最新的20_04,因此又将srsLTE的版本切换到19_12

一、安装UHD

1.安装依赖项

sudo apt-get install aptitude
sudo apt-get install libboost-all-dev libusb-1.0-0-dev build-essential doxygen python3-mako python3-docutils  python3-numpy python3-dev python3-setuptools

2.编译

cd /home
mkdir Downloads && cd Downloads
git clone https://github.com/EttusResearch/uhd.git
cd uhd
git branch -a # or `git tag -l`
# Example: For UHD-3.15.LTS
git checkout UHD-3.15.LTS
cd host && mkdir build && cd build
cmake ../
#确保你没有usrp设备连接在树莓派上
make -j3
make test -j3    #需要100% tests passed才可以
sudo make install
sudo ldconfig

3.测试安装结果

sudo uhd_find_devices
# 下载 UHD-FPGA Images
sudo uhd_images_downloader 

下载后的文件存在目录/usr/local/share/uhd/images/中,其他电脑有需要可以将这个目录复制过去避免重复下载。

4.配置USB

这一步的目的是让普通用户可以获取usb设备,主要用于靠usb连接到主机的usrp设备,这些命令运行后没有输出

cd /home/Downloads/uhd/host/utils
sudo cp uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

二、源码编译安装srsLTE 18_12

安装依赖项:

sudo apt-get install libfftw3-dev libmbedtls-dev libconfig++-dev libsctp-dev
# 如果你之前安装过高版本boost,那么下面这句不需要执行
sudo apt-get install libboost-program-options-dev

srsLTE 18_12直接编译安装会出错,详情见第五节,需要修改编译的文件。

/home/Downloads/srsLTE/CMakeLists.txt文件里的

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIS_ARM -DHAVE_NEON -mfloat-abi=hard -mfpu=neon")

改为(删去后两个参数):

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIS_ARM -DHAVE_NEON ")


/home/Downloads/srsLTE/lib/src/common/arch_select.cc文件里的HWCAP_NENO改为HWCAP_AES


下载源码编译安装:

git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
# 选18_12的原因是ubuntu16.04的boost库版本过低,测试到最后只适配release_18_12
git tag -l
git checkout -f release_18_12
mkdir build
cd build
cmake ../ 
# 如果要指定boost版本,指定高版本后可以安装高版本srslte。注意修改了boost后,
# uhd可能也需要重新编译。
#cmake ../ -DBOOST_ROOT=/usr/local/boost -DBoost_NO_SYSTEM_PATHS=ON
make -j3
make test -j3
sudo make install
sudo ldconfig
# 拷贝srsLTE的配置文件到`~/.config/srslte`, 这一步最好执行,因为不是master版本
# 有很多参数是无效的,配置文件里的内容在不同的版本里是不一样的。
sudo srslte_install_configs.sh user

三、源码编译安装srsLTE 19_12

四、源码编译安装srsLTE 20_04_1

srsLTE 20_04_1在安装了依赖项以后可以按照正常的步骤直接编译安装不会出错。

下载源码编译安装:

git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
git tag -l
git checkout -f release_20_04_1
mkdir build
cd build
cmake ../ 
make -j3
make test -j3
sudo make install
sudo ldconfig
# 拷贝srsLTE的配置文件到`~/.config/srslte`, 这一步最好执行,因为不是master版本
# 有很多参数是无效的,配置文件里的内容在不同的版本里是不一样的。
sudo srslte_install_configs.sh user

五、源码编译安装srsGUI

GUI不是必须的,开启srsGUI会消耗较多的系统资源,并且还需要安装桌面环境才能使用。

sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-dev libqt4-dev
git clone https://github.com/srsLTE/srsGUI.git
cd srsGUI
mkdir build && cd build
cmake ../
make -j3
sudo make install
sudo ldconfig

五、出错及解决方法汇总

1.使用源码编译安装srsLTE,git checkout release_18_12出错:

error: Your local changes to the following files would be overwritten by checkout:

解决方法:加-f参数强制切换:

sudo git checkout -f release_18_12

2.使用源码编译安装srsLTE,make时出错:

-mfloat-abi=hard, -mfpu=neon
c++: error: unrecognized command line option ‘-mfloat-abi=hard’
c++: error: unrecognized command line option ‘-mfpu=neon’

ARM编译器文档中得知:

The -mfloat-abi option is not valid with ARMv8 AArch64 targets. AArch64 targets use hardware floating-point instructions and hardware floating-point linkage. However, you can prevent the use of floating-point instructions or floating-point registers for AArch64 targets with the -mcpu=+nofp+nosimdname option. Subsequent use of floating-point data types in this mode is unsupported.

待解决…

2020.07.21新增内容↓

编译问题先查CMakeLists.txtMakefile,查询后发现Makefile里没有“neon”而CMakeLists.txt里有,因此打开CMakeLists.txt文件定位neon,nano编辑器里的查找快捷键为Ctrl+W,可以记为Whereis。

最初查找信息说要根据ARM编译器文档里的-mcpu-mfloat-abi-mfpu介绍来修改出错的参数,尝试了-mcpu=+nofp+nosimd cortex-a53-mfpu=neon-fp-armv8-mfloat-abi=soft等设置后,编译依然出错,然后尝试删掉这两个参数,结果就通过了。

/home/Downloads/srsLTE/CMakeLists.txt文件里的

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIS_ARM -DHAVE_NEON -mfloat-abi=hard -mfpu=neon")

改为(删去后两个参数):

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DIS_ARM -DHAVE_NEON ")

HWCAP_NEON

根据上面第一步修改后原问题解决,出现新问题‘HWCAP_NEON’ was not declared in this scope

报错的是.o文件,.o文件是由去掉.o后的文件生成的,可能与.o文件不在同一目录,我们使用以下命令查找arch_select.cc文件所在位置:

find /home/Downloads/srsLTE -name arch_select.cc


/home/Downloads/srsLTE/lib/src/common/arch_select.cc文件里的

HWCAP_NENO改为HWCAP_AES


然后重新编译,虽然还有一些warning,但是没有error,顺利通过:

六、查找问题时用到的一些技巧

1.根据文件名查找文件所在目录

#     目录      参数         文件名
find /home -name arch_select.ccarch_select.cc

此外,find还可以用来查找过去x时间内被修改/读取过的文件:

find . -ctime -20  #将目前目录及其子目录下所有最近 20 天内更新过的文件列出

#-amin n : 在过去 n 分钟内被读取过
#-atime n : 在过去n天内被读取过的文件
#-cmin n : 在过去 n 分钟内被修改过
#-ctime n : 在过去n天内被修改过的文件
#-anewer file : 比文件 file 更晚被读取过的文件
#-cnewer file :比文件 file 更新的文件

find的更多用法可参考:Linux find命令

2.查找包含某段内容的文件

#     参数     内容          目录或文件
grep -r -l "cortex" /home/Downloads/srsLTE/

-r:表示在当前文件夹及其子目录中查找;
-l:只输出对应文件的包含路径的文件名,不加此参数还会输出包含该内容的整段信息。
还有一些常用参数:
-n:显示搜索文本在文件中的行数;
-i:忽略大小写问题;
-w :只显示全字符合的列;
更多参数请参考:Linux grep命令

出现grep: invalid max count错误,原因是某些字符需要添加转义字符\才能被正常识别。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!安装Ubuntu 18.04在树莓派上是一项非常实用的任务。下面是一个简单的教程来帮助您完成这个过程: 步骤1:准备工作 首先,您需要准备以下物品: - 树莓派(建议使用树莓派3或更高版本) - 一张SD卡(建议至少16GB) - 一个读卡器 - 一台电脑(Windows、Mac或Linux均可) - 一个稳定的网络连接 步骤2:下载Ubuntu镜像 访问Ubuntu官方网站(https://ubuntu.com/download/raspberry-pi)并下载适用于树莓派Ubuntu 18.04镜像文件。 步骤3:格式化SD卡 使用磁盘工具将SD卡格式化为FAT32文件系统。 步骤4:烧录镜像 使用烧录软件(如balenaEtcher或Raspberry Pi Imager)将下载的Ubuntu镜像文件写入SD卡。 步骤5:启动树莓派 将SD卡插入树莓派,并连接显示器、键盘和鼠标。接通电源后,树莓派将启动到Ubuntu安装界面。 步骤6:安装Ubuntu 按照安装界面上的提示进行操作。您需要选择安装语言、键盘布局和时区等。在安装类型中,选择“使用整个磁盘并安装Ubuntu”(或根据需要选择其他选项)。 步骤7:完成安装 等待安装过程完成,并根据提示设置用户名、密码和其他系统设置。 步骤8:更新系统 安装完成后,打开终端并运行以下命令以更新系统: ``` sudo apt update sudo apt upgrade ``` 至此,您已经成功在树莓派安装Ubuntu 18.04!您可以根据需要安装其他软件或进行进一步的配置。 希望这个教程能对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值