ubuntu制作根文件系统(转)

http://blog.sina.com.cn/s/blog_67852f5601013tb0.html

[bin,/sbin,/usr/bin,/usr/sbin]之区别

/bin目录一般存放对于用户和系统来说都是必须的二进制文件,

/sbin目录要存放的是只针对系统管理的二进制文件,该目录的文件将不会被普通用户使用。

那些不是必要的用户二进制文件存放在/usr/bin下面,那些不是非常必要的系统管理工具放在/usr/sbin下。

对于嵌入式Linux系统的根文件系统来说,一般可能没有上面所列出的那么复杂。/home这个目录在一般嵌入式Linux中可能就很少用到,/boot这个目录则取决于你所使用的BootLoader是否能够在内核启动之前从你的根文件系统重新获得内核映象。一般说来,只有/bin,/dev,/etc,/lib,/proc,/var,/usr这些需要的,而其他都是可选的。

【如何用busybox制作根文件系统】

./ltib -m prep -p busybox得到源码

在busybox# make menuconfig

如果不选择上面4 ,5两项,文件系统是不识别PS1这个环境变量的参数的。那么运行linux时候命令行就只显示[\u@\h  \W] 不进行动态链接。

busybox# make

busybox# make install (安装其实就是进行拷贝把编译好的命令拷贝到(3)指定的路径)

在_install目录下得到4个文件:bin sbin linuxrc usr

----------------

make rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys usr mnt tmp var

mkdir usr/bin usr/lib usr/sbin lib/modules

创建设备文件

cd dev
mknod -m 666 console c 5 1         // mknod [option] ... name type [major minor]
mknod -m 666 null c 1 3              //              -m/-Z                b--block  c,u --character  p-- FIFO
 
cd etc
拷贝busybox-1.xx.x/examples/bootfloopy/etc/* 到当前目录下    fstab init.d inittab profile
 
-----------位于??
拷贝 /etc/passwd  /etc/group /etc/shadow到当前目录下
cp /etc/passwd ./
cp /etc/group ./
cp /etc/shadow ./
-----------
修改fstab init.d inittab profile
在etc中建sysconfig文件夹在sysconfig文件夹中建HOSTNAME文件在里面写上用户名,此名字将在linux系统的命令行中显示

编译内核模块

进入内核模块的目录(例如:linux 2.6.29)
make modules ARCH =arm CROSS_COMPILE=arm-linux
 
内核模块的安装
make modules_install ARCH=arm INSTALL_MOD_PATH=/.../roofs(跟文件系统所在的目录)
这样就将我们内核编译好的内核模块拷贝到了跟文件系统中
 
根据想要做的文件系统的类型,使用不同的工具对其进行编译,然后拷进开发板
以做yaffs2为例:mkyaffs2image rootfs(文件系统名字) rootfs.bin(制作的yaffs2文件系统的名字)
 
[note]本文部分内容摘抄自 http://blog.sina.com.cn/s/blog_966f8e85010115dl.html

 

 

 

 

转载于:https://www.cnblogs.com/findout/p/3190715.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值