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

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 LiteRelease date: July 4th 2024System: 32-bitKernel version: 6.6Debian 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 installpython3-xyz, where xyz is the package you are trying toinstall.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. Makesure you have python3-full installed.For more information visit http://rptl.io/venvnote: 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 movedsource /etc/os-release
-if [ "$ID" == "debian" ] && [ "$VERSION_CODENAME" == "bookworm" ]; then
+if [ "$ID" == "debian" ] || [ "$VERSION_CODENAME" == "bookworm" ]; thensudo apt install -y meson python3-netifaces gstreamer1.0-libcameraelsesudo 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

相关文章:

Raspberry Pi3B+之安装bookworm+Rpanion系统

Raspberry Pi3B之安装bookwormRpanion系统 1. 源由2. 系统安装3. 系统安装3.1 烧录系统3.2 设备接线3.3 配置无线3.4 更新系统3.5 安装git3.6 克隆Rpanion3.7 安装Rpanion 4. 系统管理5. 附录问题1:error: externally-managed-environment问题2:bookworm…...

无人机专业除理论外,飞手执照、组装、调试实操技术详解

无人机专业的学习除了丰富的理论知识外,飞手执照的获取、无人机的组装与调试等实操技术也是至关重要的。以下是对这些方面的详细解析: 一、无人机飞手执照 1. 必要性 法规要求:根据《民用无人驾驶航空器系统驾驶员管理暂行规定》等相关法规…...

【网路通信基础与实践番外二】TCP协议的流量控制和拥塞控制以及二者区别和例题

TCP协议是端对端的协议,因此在数据进行传输的过程受发送方,数据通道,接收方三方状态的影响。我们用水龙头来比喻数据发送方,水管来比喻数据通道,水桶来表示数据接收方。 图(a)表示水桶太小,来不及接受注入…...

SpringBoot3+Vue3开发后台管理系统脚手架

后台管理系统脚手架 介绍 在快速迭代的软件开发世界里,时间就是生产力,效率决定成败。对于构建复杂而庞大的后台系统而言,一个高效、可定制的后台脚手架(Backend Scaffold)无疑是开发者的得力助手。 脚手架 后台脚…...

OpenFeign微服务部署

一.开启nacos 和redis 1.查看nacos和redis是否启动 docker ps2.查看是否安装nacos和redis docker ps -a3.启动nacos和redis docker start nacos docker start redis-6379 docker ps 二.使用SpringSession共享例子 这里的两个例子在我的一个博客有创建过程&#xff0c…...

【C语言】数组(下)

【C语言】数组(下) 6、二维数组的创建6.1二维数组的概念6.2二维数组的创建 7、二维数组的初始化7.1不完全初始化7.2完全初始化7.3按照行初始化7.4初始化时可以省略行,但是不能省略列 8、二维数组的使用8.1 二维数组的下标8.2二维数组的输入和…...

cGANs with Projection Discriminator

基于映射鉴别器的CGAN 模型中,判别器(Discriminator)不是通过将条件信息简单地与特征向量拼接(concatenate)来使用条件信息,而是采用一种基于投影的方式,这种方式更加尊重条件信息在底层概率模…...

mysql学习教程,从入门到精通,SQL HAVING 子句(32)

1、SQL HAVING 子句 当然!HAVING 子句在 SQL 中用于对分组后的结果进行过滤。它通常与 GROUP BY 子句一起使用,以便对聚合函数(如 SUM(), COUNT(), AVG(), MAX(), MIN() 等)的结果进行条件筛选。 以下是一个示例,假设…...

JavaScript while循环语句

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断循环执行代码块。 while(条件){语句;} var i0;while(i<100){console.log(i);i1;} 注意&#xff1a;所有的for循环都可以改写为while循环...

49天精通Java(Day 2):Java的基本语法

上期内容回顾 在上一期的内容中&#xff0c;我们介绍了Java的基本概念、历史背景&#xff0c;并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天&#xff0c;我们将深入探讨Java的基本语法&#xff0c;包括变量、数据类型、运算…...

uni-app之旅-day01-home页

首页 3.0 创建 home 分支 &#x1f355;&#x1f355;&#x1f355;运行如下的命令&#xff0c;基于 master 分支在本地创建 home 子分支&#xff0c;用来开发和 home 首页相关的功能git branch(查看分支)git checkout -b home(创建home分支) 3.1 配置网络请求 &#x1f32…...

Vue3轻松实现导出Excel文件功能

文章目录 1.前言2.安装插件3.案例3.1 定义表格数据,设置 id 选择器3.2 据所选 dom 对象生成 sheetbook3.3 写入文件3.4 生成 xlsx文件4.完整代码1.前言 前端常用的导出 Excel的 js 库是 xlsx,但是 xlsx不能设置样式。要想设置样式,必要要结合 xlsx-style 插件一起使用,但是…...

在Kali Linux中使用VNC和iptables配置xrdp以实现远程连接

在Kali Linux中&#xff0c;使用VNC和iptables配置xrdp以实现远程连接涉及几个步骤。不过&#xff0c;值得注意的是&#xff0c;VNC和xrdp是两种不同的远程桌面协议&#xff0c;它们通常不会在同一配置中同时使用&#xff08;除非有特殊的网络架构需求&#xff09;。然而&#…...

小徐影院:Spring Boot技术下的影院革新

第四章 系统设计 4.1 系统的功能结构图 通过系统需求分析&#xff0c;本小徐影城管理系统的功能结构设计如图4-1所示&#xff1a; 图4-1 系统功能图 4.2 系统数据库设计 4.2.1 数据库E-R图 在该系统的信息中&#xff0c;由于数据库的支持&#xff0c;我们可以对数据库进行收集…...

命名空间

在 C 中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突&#xff0c;使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace 关键字的…...

使用 Elastic 将 AI 摘要添加到你的网站

作者&#xff1a;来自 Elastic Gustavo Llermaly 我们目前所知道的搜索&#xff08;搜索栏、结果、过滤器、页面等&#xff09;已经取得了长足的进步&#xff0c;并实现了多种不同的功能。当我们知道找到所需内容所需的关键字或知道哪些文档包含我们想要的信息时&#xff0c;尤…...

dOOv:Java 数据验证与映射库(简化业务逻辑)

dOOv 是一个为 Java 开发人员设计的轻量化库&#xff0c;专注于数据验证和对象间的映射。与传统的验证框架不同&#xff0c;dOOv 通过提供简洁、声明式的 API&#xff0c;使得开发者可以轻松地编写、扩展和维护验证和映射规则。其设计灵感源自领域驱动设计&#xff08;DDD&…...

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc&#xff08;查看JVM已加载的类信息 &#xff09;举例1&#xff1a;模糊搜索&#xff0c;xx包下所有的类举例2&#xff1a;打印类的详细信息举例3&#xff1a;打印出类的Field信息 本人其他相关文章链接 二、命令列…...

OCR 行驶证识别 离线识别

目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别...

PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程

介绍&#xff1a; 真正的好东西&#xff0c;搞网站优化seo从业必备。可以快速提升网站权重&#xff0c;带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...