构建ubuntu根文件系统

象棋小子   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

构建ubuntu根文件系统相关推荐

  1. arm开发板采用ubuntu根文件系统自动挂载U盘解决方案升级版!

    背景 之前有一篇文章:<ARM-Linux下实现U盘自动挂载>在嵌入式Linux开发板中实现自动挂载U盘的方法.该方法有效,但局限.本人自己测试是在buildroot构建的根文件系统下实现 ...

  2. 在ubuntu根文件系统上安装lxde桌面

    在开发板上移植并且配置好ubuntu根文件系统后,就可以通过串口或者ssh登录系统,在终端执行操作指令.可是根据我们的需求,需要图形界面的操作,所以需要安装一个桌面.网上也有一些推荐的桌面,比如说gn ...

  3. 制作ubuntu根文件系统

    参考文档: http://blog.csdn.net/mountzf/article/details/51707853 http://developer.t-firefly.com/thread-10 ...

  4. 构建Linux根文件系统(未完待续)

          所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...

  5. 构建linux根文件系统

    内核 启动后回去调用第一个程序init.给用户提供操作界面的shell程序 .应用程序所依赖的库文件.这些必须的基本的文件合起来称为根文件系统,他们存放在一个分区中,Linux系统启动之后首先挂载这个 ...

  6. 构建imx8mm的ubuntu根文件系统

    一.准备Ubuntu文件系统 1.1 下载Ubuntu Core http://cdimage.ubuntu.com/ubuntu-base/releases/18.04.4/release/ubun ...

  7. Buildroot构建指南——根文件系统(Rootfs)

    Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 ...

  8. 【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第三步:Ubuntu根文件系统的桌面化分析和选用

    文章目录 1.Ubuntu桌面系统介绍 2.基于arm架构的可用Ubuntu桌面对比分析 2.1 懒人式安装 2.1.1 kubuntu-desktop [KDE] 2.1.2 ubuntu-desk ...

  9. 根文件系统构建(Buildroot 方式)

    目录 何为buildroot? buildroot 简介 buildroot 下载 buildroot 构建根文件系统 配置buildroot 编译buildroot buildroot 根文件系统测 ...

最新文章

  1. Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
  2. 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL 中有 bug
  3. csdn-markdown 编辑器
  4. qt窗口左上角坐标变动函数使用中的误区
  5. mockito mock void方法_一文让你快速上手 Mockito 单元测试框架
  6. 博客搬家到 http://fresky.github.io/ - Visual Studio的插件Pdbproj可以把pdb转换成C++项目...
  7. 数据3分钟丨Oracle宣布从JDK17开始提供免费版本和更新​;ClickHouse 宣布独立成立公司...
  8. 用scikit-learn和pandas实现线性回归
  9. Tensorflow——Session机制(矩阵相乘小实例)
  10. 初试牛刀的收获-freetextbox的应用
  11. ANSYS18的简略安装教程
  12. 电脑重启只剩下c盘怎么办_电脑突然只剩下c盘了怎么办?
  13. java微博模拟登陆_java 模拟登录新浪微博(通过cookie)
  14. iOS远程推送--APNs详解
  15. 如何处理计算机显卡故障,电脑显卡常见故障及解决方案
  16. 常见信息流广告有哪些展现形式
  17. linux dd命令刻录u盘,Linux使用dd命令烧录启动U盘
  18. 输入法公司Kika完成2.2亿B+轮融资 猎豹移动领投
  19. 计算机内存和外存的主要区别是什么,计算机的存储系统一般有内存和外存,试述内存与外存的主要区别。...
  20. Java多线程篇--concurrentHashMap

热门文章

  1. 网页前端设计-作业六(CSS3)
  2. 曙光服务器 引导,曙光服务器怎么设置u盘启动
  3. win服务器不能上传文件,Serv u无法上传文件的两种解决方案
  4. HTML应用程序(HTML Application)
  5. Android加载用户头像的功能实现
  6. 怎么卸载mac上的软件
  7. what is long tail effect
  8. 用jQuery和PHP来实现微信转盘抽奖程序 附源代码
  9. 2018-07-26 第二课
  10. 使用扩展卡尔曼滤波(EKF)估计电池SOC(附MATLAB程序及详解)part1主函数篇