文章目录
1 解压Ubuntu-base
2 安装Qemu-User-Static工具
3 设置软件源
4 挂载根文件系统并Chroot
1 解压Ubuntu-base
我们使用命令“tar xvf ubuntu-base-16.04.5-base-armhf.tar.gz”,如图 1.1所示:
解压完成之后就是根文件系统,使用命令“ls”查看目录。
2 安装Qemu-User-Static工具
QEMU是专门模拟不同机器架构的软件,在ubuntu中对其支持良好,若需要挂载ubuntu armhf版本的文件,必须安装qemu-user-static工具。
首先Ubuntu下使用命令“apt-get install qemu-user-static”安装,安装过程中按y继续。如图 2.1所示:
这一步骤是将qemu-user-static安装到了pc的ubuntu上,然后使用命令
“cp /usr/bin/qemu-arm-static ./usr/bin/”,拷贝qemu-arm-static到刚刚解压出来的目录。如图 2.2所示:
3 设置软件源
Ubuntu安装软件是通过名apt-get从网上下载安装的。我们需要指定软件源。
为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置,使用命令“cp /etc/resolv.conf ./etc/resolv.conf”,如图 3.1所示:
然后修改根文件系统软件源,使用命令“vim ./etc/apt/sources.list”进入该文件。如图 3.2所示:
添加ubuntu arm源,我选择的是中科大的源,在文末添加如下内容:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
如图 3.3所示:
保存并退出。
4 挂载根文件系统并Chroot
(1)首先在本机挂载刚刚下载好的文件系统,需要挂载proc, sys, dev, dev/pts等文件系统。使用命令“vi mount.sh”添加挂载脚本。如图 4.1所示:
挂载过程的脚本umount.sh内容如下:
如图 4.2:
保存退出:
(2)然后使用命令“vi umount.sh”添加卸载脚本。如图 4.3所示:
卸载过程的脚本umount.sh内容如下:
如图 4.4所示:
保存并退出。
(3)然后使用命令“ chmod 777 mount.sh umount.sh”修改脚本权限,如图 4.5所示:
(4)然后使用命令“mount.sh”运行挂载。如图 4.6所示:
此时我们可以看到,根目录切换成了当前制作ubuntu的目录。
(5)由于ubuntu base是一个最小根文件系统,很多命令和软件都没有,因此我们需要先安装一下常用的命令和软件,输入如下命令:
部分截图如图 4.7所示:
(6)然后使用命令“passwd root”设置root用户密码,在这里我们设置成topeet。如图 4.8所示:
(7)接下来使用如下命令设置主机名称和本机IP:
如图 4.9所示:
(8)接下来配置串口终端。我们使用命令“ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service”,指定串口终端。如图 4.10所示:
由于我用的是i.mx6u的平台,需要添加一个名为getty@ttymxc0.service的链接,连接到getty@.service服务。i.mx的平台是ttymxc0。
(9)接下来配置DHCP,也可以等下载到开发板之后在配置,但启动时会很慢。使用如下命令:
如图 4.11所示:
(10)设置好以后就可以退出根文件系统了,输入命令“exit”退出。如图 4.12所示:
(11)最后我们将退出以后再执行一下umount.sh脚本取消挂载。如图 4.13所示:
至此,ubuntu base根文件系统就已经制作好了,然后我们就可以使用开发板测试了。