树莓派3B安装Ubuntu Server 18.04 + UHD + GNU Radio

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

一、连接网络

由于学校实验室环境没有路由器,通过网线直连笔记本电脑(Win10)共享笔记本的网络,笔记本通过WiFi连接网络。

打开笔记本电脑上的网络和共享中心,点击连接的WLAN。

在WLAN状态页,点击属性,在WLAN属性页选择共享选项卡,在允许其他网络用户通过此计算机的Internet连接来连接前打勾,确定后,树莓派上测试一下ping baidu.com看树莓派能否上网。


由于Ubuntu18.04 for Raspberry版本默认是关闭SSH连接的,因此需要先连接显示器将SSH设置为允许连接。
连接显示器后需要输入用户名和密码,默认的用户名和密码都是ubuntu,然后设置一个新密码。

打开相关文件:

sudo nano /etc/ssh/sshd_config

找到#PermitRootLogin prohibit-password 修改为#PermitRootLogin yes,Ctrl+o保存,回车确认文件名,Ctrl+x退出。然后使用以下命令重启SSH服务和查看SSH进程:

service ssh restart
ps aux | grep ssh

SSH重启后就可以通过Windows上的SSH工具远程连接树莓派了,这里我使用PuTTY(点此跳转百度云下载)。

打开PuTTY,输入树莓派的IP地址即可登录,树莓派的IP地址可以在树莓派上使用命令ifconfig查看。

二、换源

先备份原来的sources.list文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

修改sources.list文件:

sudo nano /etc/apt/sources.list

添加清华源:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-security multiverse

或者阿里源:

deb http://mirrors.aliyun.com/ubuntu-ports bionic main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security multiverse

修改dns:

sudo vim /etc/resolv.conf

添加以下内容

nameserver 8.8.8.8
nameserver 8.8.4.4

重启网络:

sudo /etc/init.d/networking restart

更新:

sudo apt-get update
sudo apt-get upgrade

需要注意的是,Ubuntu Ports 是 Arm64,Armhf 等平台的 Ubuntu 软件仓库,该源地址与桌面版的Ubuntu使用的源地址有所区别,不能直接照搬桌面版的源地址。其中bionic为Ubuntu18.04的Codename,如果是其他的版本需要修改所有源地址中的Codename。

查看Codename的方法:

1.lsb_release -a

2.Ubuntu 各版本代号简介

三、设置时区

sudo cp /etc/localtime /etc/localtime.bak
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

使用date命令查看当前时间,经不严谨观察,这个上海时间落后标准的北京时间33秒左右。

四、安装桌面

由于树莓派性能有限,尽量选择轻量化的桌面安装,这里我选用的是Mate桌面,安装完才发现官方有提供安装好Mate桌面的Ubuntu系统。

sudo apt-get update
sudo apt-get install ubuntu-mate-core ubuntu-mate-desktop

五、远程连接树莓派

远程连接的方法主要有SSH、VNC、Xrdp,以上方法都需要两台设备处于局域网中,即可以相互ping通各自的IP地址。

1.SSH

树莓派打开SSH的方法参见步骤1,桌面端Windows直接下载SSH工具(例如:PuTTY、FinahShell)即可,下面介绍桌面端Ubuntu打开SSH的方法:

sudo apt-get install ssh
sudo apt install openssh-server
sudo apt install sshguard

检查PC端和树莓派Ubuntu Mate上SSH是否启用:

ps -e | grep ssh

进程ssh-agent是客户端,sshd为服务器端,如果结果中有sshd的进程说明openssh-server已经启动,如果没有则需运行命令启动。再用以下命令查看sshd是否正常运行,没有error说明运行正常:

systemctl status ssh

连接树莓派,其中ubuntu为连接目标的用户名,@后面为IP地址:

ssh ubuntu@192.168.2.102

中途需要确认对方的密钥信息,然后输入对方的密码,出现Welcome to XXXX 表明连接成功,连接成功后当前终端的用户名会变更成连接目标的用户名。

设置ssh为系统服务:

sudo systemctl enable ssh
sudo systemctl start ssh

在SSH已连接的情况下,可以使用scp(secure copy)命令远程拷贝文件。

从本地复制到远程:

scp local_file remote_username@remote_ip:remote_folder  #传输文件
scp -r local_folder remote_username@remote_ip:remote_folder  #传输文件夹需要添加参数-r

从远程复制到本地只需调换后两个参数的顺序即可。更多可选参数及详细介绍可参考:Linux scp命令

举例:将本地(用户名:maplesky)的/home/maplesky/Downloads/image文件夹(含123.txt)传输到远程的树莓派(用户名:ubuntu)的/home/Downloads下,

将远程的树莓派(用户名:ubuntu)的/home/Downloads/build文件夹(含456.txt)传输到本地(用户名:maplesky)的/home/maplesky/Downloads/下:

scp -r /home/maplesky/Downloads/image ubuntu@192.168.2.102:/home/Downloads
scp -r ubuntu@192.168.2.102:/home/Downloads/build /home/maplesky/Downloads/

常见错误:

1.类似scp: /home/Downloads/build: not a regular file的错误

一般在传输文件夹的时候出现,原因是没有添加参数-r

2.类似scp: /home/Downloads/image: Permission denied的错误

请检查本地文件夹和目标文件夹两者是否都具有写入权限,没有的话使用以下命令获取对应文件夹的777权限:

sudo chmod 777 /home/Downloads/image

2.VNC

sudo apt-get install vnc4server  #安装vnc
vncserver :1  #开启vnc1
#vncserver -kill :1  #关闭vnc1

连接的时候需要连接的地址为ip:1,例如192.168.2.102:1

修改~/.vnc/xstartup文件:

...
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

mate-session &

3.Xrdp

