软件包管理与更新
1. 概述
1.1 功能简介
本文档介绍 M4-R2(RK3576)开发板在 Linux 系统下软件包的安装、卸载、更新方法,以及系统镜像的升级方式(OTA 在线升级、Recovery 模式恢复、SD 卡升级等),帮助开发者维护和更新系统环境。
1.2 适用范围
适用于 M4-R2 开发板(C-3576BQ 核心板 + M4-R2 底板)在 Linux 6.1 系统下的软件包管理。
1.3 前置条件
2. 软件包管理基础
2.1 Debian 包管理系统
RK3576 Linux 系统基于 Debian,使用 apt/dpkg 作为软件包管理工具。
| 工具 | 用途 | 层级 |
|---|---|---|
dpkg | 底层包管理(安装、卸载、查询) | 本地操作 |
apt | 高级包管理(依赖处理、源管理) | 在线操作 |
apt-get | 功能与 apt 类别(脚本中常用) | 在线操作 |
2.2 软件源配置
查看当前软件源:
cat /etc/apt/sources.list典型输出(Debian 11 bullseye):
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free2.3 国内镜像源配置
如果使用国内网络,建议更换为国内镜像源加速下载:
方法一:使用清华镜像源
# 备份原始 sources.list
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华镜像源
cat > /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
EOF方法二:使用阿里云镜像源
cat > /etc/apt/sources.list << 'EOF'
deb https://mirrors.aliyun.com/debian/ bullseye main contrib non-free
deb https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free
deb https://mirrors.aliyun.com/debian-security bullseye-security main contrib non-free
EOF更新软件源索引:
apt update3. 软件包操作
3.1 安装软件包
# 安装单个软件包
apt install -y vim
# 安装多个软件包
apt install -y git wget curl
# 安装指定版本的软件包
apt install -y vim=2:8.2.3995-1
# 仅下载不安装
apt download openssh-server3.2 卸载软件包
# 卸载软件包(保留配置文件)
apt remove -y vim
# 卸载软件包并删除配置文件
apt purge -y vim
# 卸载不再需要的依赖包
apt autoremove -y3.3 查找软件包
# 搜索软件包
apt search vim
# 查看软件包详情
apt show vim
# 查看已安装的软件包
dpkg -l | grep vim
# 查看软件包安装了哪些文件
dpkg -L vim3.4 更新软件包
# 更新软件源索引
apt update
# 升级所有已安装的软件包
apt upgrade -y
# 完整升级(处理依赖变更)
apt full-upgrade -y
# 查看可升级的软件包
apt list --upgradable3.5 锁定软件包版本
防止特定软件包被意外升级:
# 锁定软件包版本
apt-mark hold vim
# 解除锁定
apt-mark unhold vim
# 查看已锁定的软件包
apt-mark showhold4. 系统更新
4.1 常规系统更新
# 更新软件源索引
apt update
# 升级所有软件包
apt upgrade -y
# 重启系统(如有内核更新)
reboot4.2 内核更新
RK3576 系统的内核包名称包含 linux-image 或 rockchip 标识:
# 查看当前内核版本
uname -r
# 查看可用的内核包
apt search linux-image | grep rk3576
# 查看已安装的内核包
dpkg -l | grep linux-image内核更新通常通过系统镜像升级而非 apt 进行,详见第 5 节系统升级方法。
4.3 查看系统信息
# 查看系统版本
cat /etc/os-release
# 查看内核版本
uname -a
# 查看系统运行时间
uptime5. 系统升级
5.1 升级方式概述
| 方式 | 适用场景 | 是否保留数据 | 难度 |
|---|---|---|---|
| OTA 在线升级 | 有网络连接 | 通常保留 | 简单 |
| Recovery 模式 | 系统无法启动 | 取决于选项 | 中等 |
| SD 卡升级 | 无网络、批量部署 | 通常不保留 | 中等 |
| 线刷(RKDevTool) | 全新烧录/救砖 | 不保留 | 需要电脑 |
5.2 OTA 在线升级
如果 Rockchip 提供了 OTA 升级服务,可通过以下方式在线升级:
# 检查 OTA 更新(具体命令以 Rockchip 官方文档为准)
# 通常通过自定义的升级脚本或应用实现
# 查看系统版本信息
cat /etc/rockchip_versionOTA 升级功能取决于厂商固件支持,具体操作步骤以 Rockchip 或视美泰官方文档为准。
5.3 Recovery 模式恢复
当系统无法正常启动时,可进入 Recovery 模式进行恢复。
步骤1:进入 Recovery 模式
- 断开开发板电源
- 按住 Uboot 按键(底板按键区,规格书标注 1×POWER ON + 1×Uboot 按键)
- 接通电源,保持按住约 3 秒后松开
- 开发板将进入 Recovery 模式
步骤2:使用 RKDevTool 刷写
- 在电脑上打开 RKDevTool
- 将开发板通过 USB Type-C(本地升级口)连接到电脑
- 确认设备管理器中显示 "RK3576 Loader" 或 "RK3576 Maskrom"
- 选择固件镜像进行刷写
Recovery 模式的具体操作步骤以视美泰官方文档为准。
5.4 SD 卡升级
通过 SD 卡启动并更新系统:
步骤1:准备 SD 卡
# 在电脑上格式化 SD 卡(FAT32 或 ext4)
# 将固件镜像写入 SD 卡
# 具体操作以 Rockchip 官方工具为准步骤2:从 SD 卡启动
- 将 SD 卡插入开发板 TF 卡槽(SD3.0,最大 128GB)
- 设置启动方式为 SD 卡启动(通过 U-Boot 配置)
- 开发板上电,从 SD 卡启动
步骤3:更新系统
从 SD 卡启动后,可将固件写入 eMMC:
# 具体操作命令以 Rockchip 官方文档为准
# 通常使用 dd 命令或专用烧录脚本5.5 线刷(全新烧录)
当系统严重损坏或需要全新安装时,使用 RKDevTool 进行线刷:
- 将开发板通过 USB Type-C(本地升级口)连接到电脑
- 进入 MaskROM 模式或 Loader 模式
- 在 RKDevTool 中选择固件镜像
- 点击"升级"或"烧写"
详见 系统烧录指南。
6. 依赖管理
6.1 查看依赖关系
# 查看软件包的依赖关系
apt depends vim
# 查看哪个软件包依赖了某个包
apt rdepends vim
# 检查损坏的依赖
apt --fix-broken install6.2 手动安装 deb 包
# 安装本地 deb 包
dpkg -i ./package.deb
# 安装并处理依赖
apt install -y ./package.deb
# 强制安装(忽略依赖问题)
dpkg -i --force-depends ./package.deb6.3 清理缓存
# 清理下载的 deb 包缓存
apt clean
# 删除已下载但未安装的 deb 包
apt autoclean
# 查看缓存大小
du -sh /var/cache/apt/7. 常见问题
7.1 apt update 失败
现象: apt update 报错 Could not resolve mirrors.xxx.com
原因: DNS 解析失败或网络不通
解决方案:
# 检查网络连通性
ping -c 4 8.8.8.8
# 配置 DNS
echo "nameserver 114.114.114.114" > /etc/resolv.conf
# 重新执行
apt update7.2 依赖冲突
现象: 安装软件包时提示 Unmet dependencies
解决方案:
# 尝试自动修复依赖
apt --fix-broken install
# 或强制安装(谨慎使用)
apt install -y -f package_name7.3 磁盘空间不足
现象: 安装软件包时提示 No space left on device
解决方案:
# 查看磁盘使用情况
df -h
# 清理 apt 缓存
apt clean
# 清理旧内核(保留当前内核)
dpkg -l | grep linux-image | awk '{print $2}' | grep -v $(uname -r | sed 's/-generic//') | xargs apt purge -y
# 清理日志
journalctl --vacuum-size=100M相关文档
- 系统启动与基础操作 — 系统基础操作
- 网络配置与SSH — 网络配置
- 系统烧录指南 — 系统烧录
- M4-R2 产品简介 — 产品概述与接口说明
