根文件系统制作
来源:互联网 发布:不可抗力网络电影 编辑:程序博客网 时间:2024/05/18 00:25
先来看看制作根文件系统的思维导图:
1、 创建根文件系统目录
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
2、 创建设备文件
cd rootfs/dev
mknod –m 666console c 5 1
mknod –m 666null c 1 3
3、 加入配置文件
tar zxvf etc.tar.gz –C /rootfs
4、 添加内核模块
暂时不添加
5、 编译、安装busybox
tar zxvf busybox-1.13.3.tar.gz
cd busybox-1.13.3
make menuconfig
Busybox Settings àbuild Options->
BuildOptions->
选中Build busybox as a static binary 静态链接
Cross Compiler prefix设置为arm-linux-
上面设置好保存回到上级的
Installation Options->
选中“Don’t use /usr”,选中该项可以避免busybox被安装到宿主系统的目录下,破坏宿主系统
Busybox Installation Prefix(/xxx/rootfs) 该项表明编译后的busybox的安装位置
改为 自己创建的rootfs根文件系统路径
配置完成后保存退出,
执行make和安装busybox :make install
上述的配置过程:
进入BusyboxSetting->
build options->
[*]"Build busybox as a staticbinary"//动态链接
Cross Compile prefix(arm-linux-)
Installation Option->
[*]Don't usr/usr//避免busybox安装至宿主系统的usr,目录下
Busybox InstallationPrefix(/xxx/rootfs)//安装位置
其他选项默认
到这里基本的目录和文件就建立完成了,接着是以何种文件系统挂载。
现在设置以initramfs文件系统挂载:
1、 建立Initramfs文件系统启动时所需文件init(initramfs文件系统启动时会在根文件系统中执行第一个init程序,它对uboot传过来的参数init=/linuxrc不予理睬,所以需要在制作的根文件系统里的根目录加入init程序,否则无法启动。init程序和linuxrc程序一样都是符号链接文件,它们都是指向/bin/busybox程序。)
有两种方法:
a)mvlinuxrc init (可以通过ll命令查看,linuxrc是指向bin/busybox的软连接)
b)不删除linuxrc,直接建立软连接
cdrootfs
ln–s ./bin/busybox init
2、 配置linux内核,支持initramfs
makemenuconfig
General setup --->
[*]Initial RAM filesystem and RAM disk (initramfs/initrd) support
(/xxx/rootfs) Initramfs source file(s) #输入根文件系统的所在目录
3、 编译make uImage
4、 修改boot启动参数
setenv bootargs noinitrd console=ttySAC0,115200
下载内核启动,若是发现tftp下载停顿则要确保主机的防火墙和selinux要关闭
/etc/init.d/iptablesstop setenforce permissive
出现错误了:Warning: unable to open an initial console.
忘记创建设备文件了
- 制作ramdisk根文件系统
- 根文件系统的制作
- 根文件系统的制作
- 根文件系统的制作
- Jffs2根文件系统制作
- 根文件系统制作
- 根文件系统制作
- 根文件系统制作
- linux根文件系统制作
- 制作ramdisk根文件系统
- ARM根文件系统制作
- ramdisk根文件系统制作
- 根文件系统的制作
- jffs2根文件系统制作
- 动态制作根文件系统
- 最小根文件系统制作
- 制作jffs2根文件系统
- 嵌入式根文件系统制作
- 关于Yii中findBySql的查询
- Android生存指南:Eclipse快捷键
- c++虚指针及相应对象的数据结构
- stm8-----falsh ICP and IAP学习笔记
- C++ 写法do{...}while(0)的意义和用法
- 根文件系统制作
- canvas.save() canvas.restore() 作用
- 2-Asp.net核心对象
- list 用法
- Python 字符编码小笔记(备忘录)
- java面试题
- unity FindObjectsOfType 遍历对象
- 考勤管理软件对企业管理非常重要
- Unity3D中c#集合的应用