Xrdp是Windows自带的远程桌面,在Win 10上不用安装即可使用,在Ubuntu上使用以下命令安装:

sudo apt-get install xrdp

六、固定IP

如果没有固定IP每次树莓派重启后自动分配的IP都会不同,每次都需要查看IP再更改SSH连接的IP。

首先使用ifconfig查看树莓派的IP、子网掩码等信息:

su    #获取root权限
nano /etc/network/interface    #修改文件

添加以下内容:

auto eth0
iface eth0 inet static
address 192.168.0.241
netmask 255.255.255.0
gateway 192.168.0.1

Ctrl+O保存,回车确认文件名,Ctrl+X退出。

配置完成后需要重启相应网卡,使用ifdown eth0关闭网卡,使用ifup eth0启动网卡,完成网卡重启,通过ifconfig 命令查看IP地址,此时发现IP地址已经是设定的IP地址。

七、分配交换空间

交换空间即虚拟内存,可以将物理内存中暂时不用的部分放到虚拟内存提高运行程序的效率或者在物理内存不够用时把硬盘的部分空间作为内存使用。由于硬盘的读写速度远低于内存,因此虽然物理内存没用完时虚拟内存可以提升运行效率,但是物理内存用完后在虚拟内存上运行的程序会很慢。

物理内存≤2GB时,建议分配2倍的交换空间;

物理内存在2GB~8GB直接时,建议分配与物理内存等大的交换空间;

物理内存在8GB以上时,至少分配4GB交换空间。

以上建议是在未开启休眠功能情况下的建议值,开启休眠功能需要在上面的基础上增加与物理内存等大的交换空间。

#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=2048MB
sudo dd if=/dev/zero of=/swapfile bs=64M count=32
#把刚才空间格式化成swap格式
sudo mkswap /swapfile
#使用刚才创建的swap空间
sudo swapon /swapfile

不需要或者需要更大的交换空间时,使用以下命令关闭并删除:

sudo swapoff /swapfile
sudo rm /swapfile

第一次分配了1GB交换空间,make进行到51%的时候还是报内存不足,就分配了2GB,后面没有再出同样的错误。

以上方法设置的交换空间重启后就会没有,想要长期使用需要运行以下命令:

sudo cp /etc/fstab /etc/fstab.bak   #备份
sudo nano /etc/fstab    #打开fstab文件

在最后添加以下内容:

/swapfile  none  swap  defaults  0  0

重启后使用free -g查看是否成功。

这里推荐一个SSH工具:FinalShell,可以在连接的同时监控目标的CPU、内存使用率等信息。

八、安装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

九、安装GNU Radio

1.安装依赖项

#有些依赖上面uhd已经装过了
sudo apt-get install python-zmq
sudo apt-get install swig3.0 libfftw3-dev libcppunit-dev libgsl-dev alsa-base libasound2 libasound2-dev
#开启 gnuradio companion
sudo apt-get install python-numpy python-cheetah python-lxml python-gtk2
#开启 WX GUI
sudo apt-get install python-wxgtk3.0 python-numpy
#开启 QT GUI
sudo apt-get install python-qt4 python-qwt5-qt4 libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev libxi-dev
#开启 video sdl
sudo apt-get install libsdl1.2-dev
#开启 Polyphase Filter Bank examples
sudo apt-get install python-scipy python-matplotlib python-tk

sudo apt-get install sdcc guile-2.0-* ccache python-sip python-sip-dev python-sphinx libcomedi-dev libzmq3-dev

2.编译

cd /home/Downloads
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
git checkout maint-3.7
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
#运行报错:Python checking for mako >= 0.4.2 - not found,
#解决方法:`sudo apt-get install python-mako`

所有组件全部enable,遇到没有enable的检查依赖才可以进行下面的步骤

make -j3
make test -j3
sudo make install
sudo ldconfig

3.测试安装结果

gnuradio-config-info --version
gnuradio-config-info --prefix
gnuradio-config-info --enabled-components

4.运行gnuradio

gnuradio-companion

十、出错及解决方法汇总

在安装uhd时,cmake时没问题:

make时报错:

使用FinalShell监控树莓派编译过程,发现是内存不足,分配交换空间来解决,参考上面步骤六。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 18.04安装UHD GNU Radio,您可以按照以下步骤进行操作: 1. 更新软件包列表和系统软件: - sudo apt update - sudo apt upgrade 2. 安装必要的依赖包: - sudo apt install build-essential cmake libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libcomedi-dev libsdl1.2-dev python3-gi-cairo python3-pygccxml python3-pygraphviz python3-qt4 python3-qwt5-qt4 libqt4-opengl-dev python3-click python3-click-plugins python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0 3. 下载UHD源文件并进行编译安装: - 选择一个合适的文件目录,并进入该目录。 - 使用如下命令下载UHD源文件: - git clone --recursive https://gitee.com/chen_nanda/gnuradio.git - 切换到所需的版本: - cd gnuradio - sudo git checkout v3.7.13.4 - sudo git submodule update --init --recursive 4. 编译和安装UHD GNU Radio: - 创建build目录并进入该目录: - sudo mkdir build - cd build - 运行cmake进行配置: - sudo cmake ../ - 运行make进行编译: - sudo make - 运行make test进行测试(可选): - sudo make test - 运行make install进行安装: - sudo make install - 更新动态链接库: - sudo ldconfig 5. 查看GNU Radio版本信息: - gnuradio_config-info --version 6. 启动GNU Radio的GUI: - gnuradio-companion 7. 对USRP进行相关初始设置: - 根据您的具体需求和硬件配置,进行USRP的相关初始化设置。 以上是在Ubuntu 18.04安装UHD GNU Radio的步骤。请根据您的需求和具体环境进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值