【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


相关推荐
secondyoung18 分钟前
Cortex-R52学习:MPU内存保护机制
arm开发·单片机·学习·arm·mpu
red_redemption25 分钟前
自由学习记录(198)
学习
花岛溯32 分钟前
Cursor 学习 DAY2·切换AI模型
学习
星夜夏空9935 分钟前
FreeRTOS学习(9)——临界区
学习
AOwhisky1 小时前
Ceph系列第六期:Ceph 文件系统(CephFS)精讲
linux·运维·网络·笔记·ceph
萤萤七悬1 小时前
【Python笔记】AI帮实现CLI工具-使用argparse.ArgumentParser接收命令参数
开发语言·笔记·python
小智老师PMP2 小时前
零基础能不能考PMP?零基础专属学习路径+全套扶持体系
学习·算法·职场和发展·软件工程·求职招聘·敏捷流程
luck_bor3 小时前
IO流知识点笔记
java·开发语言·笔记
XGeFei4 小时前
【Fastapi学习笔记(4)】—— JsonScheme与数据验证、错误响应格式、正则表达式
学习·fastapi
爱喝水的鱼丶4 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第四篇:SAP 报表异常处理机制:数据校验与消息提示规范落地
开发语言·数据库·学习·算法·sap·abap