AllWinner T113 升级篇

基于嵌入式Linux平台升级分成app和bsp升级。

APP 升级:可以使用OPKG或者dpkg,一般嵌入式平台都是opkg来制作升级ipk包。

制作ipk参考路径:注意:建议每次的包名称一样,增加后缀版本号,这样每次升级和卸载包名一样。

制作.ipk安装文件 | hocgin (๑`灬´๑)

How to create an ipk

制作.ipk安装文件

.ipk 本质是tar.gz格式的压缩包, 按照某种规范格式(类似.deb包)进行 …

前言

  1. .ipk 本质是tar.gz格式的压缩包, 按照某种规范格式(类似.deb包)进行压缩而成的。
  2. 当我们对它的内容进行操作时候所使用的用户即是它安装后所拥有的用户和权限(sudo chown root:root -R .)。
  3. 已经存在的文件并不能进行替换, 切记。

文件介绍

1
2
3
4
.
├── control.tar.gz # 安装/卸载 脚本
├── data.tar.gz # 二进制/配置文件..
└── debian-binary # 固有文件

control.tar.gz 内容

1
2
3
4
.
├── control # 文件介绍[包括: 依赖/版本/架构/作者..]
├── postinst # 安装脚本
└── postrm # 卸载脚本

control 此处举个栗子

1
2
3
4
5
6
7
Package: IPKName # .ipk NAME
Version: 1
Section: net
Priority: optional
Architecture: ar71xx # 系统架构
Maintainer: hocgin <hocgin@gmail.com>
Description: my first ipk

postinst 安装脚本

因为前言的3原因, 当我们需要对已存在文件进行修改时, 只能使用写入的方式进行修改。

例如:

1
2
#!/bin/sh
echo "installed done" > /tmp/ipk.log

postinst 卸载脚本

自己约的X🤣。。

例如:

1
2
#!/bin/sh
rm -rf /tmp/ipk.log

打包~

1
sudo tar -czf control.tar.gz *

-czPf

data.tar.gz

此处完全是根据你要增加的脚本按根目录进行存放的。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.
├── bin
│   ├── ss-redir
│   └── ss-tunnel
├── data.tar.gz
├── etc
│   ├── dnsmasq.d
│   │   ├── address.conf
│   │   ├── dns.conf
│   │   ├── ipset.conf
│   │   ├── option.conf
│   │   └── server.conf
│   ├── pdnsd.conf
│   └── shadowsock.json
├── root
│   ├── addDnsmasq.sh
│   └── changeService.sh
└── usr
    └── sbin
        └── pdnsd

打包~

1
sudo tar -czf data.tar.gz *

-cJPf

最后

将三个文件放在一起进行打包

1
sudo tar -czf mIPK.ipk *

-czPf

使用以上参数,打包大小会很小

BSP升级:

一般linux BSP升级只需要进行kernel的升级,so的升级直接替换更新。而kernel image的升级涉及到系统异常状态可能导致系统不能起来。

所以在Linux平台最常使用的方法:使用应用层使用u-boot-fw工具,fw_printenv,fw_setenv两个命令,可以在应用层修改uboot阶段env参数。来改变启动流程。

1、新增一个boot分区,改成bootA和bootB两个分区,分区中kernel image都是一样的。

2、在uboot中启动参数配置env.cfg中,需要增加备份启动流程,也就是在启动异常情况下(启动三次失败),直接进入altbootcmd命令来启动内核。

3、增加一些配置,env.cfg

boot_partition=bootA
upgrade_available=1
bootcount=1
bootlimit=3

uboot defconfig打开宏。 

CONFIG_BOOTCOUNT_LIMIT=y

4、修改分区直接dd替换内核image。

dd if=boot.fex of=/dev/mmcblk0p4

5、开机后配置为

fw_setenv upgrade_available 0
fw_setenv bootcount 1


6、开始进行升级时需要打开配置


fw_setenv upgrade_available 1
fw_setenv bootcount 1

OPKG的版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值