这里仅给出基于这个讨论中的 Debian 10 系统镜像做修改的方法。
由于 EV3 本身性能较低,安装软件包并不方便,下面我们以“为 Python 3.11 虚拟环境安装 Flask flask-cors evdev
软件包”作为示例给出操作方法。当然,想要在这个基础上做出其他修改,比如安装其他版本的 Python 都是可以的。
思路:修改系统,安装软件包后,再重新打包并烧录新系统到 SD 卡。
为了方便安装软件包,推荐使用 Ubuntu 22.04
系统(需安装 Docker,安装过程略)执行下面的操作。在 Windows 上也可直接使用 WSL,可从 Microsoft Store 获取。
- 首先,安装所需软件包并拉取 Docker 镜像。
# 添加 ppa 源,用于安装 brickstrap 打包工具
sudo add-apt-repository ppa:ev3dev/tools
# 安装所需软件包,用于后续运行架构不同的Docker镜像、打包系统镜像
sudo apt-get update && sudo apt-get install -y qemu-user-static brickstrap
# 在 Docker 中注册 QEMU 仿真模拟器
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# 拉取我们要修改的系统 Docker 镜像
sudo docker pull growflavor/ev3images:ev3dev10imgv02b
# 启动容器并切换到 robot 用户
sudo docker run -e QEMU_CPU=arm926 -it growflavor/ev3images:ev3dev10imgv02b su -l robot
- 接下来,你将看到
robot@
开头的提示符。执行下面命令为自带的 Python 3.11 虚拟环境安装软件包:
./venv311/bin/pip install Flask flask-cors evdev
- 安装完成后,登出。
exit
- 然后,将刚刚修改的容器提交到镜像,打包为 img 文件。
# 列出所有容器,获取刚刚修改的容器ID
sudo docker ps -a
# 提交到镜像
sudo docker container commit 上一步查询到刚刚更改的容器ID.例如b09c76f149e1 ev3d10new:latest
# 用 brickstrap 工具打包得到可烧录的镜像
sudo brickstrap create-tar ev3d10new:latest ev3dev10new.tar
sudo brickstrap create-image ev3dev10new.tar ev3dev10new.img
- 将上面得到的 img 文件用烧录工具烧录到 SD 卡即可。
备注:如果遇到 Docker 镜像拉取失败,可参考 https://zhuanlan.zhihu.com/p/24461370776 配置 mirror。
本文(https://www.cgtsoft.com/archives/45/)来源于 CGT Software,使用 CC BY-NC-SA 4.0 许可发布。