树莓派3B安装UHD + GNU Radio + OpenLTE
树莓派3B安装UHD + GNU Radio + OpenLTE
一、安装系统
1.安装Ubuntu Server
Install Ubuntu Server on a Raspberry Pi 2, 3 or 4
树莓派安装的Ubuntu版本不同于桌面版,需要选择Ubuntu for IOT。
关于系统32位和64位选择的官方说明:
Raspberry Pi 2仅支持32位,因此没得选。Raspberry Pi 3和4是64位板,根据Raspberry Pi基金会的说法,由于Pi 3仅支持1GB内存,因此对与Pi 3而言使用64位版本没有太大优势,建议使用32位版本。但是,对于Pi 4而言,由于它最高支持4GB内存,因此64位版本运行速度会更快。
该镜像默认是不带桌面的,只有命令行,可以自行选择喜欢的桌面安装。
系统默认的用户名和密码都是ubuntu
。
2.安装PiSDR
PiSDR是一个预装了SDR Angel、Soapy Remote、GQRX、GNURadio、LimeUtil、LimeVNA等许多SDR软件的树莓派操作系统,支持的硬件包括Airspy HF+ Discovery、Airspy Mini、Airspy R2、LimeNET Micro、LimeSDR Mini、LimeSDR USB、PlutoSDR、RTL-SDR、HackRF,并且预装和默认开启了VNC、SSH以便远程连接,支持目前所有版本的的树莓派型号(0、1、2、3、4),在GitHub上开源。
PiSDR可以按照与官方的树莓派系统Raspbian完全相同的方式进项安装,需要至少8GB容量的MicroSD卡,该系统安装完后就会占用6GB左右的空间,因此建议使用16GB及以上的MicroSD卡。可以使用官方提供的工具Raspberry Pi Imager将系统镜像文件写入到MicroSD卡中(此过程会删除SD卡内的所有文件,请提前做好备份)。
- 点CHOOSE OS选择.img格式的操作系统镜像文件;
- 点CHOOSE SD CARD选择SD卡对应的盘符;
- 点WRITE开始将系统写入SD卡。
写入过程需要等待一段时间,写入完成会自动验证系统完整性,验证完成后会跳出提示,此时就可以弹出SD卡,将SD卡安装到树莓派上,连接电源启动树莓派。
提示:将系统写入到SD卡后,SD卡容量会变为只有几百MB,如下图。这是正常现象,不需要担心SD卡损坏。
2.1 扩展文件空间
安装完系统后使用df -h
命令可以看到/dev/root 3.5G 3.2G 97M 98% /
,树莓派并没有完全使用整张SD卡的空间,使用以下命令将树莓派根目录扩展到整张SD卡:
sudo raspi-config
选择Advanced Options -> Expand Filesystem
,OK 确认,再Finish确认,然后会提示重启,可以立即重启也可以在后一步改完分辨率后重启。
2.2 修改分辨率
使用显示器时树莓派会自动适配显示器的分辨率,但是使用VNC时不会自动匹配,使用以下命令:
sudo raspi-config
选择Advanced Options -> Resolution -> 选择你想要的分辨率
,OK 确认,再Finish确认,最后重启即可。
2.3 更换国内源
因为系统默认使用的是国外的源,在国内进行下载、更新等操作会比较慢,我们修改成国内的软件源和pip源,需要注意的是软件源需要根据不同的系统版本更改。
lsb_release -a #查看系统版本信息
最下面一行Codename显示的是buster,因此我们需要使用将源地址中的Codename改为buster
。
对于树莓派其他的系统版本,只需要将源地址中的buster
改为系统对应的Codename即可。
树莓派官方收录的全球源集合:https://www.raspbian.org/RaspbianMirrors,在页面查找China可以快速定位国内源。
nano打开文件后把官方的源前面加上 # 注释,修改完成后按Ctrl + O 保存,然后回车确认,最后Ctrl + X 退出。
2.3.1 树莓派基金会提供的源(一般可不更改这个源)/etc/apt/sources.list.d/raspi.list
里的软件源是树莓派基金会单独提供/维护的软件源,主要包括raspi-config、minecraftpi、树莓派桌面环境、内核固件驱动等少量软件。
sudo nano /etc/apt/sources.list.d/raspi.list
将文件里的默认的官方软件源用# 注释掉并添加以下内容:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui #清华源
2.3.2 Raspbian源(一般我们更改的是这个源)
raspbian这个源是由独立开发者维护的,与树莓派基金会并无直接联系,通常位于/etc/apt/sources.list
。
sudo nano /etc/apt/sources.list
将文件里的默认的官方软件源用# 注释掉并添加以下内容:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os/raspbian/ buster main non-free contrib rpi #清华源
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os/raspbian/ buster main non-free contrib rpi #清华源
2.3.3 pip源
pip更换为国内源,可以大大的提高安装成功率和速度
mkdir ~/.pip
sudo nano ~/.pip/pip.conf
在文件里添加以下内容:
[global]
timeout =6000
index-url =http://pypi.douban.com/simple/ #豆瓣源
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/ #豆瓣源
trusted-host =pypi.douban.com
除了豆瓣源,还有多个源可供选择:
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:http://pypi.douban.com/simple
Python官方:https://pypi.python.org/simple/
v2ex:http://pypi.v2ex.com/simple/
中国科学院:http://pypi.mirrors.opencas.cn/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
可用以下命令临时使用某个pip源,测试后选择速度最佳的源保存到pip.conf
文件中:
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
更换完成后使用以下命令更新:
sudo apt-get update
sudo apt-get upgrade
系统备份
- 新建一个空白的.img后缀的文件,填写该文件的路径
- 选择对应的SD卡的盘符
- 点Read即可进行备份
该软件同时也可以将系统镜像写入SD卡还原备份:
- 选择备份的.img文件路径
- 选择SD卡对应的盘符
- 点Write即可进行写入
该方法的缺点是会生成整个SD卡容量的镜像,占用空间比较大,恢复时写入的SD卡容量需要大于或等于原先读取镜像的SD卡,由于不同厂家的同容量卡也会有一点差别,因此可能无法写入其他品牌的同容量SD卡中。
2.使用虚拟磁盘备份树莓派系统镜像
该方法可以最大程度节约空间,只根据树莓派已使用的空间生成系统镜像,如果使用的空间较小,可以恢复到比原来SD卡容量小的卡上。
二、安装uhd
参考:https://files.ettus.com/manual/page_build_guide.html
#安装依赖
sudo apt-get install aptitude
sudo apt-get install python3-mako python3-docutils python3-numpy python3-dev
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
#下载源码编译
git clone https://github.com/EttusResearch/uhd.git
cd uhd/host && mkdir build && cd build
cmake -DNEON_SIMD_ENABLE=OFF ../
make
make test
sudo make install
三、安装GNU Radio
参考:https://wiki.gnuradio.org/index.php/InstallingGR#From_Binaries
安装依赖:
sudo apt install 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 python3-pip
pip3 install git+https://github.com/pyqtgraph/pyqtgraph@develop
pip3 install numpy scipy
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.profile
cd ~/Downloads
git clone --recursive https://github.com/gnuradio/gnuradio
cd gnuradio
git checkout maint-3.7
mkdir build
cd build
git pull --recurse-submodules=on
git submodule update --init
cmake -DENABLE_GR_UHD=OFF ..
make -j3 #经实践使用多线程编译容易卡死,不建议加-j
sudo make install
sudo ldconfig
四、安装OpenLTE
可以使用以下命令下载:
wget https://ufpr.dl.sourceforge.net/project/openlte/openlte_v00-20-05.tgz
也可以直接下载,下载地址:https://sourceforge.net/projects/openlte/files/
tar zxvf openlte_v00-20-05.tgz
cd openlte_v00-19-04/
mkdir build
cd build
sudo cmake ../
sudo make
sudo make install
缺少libbladerf,待解决…
本文地址:https://blog.csdn.net/L_786795853/article/details/107319389