当前位置: 首页 > article >正文

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

鉴于以下情况,部分细节不做深究:

  1. 没有显示屏幕,所以直接下Lite,根据需要作最精简的安装
  2. 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


http://www.kler.cn/news/329973.html

相关文章:

  • 某客户Oracle RAC无法启动故障快速解决
  • 提升工作效率的编程工具:从选择到应用
  • 什么是ETL?什么是ELT?怎么区分它们使用场景
  • Python字符串string方法大全及使用方法[1]以及FastAPI框架文件上传的处理-client使用postman
  • 数据分析-27-基于pandas进行模糊匹配merge_asof和groupby分组统计
  • javaScript中的浅拷贝和深拷贝详解
  • synchronized底层是怎么通过monitor进行加锁的?
  • 【Bug】解决 Ubuntu 中 “error: Unable to Find Python3 Executable” 错误
  • 【C++算法】4.双指针_快乐数
  • redis 中IO多路复用与Epoll函数
  • 结合了LLM(大语言模型)的编辑器,不仅能理解人类语言,还能与用户互动,仿佛有了自己的思想。...
  • [倍福PLC]TwinCAT标准数据类型
  • WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?
  • 在CentOS 7上安装WordPress的方法
  • 深入理解 C 语言中的内存操作函数:memcpy、memmove、memset 和 memcmp
  • Leetcode 每日一题:Crack The Safe
  • OSINT技术情报精选·2024年9月第4周
  • 经典面试题目---Spring IOC容器的核心实现原理
  • 数字控制系统
  • 区块链技术简介
  • 利用QGIS将.shp文件转换成json文件
  • VR 尺寸美学主观评价-解决方案-现场体验研讨会报名
  • 简单实现log记录保存到文本和数据库
  • 【Ubuntu】apt安装时报错:不再含有 Release 文件
  • ab plc1756连接Profinet 转 EtherNet/IP 网关进行数据交互
  • 面试速通宝典——7
  • 《应用科学学报》
  • macOS安装MySQL教程, 2024年9月26日更新, 亲测有效, 附有百度网盘下载链接
  • 金融科技驱动未来:智慧金融的崛起与应用
  • 【数据结构】图论基础