linux根文件系统创建过程
步骤一:创建根文件系统基本目录
1.在home目录下创建:mkdir rootfs,然后,
2.在usr/下面建立子目录
3.在dev/下面建立字符设备文件
4安装/etc,系统所有配置文件都在这里,注意在不同平台(x86 arm PowerPC等)这些配置文件基本都是差不多的,所以只需要拿别人的修改就可以。(这里直接把别人的配置目录做成一个包,拿过来直接解压cp到rootfs里面就可以了。)
步骤二:下载内核源码并编译
1.从https://www.kernel.org/下载自己想要编译的内核版本(我编译的是linux-2.6.29)
解压放到rootfs目录下,然后执行:
make menuconfig //按照自己的要求进行配置得到.config文件
然后对内核进行编译,执行:
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
最后得到我们的镜像文件:
2.编译内核模块,执行:
make modules ARCH=arm CROSS_COMPILE=arm-linux-
在此过程,遇到的各种问题请参考:
https://blog.csdn.net/JustDoIt_201603/article/details/87556900
步骤三:busybox的编译和安装
busybox(称为嵌入式开发中的瑞士军刀)是一个工具集(例如我们常用ls,pwd命令,及vi或vim工具),对于这些常用的命令和工具,我们没有必要重新去开发,直接利用busybox进行移植即可。这里我用的是busybox-1.13.3,解压到rootfs目录下:
1.配置busybox,执行make menuconfig
提示如下错误:
意思是混合隐式规则和常规规则:弃用语法,起初以为是busybox包的问题,换了低版本也报同样的错误,百度上说可能是由于系统make工具太新(系统:Ubuntu16.04),make旧版 的一些规则已经无法兼容新版make
将原来的config %config: scripts_basic outputmakefile FORCE改为:
将原来的/ %/: prepare scripts FORCE,改为:
然后重新执行:make menuconfig,进入这个Busybox Settings --->
首先设置下面第一项为yes(*表示yes),然后设置最后一项Cross Compiler prefix(交叉编译器的前缀)的内容为arm-linux
然后进入第四项busybox的安装选项中
设置busybox安装路径前缀,这里我选择安装到rootfs目录下
然后退出保存设置。后面最好source /etc/profile一下。
2.编译busybox,执行:
make ARCH=arm CROSS_COMPILE=arm-linux-
编译完成:
3.busybox安装
安装之前我们/home/wangz/rootfs/bin/目录下都是空的,然后执行安装:
编译完成后,会发现/home/wangz/rootfs/bin/bin多了很多指令工具:
这些指令都是链接命令,连接到了busybox的bin下面去了。
4.内核模块的安装
前面的内核模块都只是编译了,还没有安装,现在来安装,执行:
make modules_install ARCH=arm INSTALL_MOD_PATH=/home/wangz/rootfs
5.到这里整个根文件系统都完成了。
linux根文件系统创建过程相关推荐
- linux文件系统启动流程,linux 内核启动过程以及挂载android 根文件系统的过程
转载 作者:汕头大学-黄珠唐 时间:2009 年10 月29 日 主要介绍linux 内核启动过程以及挂载android 根文件系统的过程,以及介绍android 源代码中文件系统部分的浅析. 主要源 ...
- SigmaStar SSD202 openwrt 系统下ubi根文件系统挂载过程
关于UBI介绍可以参考官方文档 http://www.linux-mtd.infradead.org/doc/ubifs.html 下面是一张简介图,大概的介绍就是UBIFS依赖kernel UBI子 ...
- 构建基本的嵌入式Linux根文件系统
构建基本的嵌入式Linux根文件系统 其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的<Linux全线移植文档>做的.有些东西我也不清楚,只是跟着做,做 ...
- 采用busybox的嵌入式Linux根文件系统的的制作方法
在嵌入式Linux操作系统越中文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制.根文件系统一直是Linux系统不可或 ...
- 嵌入式软件开发之------浅析linux根文件系统挂载(九)
Linux代码版本:linux4.4 导读:前些天拿到供应商的一块arm64开发板,需要对其新CPU进行测试评估.需要将公司自己的系统移植上去测试一些参数.在挂载公司的cpio包的时候,出现解压失败. ...
- 嵌入式Linux根文件系统制作
嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...
- 嵌入式开发之linux根文件系统移植
目录 前言 一.创建根文件系统目录 二.添加命令与实用程序 2.1 编译和安装 busybox 2.2 拷贝busybox内的小程序 三.添加lib库文件 3.1 拷贝工具链内的动态库 3.2 拷贝工 ...
- 制作嵌入式Linux根文件系统
文章目录 1. 根文件系统布局 2. 使用BusyBox生成二进制工具 2-1. 获取BusyBox源码 2-2. 配置BusyBox 2-2-1. 选择编译静态库 2-2-2. 选择交叉编译工具链 ...
- linux根文件系统配置,Linux学习笔记__ Linux根文件系统详解
Linux根文件系统详解 文件系统: rootfs:根文件系统 FHS:Linux boot:系统启动相关的文件,如内核.initrd.以及grub(bootloader) /dev: 设备文件 块 ...
最新文章
- 从Hadoop集群中移除一块磁盘的操作
- smokeping安装部署最佳实践
- JS的表单序列化,数组去重,判断数组是否重复等方法
- 计算机应用基础在线测试01,计算机应用基础在线测试(全部正确).pdf
- 查网站服务器ip 被k,网站被K的排查方法
- linux 错误处理命令,Linux运行脚本命令提示No such file or directory错误的解决办法
- C语言中的strncmp
- Java笔记-解决Cause: java.sql.SQLException: 试图在只读事务中修改数据(达梦数据库)
- SpaceX载人龙飞船Crew Dragon成功完成首飞返回地球!
- GDPR法律条款解读及应对指南(全面版)
- SI4463 空中唤醒教程
- 计算机音乐谱大全极乐净土,极乐净土maria曲谱
- Oracle:ORA-00054 资源正忙 -- 锁表的解决方法
- decimals数据格式化
- java查看微信付款记录怎么查_微信支付java版本之查询订单
- 软件开发2:代码检视
- 在iphone中添加日历库kal
- 相机系统综述 —— ISP
- Python爬虫爬取Twitter视频、文章、图片
- 关于麦克风波束成形的基本原理
热门文章
- HttpClient 讲解 (2) 项目封装
- 674 Longest Continuous Increasing Subsequence(每日一题)
- Minio的容量算法及实际存储空间计算公式
- Django 3.2.5博客开发教程:HelloWorld欢迎页面
- 【收藏】Vue+elementUI的this.$refs.对象名.方法名的理解
- linux cp命令强行覆盖复制
- postgresql数据表增删改:使用pgadmin和SQL的方式实现
- vshpere esxi6.7安装
- jvm内存溢出分析实践案例:javax.crypto.JceSecurity大量BouncyCastleProvider实例无法被回收
- Docker镜像分层和临时容器