Raspberry Pi3B+之安装bookworm+Rpanion系统
Raspberry Pi3B+之安装bookworm+Rpanion系统
- 1. 源由
- 2. 系统安装
- 3. 系统安装
- 3.1 烧录系统
- 3.2 设备接线
- 3.3 配置无线
- 3.4 更新系统
- 3.5 安装git
- 3.6 克隆Rpanion
- 3.7 安装Rpanion
- 4. 系统管理
- 5. 附录
- 问题1:error: externally-managed-environment
- 问题2:bookworm系统上FPS性能降低
- 问题3:bookworm系统上电传UDP Client异常
- 问题4:ninja: error: '/home/daniel/Work/Rpanion-server/modules/mavlink-router/tools/meson-vcs-tag.sh'
1. 源由
由于之前SD卡上的Rpanion系统坏了,导致RTP服务异常,无法正常使用。
为此,干脆重新刷下系统,看看最新的bookworm系统情况如何。
2. 系统安装
- Raspbian镜像无头烧录
- 最新树莓派系统下载链接
Raspberry Pi OS Lite
Release date: July 4th 2024
System: 32-bit
Kernel version: 6.6
Debian version: 12 (bookworm)
Size: 500MB
鉴于以下情况,部分细节不做深究:
- 没有显示屏幕,所以直接下Lite,根据需要作最精简的安装
- Raspberry Pi3B+有网口,所以对于USB直连不做过分要求
3. 系统安装
依照先后顺序,将安装步骤一一与大家过一下。
3.1 烧录系统
略,使用tf转USB的转接器,将OS镜像刷到tf卡上。
3.2 设备接线
- 有线网口连接路由器,DHCP自动获取IP地址
- 插入一个USB网卡,远比板载PCB天线性能好
- 插入有系统的tf卡,上电启动
注:若MAC地址已经在路由器上固定配置了IP地址,那么启动后直接ssh连接该IP。若没有绑定过IP,那么可以采用raspberrypi.local
来连接树莓派。
3.3 配置无线
通常情况下,有线不是很方便,那么配置一个无线,板子就可以随遇而安了。
$ sudo nano /etc/wpa_supplicant/wpa_supplicant-wlan1.conf
$ sudo cat /etc/wpa_supplicant/wpa_supplicant-wlan1.conf
network={
ssid="SSID2"
psk="password2"
}
$ sudo nano /etc/rc.local
$ tail -n 3 /etc/rc.local
sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant-wlan1.conf
sudo dhclient wlan1
exit 0
先手工配置下,确认IP地址(192.168.1.15):
$ sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant-wlan1.conf
$ sudo dhclient wlan1
3.4 更新系统
- apt-get通过代理更新系统
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get -o Acquire::http::proxy="http://192.168.1.10:808" update
$ sudo apt-get -o Acquire::http::proxy="http://192.168.1.10:808" upgrade
$ sudo apt-get -o Acquire::http::proxy="http://192.168.1.10:808" upgrade --fix-missing
上述命令来回切换,直到所有的安装包被正确下载,触发安装。
3.5 安装git
$ sudo apt-get install git
3.6 克隆Rpanion
$ git clone https://github.com/stephendade/Rpanion-server.git
3.7 安装Rpanion
$ cd Rpanion-server/
$ cd ./deploy && ./RasPi2-3-4-5-deploy.sh
4. 系统管理
管理界面:http://192.168.1.15:3000/
- Rpanion-Server github
- Rpanion-Server manual
相关资料:
- Ardupilot Rpanion iperf网络性能测试
- Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转
- Ardupilot 4.5.1 Rpanion 4GLTE(Domestic Routing) 720P First Fly
- ArduCopter 4.5.1 Rpanion 4G LTE Outside
5. 附录
问题1:error: externally-managed-environment
+ sudo python3 -m pip install --upgrade pip
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
For more information visit http://rptl.io/venv
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
- 解决方案:需要对脚本做一些简单的处理。
- error: externally-managed-environment #252
diff --git a/deploy/install_common_libraries.sh b/deploy/install_common_libraries.sh
index 408d649..f38bf8e 100755
--- a/deploy/install_common_libraries.sh
+++ b/deploy/install_common_libraries.sh
@@ -23,7 +23,7 @@ source ~/.profile
# Debian Bookdown does not like pip install wthout a virtualenv, so do apt installs instead
# Also need gstreamer1.0-libcamera, as the libcamerasrc gst element has moved
source /etc/os-release
-if [ "$ID" == "debian" ] && [ "$VERSION_CODENAME" == "bookworm" ]; then
+if [ "$ID" == "debian" ] || [ "$VERSION_CODENAME" == "bookworm" ]; then
sudo apt install -y meson python3-netifaces gstreamer1.0-libcamera
else
sudo python3 -m pip install --upgrade pip
问题2:bookworm系统上FPS性能降低
- 640x480 on RPI3B+ FPS can’t be over 6.5, performance degraded
问题3:bookworm系统上电传UDP Client异常
- Can’t add UDP telemetry client
问题4:ninja: error: ‘/home/daniel/Work/Rpanion-server/modules/mavlink-router/tools/meson-vcs-tag.sh’
Get:1 https://deb.nodesource.com/node_20.x nodistro/main armhf nodejs armhf 20.17.0-1nodesource1 [28.1 MB]
Fetched 28.1 MB in 20s (1,406 kB/s)
Selecting previously unselected package nodejs.
(Reading database ... 143825 files and directories currently installed.)
Preparing to unpack .../nodejs_20.17.0-1nodesource1_armhf.deb ...
Unpacking nodejs (20.17.0-1nodesource1) ...
Setting up nodejs (20.17.0-1nodesource1) ...
Processing triggers for man-db (2.11.2-2) ...
+ sudo sed -i.bak -e '/^\[main\]/aauth-polkit=false' /etc/NetworkManager/NetworkManager.conf
+ ./build_mavlinkrouter.sh
+ cd ../modules/mavlink-router
+ meson setup build . --buildtype=release
Directory already configured.
Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson setup --reconfigure"
to force Meson to regenerate.
If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
++ free -m
++ awk '/^Mem:/{print $2}'
+ '[' 920 -le 500 ']'
+ ninja -C build
ninja: Entering directory `build'
ninja: error: '/home/daniel/Work/Rpanion-server/modules/mavlink-router/tools/meson-vcs-tag.sh', needed by 'git_version.h', missing and no known rule to make it
这里实际问题是Rpanion-server
应该路径可能由于在不正确的路径下安装过一次,因此配置就锁定在那个位置了。
sudo perl -pe 's/pi/$ENV{SUDO_USER}/' -i /etc/systemd/system/rpanion.service
在 /etc/systemd/system/rpanion.service
文件中,将所有的 pi
字符串替换为执行 sudo
命令的用户(即 $SUDO_USER
)的用户名。例如,如果你以 daniel
用户执行这条命令,文件中的 pi
将被替换为 daniel
。
解决方案: rm -rf /home/daniel/Work/Rpanion-server/modules/mavlink-router/build