构建ubuntu根文件系统
构建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根文件系统相关推荐
- arm开发板采用ubuntu根文件系统自动挂载U盘解决方案升级版!
背景 之前有一篇文章:<ARM-Linux下实现U盘自动挂载>在嵌入式Linux开发板中实现自动挂载U盘的方法.该方法有效,但局限.本人自己测试是在buildroot构建的根文件系统下实现 ...
- 在ubuntu根文件系统上安装lxde桌面
在开发板上移植并且配置好ubuntu根文件系统后,就可以通过串口或者ssh登录系统,在终端执行操作指令.可是根据我们的需求,需要图形界面的操作,所以需要安装一个桌面.网上也有一些推荐的桌面,比如说gn ...
- 制作ubuntu根文件系统
参考文档: http://blog.csdn.net/mountzf/article/details/51707853 http://developer.t-firefly.com/thread-10 ...
- 构建Linux根文件系统(未完待续)
所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...
- 构建linux根文件系统
内核 启动后回去调用第一个程序init.给用户提供操作界面的shell程序 .应用程序所依赖的库文件.这些必须的基本的文件合起来称为根文件系统,他们存放在一个分区中,Linux系统启动之后首先挂载这个 ...
- 构建imx8mm的ubuntu根文件系统
一.准备Ubuntu文件系统 1.1 下载Ubuntu Core http://cdimage.ubuntu.com/ubuntu-base/releases/18.04.4/release/ubun ...
- Buildroot构建指南——根文件系统(Rootfs)
Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 ...
- 【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第三步:Ubuntu根文件系统的桌面化分析和选用
文章目录 1.Ubuntu桌面系统介绍 2.基于arm架构的可用Ubuntu桌面对比分析 2.1 懒人式安装 2.1.1 kubuntu-desktop [KDE] 2.1.2 ubuntu-desk ...
- 根文件系统构建(Buildroot 方式)
目录 何为buildroot? buildroot 简介 buildroot 下载 buildroot 构建根文件系统 配置buildroot 编译buildroot buildroot 根文件系统测 ...
最新文章
- Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
- 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL 中有 bug
- csdn-markdown 编辑器
- qt窗口左上角坐标变动函数使用中的误区
- mockito mock void方法_一文让你快速上手 Mockito 单元测试框架
- 博客搬家到 http://fresky.github.io/ - Visual Studio的插件Pdbproj可以把pdb转换成C++项目...
- 数据3分钟丨Oracle宣布从JDK17开始提供免费版本和更新​;ClickHouse 宣布独立成立公司...
- 用scikit-learn和pandas实现线性回归
- Tensorflow——Session机制(矩阵相乘小实例)
- 初试牛刀的收获-freetextbox的应用
- ANSYS18的简略安装教程
- 电脑重启只剩下c盘怎么办_电脑突然只剩下c盘了怎么办?
- java微博模拟登陆_java 模拟登录新浪微博(通过cookie)
- iOS远程推送--APNs详解
- 如何处理计算机显卡故障,电脑显卡常见故障及解决方案
- 常见信息流广告有哪些展现形式
- linux dd命令刻录u盘,Linux使用dd命令烧录启动U盘
- 输入法公司Kika完成2.2亿B+轮融资 猎豹移动领投
- 计算机内存和外存的主要区别是什么,计算机的存储系统一般有内存和外存,试述内存与外存的主要区别。...
- Java多线程篇--concurrentHashMap