1 解压Ubuntu-base
我们使用命令“tar xvf ubuntu-base-16.04.5-base-armhf.tar.gz”,如图 1.1所示:
图 1.1
解压完成之后就是根文件系统,使用命令“ls”查看目录。
图 1.2
2 安装Qemu-User-Static工具
QEMU是专门模拟不同机器架构的软件,在ubuntu中对其支持良好,若需要挂载ubuntu armhf版本的文件,必须安装qemu-user-static工具。
首先Ubuntu下使用命令“apt-get install qemu-user-static”安装,安装过程中按y继续。如图 2.1所示:
图 2.1
这一步骤是将qemu-user-static安装到了pc的ubuntu上,然后使用命令
“cp /usr/bin/qemu-arm-static ./usr/bin/”,拷贝qemu-arm-static到刚刚解压出来的目录。如图 2.2所示:
图 2.2
3 设置软件源
Ubuntu安装软件是通过名apt-get从网上下载安装的。我们需要指定软件源。
为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置,使用命令“cp /etc/resolv.conf ./etc/resolv.conf”,如图 3.1所示:
图 3.1
然后修改根文件系统软件源,使用命令“vim ./etc/apt/sources.list”进入该文件。如图 3.2所示:
图 3.2
添加ubuntu arm源,我选择的是中科大的源,在文末添加如下内容:
deb http://mirrors./ubuntu-ports/ xenial main multiverse restricted universedeb http://mirrors./ubuntu-ports/ xenial-backports main multiverse restricted universedeb http://mirrors./ubuntu-ports/ xenial-proposed main multiverse restricted universedeb http://mirrors./ubuntu-ports/ xenial-security main multiverse restricted universedeb http://mirrors./ubuntu-ports/ xenial-updates main multiverse restricted universedeb-src http://mirrors./ubuntu-ports/ xenial main multiverse restricted universedeb-src http://mirrors./ubuntu-ports/ xenial-backports main multiverse restricted universedeb-src http://mirrors./ubuntu-ports/ xenial-proposed main multiverse restricted universedeb-src http://mirrors./ubuntu-ports/ xenial-security main multiverse restricted universedeb-src http://mirrors./ubuntu-ports/ xenial-updates main multiverse restricted universe
如图 3.3所示:
图 3.3
保存并退出。
4 挂载根文件系统并Chroot
(1)首先在本机挂载刚刚下载好的文件系统,需要挂载proc, sys, dev, dev/pts等文件系统。使用命令“vi mount.sh”添加挂载脚本。如图 4.1所示:
图 4.1
挂载过程的脚本umount.sh内容如下:
1#!/bin/bash2echo "MOUNTING"3mount -t proc /proc /home/topeet/ubuntu-base/proc4mount -t sysfs /sys /home/topeet/ubuntu-base/sys5mount -o bind /dev /home/topeet/ubuntu-base/dev6mount -o bind /dev/pts /home/topeet/ubuntu-base/dev/pts 7chroot /home/topeet/ubuntu-base/
如图 4.2:
图 4.2
保存退出:
(2)然后使用命令“vi umount.sh”添加卸载脚本。如图 4.3所示:
图 4.3
卸载过程的脚本umount.sh内容如下:
1#!/bin/bash2echo "UNMOUNTING"3sudo umount /home/topeet/ubuntu-base/proc4sudo umount /home/topeet/ubuntu-base/sys5sudo umount /home/topeet/ubuntu-base/dev/pts6sudo umount /home/topeet/ubuntu-base/dev
如图 4.4所示:
图 4.4
保存并退出。
(3)然后使用命令“ chmod 777 mount.sh umount.sh”修改脚本权限,如图 4.5所示:
图 4.5
(4)然后使用命令“mount.sh”运行挂载。如图 4.6所示:
图 4.6
此时我们可以看到,根目录切换成了当前制作ubuntu的目录。
(5)由于ubuntu base是一个最小根文件系统,很多命令和软件都没有,因此我们需要先安装一下常用的命令和软件,输入如下命令:
apt updateapt install sudoapt install language-pack-en-baseapt install sshapt install net-toolsapt install ethtool apt install ifupdownapt install iputils-pingapt install rsyslogapt install htop apt install vim
部分截图如图 4.7所示:
图 4.7
(6)然后使用命令“passwd root”设置root用户密码,在这里我们设置成topeet。如图 4.8所示:
图 4.8
(7)接下来使用如下命令设置主机名称和本机IP:
echo "topeet_i.MX6UL/ULL" > /etc/hostnameecho "127.0.0.1 localhost" >> /etc/hostsecho "127.0.0.1 topeet_i.MX6UL/ULL" >> /etc/hosts
如图 4.9所示:
图 4.9
(8)接下来配置串口终端。我们使用命令“ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service”,指定串口终端。如图 4.10所示:
图 4.10
由于我用的是i.mx6u的平台,需要添加一个名为getty@ttymxc0.service的链接,连接到getty@.service服务。i.mx的平台是ttymxc0。
(9)接下来配置DHCP,也可以等下载到开发板之后在配置,但启动时会很慢。使用如下命令:
echo auto eth0 > /etc/network/interfaces.d/eth0echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0
如图 4.11所示:
图 4.11
(10)设置好以后就可以退出根文件系统了,输入命令“exit”退出。如图 4.12所示:
图 4.12
(11)最后我们将退出以后再执行一下umount.sh脚本取消挂载。如图 4.13所示:
图 4.13
至此,ubuntu base根文件系统就已经制作好了,然后我们就可以使用开发板测试了。
如果觉得《i.MX6ULL终结者Ubuntu文件系统Ubuntu-base构建》对你有帮助,请点赞、收藏,并留下你的观点哦!