OpenIPC开源FPV之固件sysupgrade升级

1. 源由

OpenIPC硬件上烧录FPV固件,在基于Wfb-ng通过MAVLink链路传输相关信息给OSD显示使用。

当前手头的硬件:

  • hi3536dv100
  • ssc30kq //一直认为是SSC338Q,实际是相对性能弱的SSC30KQ

首先,确保基本功能正常,也就是ssc30kq + hi3536dv100能够正常FPV使用。

以为没有问题的时候,通常问题就来了。

2. 实验

初次实验:

  • 实验1:Arducopter 4.5.6 + ssc30kq(master+94d0b84, 2024-06-20) + hi3536dv100(master+5f03f03, 2024-03-02) ==》图像OK,OSD图标无变化
  • 实验2:Arducopter 4.5.6 + ssc30kq(master+94d0b84, 2024-06-20) + FPVue(版本未知) ==》图像OK,OSD图标无变化

捣鼓了好久Rx/Tx/GND的问题,自认为固件没有问题,一定是接线哪里没有看仔细或者忘记交叉。

二次验证:

  • 实验3:Arducopter 4.5.6 + ssc30kq(master+94d0b84, 2024-06-20) + Jetson(wfb-ng, latest) 14550 ==》图像OK,MAVLink通信OK

初步估计:hi3536dv100上的配置或者固件存在问题。可能2024-03-02到2024-06-20之间存在断代升级的问题。但是至少能够说明UART三线没有接错。

升级到最新固件:

  • 实验4:Arducopter 4.5.6 + ssc30kq(master+8d995d7, 2024-10-19) + hi3536dv100(master+8d995d7, 2024-10-19) ==》图像OK,OSD图标都不显示

问题依然存在,而且OSD的图标都没有了,固件方面肯定存在异常。

3. 升级

整个过程涉及OpenIPC的升级问题,目前升级主要两个方式:

步骤一:确认软硬件版本

首先,ssh登入摄像头系统时,确认当前软硬件版本信息。

  • 软件:master+8d995d7, 2024-10-19
  • 硬件:hi3536dv100
$ ssh root@192.168.78.100
root@192.168.78.100's password:

   .d88888b.                             8888888 8888888b.   .d8888b.
  d88P" "Y88b                              888   888   Y88b d88P  Y88b
  888     888                              888   888    888 888    888
  888     888 88888b.   .d88b.  88888b.    888   888   d88P 888
  888     888 888 "88b d8P  Y8b 888 "88b   888   8888888P"  888
  888     888 888  888 88888888 888  888   888   888        888    888
  Y88b. .d88P 888 d88P Y8b.     888  888   888   888        Y88b  d88P
   "Y88888P"  88888P"   "Y8888  888  888 8888888 888         "Y8888P"
              888
              888
              888                         master+8d995d7, 2024-10-19

 Please help the OpenIPC Project to cover the cost of development and
 long-term maintenance of what we believe is going to become a stable,
 flexible Open IP Network Camera Framework for users worldwide.

 Your contributions could help us to advance the development and keep
 you updated on improvements and new features more regularly.

 Please visit https://openipc.org/sponsor/ to learn more. Thank you.

root@openipc-hi3536dv100:~# 

步骤二:下载对应最新固件

找到硬件hi3536dv100对应的FPV固件。

在这里插入图片描述

步骤三:安装apache服务

$ sudo apt update
$ sudo apt install apache2
$ sudo systemctl start apache2

若希望系统自启动apacke服务,那么请使能该服务

$ sudo systemctl enable apache2

最后,通过http://localhost来确认本机apache服务正常开启。

步骤四:将固件放置到http下载目录

$ cd /var/www/html
$ sudo mkdir download
$ sudo chmod 655 download
$ cd download
$ sudo wget https://github.com/OpenIPC/firmware/releases/download/latest/openipc.hi3536dv100-nor-fpv.tgz
$ sudo chmod 655 openipc.hi3536dv100-nor-fpv.tgz

此时,访问web页面:http://localhost/download/

在这里插入图片描述

步骤五:登录并更新固件

本地环境网段:192.168.78.x

注:-n代表overlay会被清除,所有复制进去的东西将会被覆盖。

$ ssh root@192.168.78.100
root@openipc-hi3536dv100:~# sysupgrade -n -k -r --url=http://192.168.78.101/download/openipc.hi3536dv100-nor-fpv.tgz
OpenIPC System Updater v1.0.38

Vendor	hisilicon
SoC	hi3536dv100
Kernel	14:37:35 2024-03-02
RootFS	master+5f03f03, 2024-03-02

