本教程将带领大家移植 Debian 文件系统到 i.MX6ULL 终结者开发板上。
1 安装 Qemu 和 Debootstrap
由于我们是在 Ubuntu 上构建的 debian 的文件系统,所以安装这俩个工具我们直接使用 apt-get 命令即可。命令如下:
apt-get install binfmt-support qemu qemu-user-static debootstrap如下图所示:
2 抽取 Debain 文件系统
抽取文件系统我们使用的是 debootstrap 命令,我们执行以下命令即可从 debian 下载源中获取到文件系统:
debootstrap --arch=armhf --foreign buster root h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / d e b i a n /
命令参数解析:
arch 指定了 CPU 架构
buster 是 debian 版本号。目前最新为 10
foreign:在与主机架构不相同时需要指定此参数,仅做初始化的解包
root:要存放文件系统的文件夹
h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / d e b i a n / 是下载源
如下图所示:
抽取时间比较长,大概 10 分钟左右,大家耐心等待,抽取成功可以看到 linux 的目录树,如下图所示,如果大家抽取失败,可以多抽取几次,或者换个网络:
.3 完善文件系统
完善文件系统这里我们要使用到 qemu,为什么要用 qemu 呢,因为我们现在是在 X86 虚拟机上操作,不能完善 arm 的文件系统,所以我们要用 qemu 来模拟 arm 的环境。
(1) 复制 qemu-arm-static 到刚构建的基本系统中,使用命令
cp /usr/bin/qemu-arm-static root/usr/bin
如下图所示:
(2) 初始化文件系统
执行命令:
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C
LANG=C chroot root debootstrap/debootstrap --second-stage
这个命令会初始化文件系统,如下图所示:
大概需要 20 分钟左右,大家耐心等待即可。
初始化成功如下图所示:
(3) 使用命令 chroot root,进到我们初始化好的文件系统,如下图所示:
(4) 使用命令创建以下内容,
echo "proc /proc proc defaults 0 0" >> etc/fstab
mkdir -p usr/share/man/man1/
mknod dev/console c 5 1
如下图所示:
(5) 更新下载源,使用命令 vi /etc/apt/sources.list 打开 source.list 文件,然后把里面的内容替换成以下内容,
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
然后保存退出,使用命令 apt-get update 更下源,如下图所示:
(6) 使用命令 apt-get install vim 安装 vim 软件,如下图所示:
(7) 创建一个新的用户,使用命令 adduser user,然是输入密码,密码为 topeet,如下图所示:
(8) 设置 root 密码,使用命令 passwd root,密码为 topeet,如下图所示:
(9) 设置以太网,输入以下命令:
echo "auto eth0" > /etc/network/interfaces.d/eth0
echo "iface eth0 inet dhcp" >> /etc/network/interfaces.d/eth0
如下图所示:
(10) 因为 ull 的性能比较弱,所以我们就不安装桌面了,直接使用 exit 退出 qemu 环境即可,如下图所示:
4 打包文件系统
进到 debian 文件系统目录。直接使用命令 tar -cjf rootfs.tar.bz2 ./* 即可,如下图所示:
5 烧写验证
把我们打包好的这个文件系统放到烧写器里面,其他的镜像使用原来的即可,只需要替换文件系统,然后烧写测试,启动成功如下图(没有界面)所示:
|