构建ubuntu根文件系统

来源:互联网 发布:诺基亚软件怎么下载 编辑:程序博客网 时间:2024/06/06 09:29

原文
象棋小子 1048272975

Ubuntu是一个广泛应用于个人电脑,云计算,以及智能物联网设备的开源操作系统。针对智能物联网,Ubuntu提供了一套更加安全,轻量级,专为智能物联网订制的开源操作系统Ubuntu Core。它已被广泛应用于物联网,智能设备和自主设备等嵌入式产品中。

1. 下载Ubuntu Core

Ubuntu Core是Ubuntu的一个精简版本,只包含Ubuntu根文件系统的核心部分,默认没有图形界面等等。在Ubuntu主机中创建目录并下载Ubuntu 16.04.02的Core根文件系统。

$mkdir ~/rootfs && cd ~/rootfs$wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.2-base-arm64.tar.gz

2. 解压Ubuntu Core

$sudo tar –xpf ubuntu-base-16.04.2-base-arm64.tar.gz

3. 安装qemu

安装qemu用于在主机端模拟执行基于arm架构的代码,把模拟器拷贝到Core根文件系统目录中。如果是32位armhf根文件系统版本,拷贝qemu-arm-static,此处是64位arm64版本,拷贝qemu-aarch64-static。

$sudo apt-get install qemu-user-static$sudo cp -a /usr/bin/qemu-aarch64-static usr/bin/

4. 安装linux内核模块

编译linux内核,在内核源码目录output/lib/中拷贝modules目录中的所有内容到Core根文件系统/lib目录。

5. 切换根文件系统

切换到Core根文件系统,进行更新设置。

$sudo chroot ../rootfs

此时处于arm模拟器Core根文件系统中。

6. 设置root密码

#passwd root

这里写图片描述

7. 添加ubuntu管理员账号

可以添加一个ubuntu的管理员账号并修改密码。

#useradd –G sudo –m –s /bin/bash ubuntu#passwd ubuntu

这里写图片描述

8. 设置主机名

可以为目标板设置一个主机名。

#echo Ubuntu > /etc/hostname#echo "127.0.0.1   localhost.localdomain localhost" > /etc/hosts#echo "127.0.0.1    Ubuntu" >> /etc/hosts

9. 设置DNS解析器配置文件

#echo "nameserver 127.0.1.1" > /etc/resolv.conf

这里写图片描述

10. 设置串口登录

#ln –s /lib/systemd/system/serial-getty\@.service/etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service

Ubuntu 16.04.02采用了systemd的init初始化系统,用于提高系统的启动速度。在执行getty.targe时,systemd会自动在/etc/systemd/system/getty.target.wants查找相关的targe执行,即实际执行/lib/systemd/system/serial-getty@.service这个串口终端服务。

11. 从服务器获取最新的包列表

#apt-get update

这里写图片描述

12. 安装网络工具包

#apt-get install ifupdown net-tools

这里写图片描述

13. 安装udev设备管理器

#apt-get install udev

这里写图片描述

udev用于动态管理/dev目录下的设备节点。

14. 安装fbset工具包

#apt-get installfbset

15. 安装其他的软件包

可以用apt-get安装其他适用于目标板的软件包,如vim,ssh等等。

16. 安装initramfs-tools工具

#apt-get install initramfs-tools

17. 生成ramdisk归档文件

#mkinitramfs -o /boot/initrd.img 3.10.65

其中3.10.65为内核版本,可以把生成的initrd.img拷贝到linux源码目录,重命名并替换掉rootfs.cpio.gz,重新编译linux内核,并生成新boot.img。

可以通过以下命令解压img文档,从而实现修改。

#mv initrd.img initrd.img.gz#gunzip initrd.img.gz#cpio -idmv < initrd.img

18. 退出构建Core根文件系统

设置好Core根文件系统后,用exit命令退出chroot。

19. 打包做好的Core根文件系统

#sudo tar –czvf ../ubuntu.tar.gz .

在根文件系统上一目录生成ubuntu.tar.gz的文档。

20. Core根文件系统更新到sd卡

插入sd卡,清空rootfs目录,把ubuntu.tar.gz拷贝到sd卡rootfs目录,并解压。

#tar –xzvf ubuntu.tar.gz

21. ubutun启动

这里写图片描述

22. 附录

本文所述构建好的Ubuntu Core根文件系统:http://pan.baidu.com/s/1i4Hfrvv

原创粉丝点击