【imx6ul 学习笔记】移植ubuntu 20.04系统

文章目录

上一篇:【imx6ul 学习笔记】Docker 运行百问网 imx6ul_qemu

前置准备

复制代码
cd ubuntu-18.04_imx6ul_qemu_system/

备份原文件:先把 imx6ull-system-image/rootfs.img 重命名备份

bash 复制代码
sudo apt update
sudo apt install -y debootstrap qemu-user-static binfmt-support

制作 Ubuntu 20.04 ARM 根文件系统

在主机 Linux 执行

创建工作目录

随便找个地方

bash 复制代码
mkdir ubuntu_imx6ull && cd ubuntu_imx6ull

下载 Ubuntu20.04 armhf 最小系统

bash 复制代码
# --arch=armhf 适配 i.MX6ULL,focal=Ubuntu20.04
sudo debootstrap --arch=armhf --foreign focal ubuntu_rootfs http://ports.ubuntu.com/ubuntu-ports/

拷贝 qemu 模拟器

让 x86 主机能运行 ARM 程序

bash 复制代码
sudo cp /usr/bin/qemu-arm-static ubuntu_rootfs/usr/bin/

进入 ARM 环境完成系统配置

bash 复制代码
sudo chroot ubuntu_rootfs /bin/bash

进入后命令行变成

bash 复制代码
groups: cannot find name for group ID 0
I have no name!@xxx:/# 

配置系统

系统初始化

在 chroot 后的 ARM Ubuntu 终端 执行以下命令:

bash 复制代码
/debootstrap/debootstrap --second-stage

设置 root 密码

bash 复制代码
passwd root
# 输入两次密码

开启串口登录

i.MX6ULL QEMU 用 ttymxc0 串口

bash 复制代码
# 1. 创建串口登录服务软链接 让系统开机自动启动 ttymxc0 串口
ln -s /lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttymxc0.service

# 2. 允许 root 用户通过串口 ttymxc0 登录
echo "ttymxc0" >> /etc/securetty

配置软件源

bash 复制代码
cat > /etc/apt/sources.list << EOF
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
EOF

安装基础工具

按需安装

bash 复制代码
apt update
apt install -y net-tools iputils-ping vim ssh

退出 chroot 环境

bash 复制代码
exit

打包成 QEMU 能用的 rootfs.img

打包成 raw 格式 ext4 镜像

创建 4G 空镜像文件

bash 复制代码
sudo dd if=/dev/zero of=rootfs.img bs=1G count=4

格式化为 ext4

bash 复制代码
sudo mkfs.ext4 rootfs.img

挂载镜像拷贝系统

bash 复制代码
# 创建挂载目录
sudo mkdir mnt
# 挂载镜像
sudo mount -o loop rootfs.img mnt
# 拷贝所有 Ubuntu 文件
sudo cp -rp ubuntu_rootfs/* mnt/
# 卸载镜像
sudo umount mnt

替换镜像并运行

把刚做好的 rootfs.img复制到 imx6ull-system-image/ 覆盖原文件

使用原有的启动脚本

bash 复制代码
./qemu-imx6ull-gui.sh


相关推荐
霑潇雨13 分钟前
Spark学习基础转换算子案例(单词计数(WordCount))
java·大数据·分布式·学习·spark·maven
TANGLONG22222 分钟前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
eastyuxiao1 小时前
数字孪生教程(软件篇)官方学习路径
大数据·人工智能·学习·数字孪生
小徐学编程-zZ1 小时前
拆解业务逻辑分析
数据库·学习
知识分享小能手1 小时前
R语言入门学习教程,从入门到精通,R语言获取数据 (7)
开发语言·学习·r语言
木木_王1 小时前
嵌入式学习 | STM32裸板驱动开发(Day01)入门学习笔记(超详细完整版|点灯实验 + 库函数代码 + 原理全解)
linux·驱动开发·笔记·stm32·学习
JAVA面经实录9171 小时前
Java架构师最终完整版学习路线图
java·开发语言·学习
叶子野格1 小时前
数据集网站kaggle注册无验证码选项?
学习
勤自省2 小时前
ROS2从入门到“重启解决”:21讲8~12章踩坑血泪史与核心总结
linux·开发语言·ubuntu·ssh·ros
largecode2 小时前
能不能让座机号码显示“XX公司”那样的认证名称?申请号码认证方法
经验分享·笔记·音视频·课程设计·oneapi·segmentfault·微信开放平台