Synchronizing time
ntpd: bad address '0.time.openipc.org'
ntpd: bad address '1.time.openipc.org'
ntpd: bad address '2.time.openipc.org'
ntpd: bad address '3.time.openipc.org'
ntpd: bad address '3.time.openipc.org'
ntpd: bad address '2.time.openipc.org'
ntpd: bad address '1.time.openipc.org'
ntpd: bad address '0.time.openipc.org'
Alarm clock
Sat Mar  2 14:38:56 GMT 2024

Checking for sysupgrade update...

Version checking failed, proceeding with the installed version.

Stop services, sync files, free up memory
Killing majestic . OK
Killing crond .. OK
Killing klogd ........ OK
Killing ntpd ........ OK
Killing rngd ........ OK
Killing syslogd ......... OK

Uptime:
 14:39:10 up 11 min,  load average: 1.10, 0.92, 0.51

Memory:
              total        used        free      shared  buff/cache   available
Mem:         153.5M       35.0M      112.6M       44.0K        5.9M      113.9M
Swap:             0           0           0

Processes:
PID   USER     COMMAND
    1 root     init
  697 root     udhcpc -x hostname:openipc-hi3536dv100 -A 0 -T 1 -t 5 -R -b -O search -p /var/run/udhcpc.eth0.pid -i eth0
  713 root     /usr/sbin/dropbear -R -B -k -p 22 -K 300
  906 root     wfb_rx -c 127.0.0.1 -u 5600 -p 0 -K /etc/gs.key -i 7669206 wlan0
  911 root     mavlink-routerd -c /etc/mavlink.conf
  912 root     telemetry_tx -p 144 -u 14650 -K /etc/gs.key -B 20 -M 1 -S 1 -L 1 -G long -k 1 -n 2 -T 0 -i 7669206 -f data wlan0
  913 root     telemetry_rx -p 16 -u 14651 -K /etc/gs.key -i 7669206 wlan0
  915 root     vdec -p 5600 -d frame -c h265 -m 1920x1080x60 --mavlink-port 14750 --osd --bg-r 30 --bg-g 0 --bg-b 30
  922 root     /sbin/getty -L console 0 vt100
  932 root     /usr/sbin/dropbear -R -B -k -p 22 -K 300 -2
  933 root     -sh
  949 root     {sysupgrade} /bin/sh /usr/sbin/sysupgrade -k -r --url=http://192.168.78.101/download/openipc.hi3536dv100-nor-fpv.tgz
 1045 root     ps

Unmounting SD card

Firmware
Download from http://192.168.78.101/download/openipc.hi3536dv100-nor-fpv.tgz
Received and unpacked

Kernel
Update kernel from /tmp/uImage.hi3536dv100
SoC OK
New version, going to update
Erasing block: 28/28 (100%) 
Writing kb: 1775/1775 (100%) 
Verifying kb: 1775/1775 (100%) 
Kernel updated to 23:05:01 2024-10-19

RootFS
Update rootfs from /tmp/rootfs.squashfs.hi3536dv100
SoC OK
New version, going to update
Erasing block: 116/116 (100%) 
Writing kb: 7396/7396 (100%) 
Verifying kb: 7396/7396 (100%) 
RootFS updated to master+8d995d7, 2024-10-19

Unconditional reboot

4. 总结

总的来说,当系统能够通过ssh进入的时候,采用sysupgrade是一种快速更新系统的方法。无需UART0串口接线,以及避免uboot命令敲错而变砖的命运。

从更新的角度还有一种更为小粒度的更新,比如:apt、scp等方式。而嵌入式小系统通常没有这种资源来做包管理,所以通常会scp或者sysupgrade,再不济就是image烧录。

5. 参考资料

【1】Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考
【2】OpenIPC开源FPV之工程编译
【3】OpenIPC开源FPV之工程框架
【4】OpenIPC开源FPV之重要源码包
【5】OpenIPC开源FPV之重要源码启动配置

6. 补充 - SSC30KQ/SSC338Q固件

鉴于《Open FPV VTX开源之配置软件紧急更新v0.5.0》,所有FPV目标固件都被迁移到了builder库,因此请注意相关下载固件的命令修改URI。

$ sudo wget https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc30kq-nor-fpv.tgz
$ sudo chmod 655 openipc.ssc30kq-nor-fpv.tgz
$ sudo wget https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-fpv.tgz
$ sudo chmod 655 openipc.ssc338q-nor-fpv.tgz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值