码迷,mamicode.com
首页 > 其他好文 > 详细

文件系统制作

时间:2018-01-29 17:36:57      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:mem   form   参数   编译内核   line   解析   统一   装包   操作   

1  创建目录

# mkdir rootfs    /* rootfs为创建的根文件系统目录,名字可任意 */
# cd rootfs
# mkdir bin dev etc lib proc sbin sys usr mnt tmp var
# mkdir usr/bin usr/lib usr/sbin lib/modules

【说明】在/lib/目录下存放的是 ARM 平台支持的库,库在交叉编译器那里。 

2 创建设备文件

# cd rootfs/dev
# mknod -m 666 console c 5 1
# mknod -m 666 null c 1 3

 3  加入配置文件

(1)在 /etc/ 目录下添加文件 inittab:

# 系统启动后最先被执行rcS脚本,只执行一次,init进程等待它结束后才继续执行其他操作
::sysinit:/etc/init.d/rcS    
# 在启动once进程后执行,init进程一旦发现/bin/sh程序死掉,则重新启动
::respawn:-/bin/sh
# 如果BusyBox中配置了CONFIG_FEATURE_USE_INITTAB,并且init进程接收SIGHUP信号时,先重新读取/解析/etc/inittab文件,再执行/sbin/init程序
::restart:/sbin/init
# 表示进程/sbin/reboot在按下Ctrl+Alt+Del组合键时运行
::ctrlaltdel:/sbin/reboot

(2)在 /etc /目录下添加文件 fstab:

#device     mount-point     type     options         dump     fsck order
proc        /proc           proc     defaults         0             0
tmpfs       /tmp            tmpfs    defaults         0             0
sysfs       /sys            sysfs    defaults         0             0
tmpfs       /dev            tmpfs    defaults         0             0

# device:要挂载的设备
# mount-point:挂载点
# type:文件系统类型
# option:挂载参数

这里我们挂载的文件系统有三个 proc、sysfs 和 tmpfs,在内核中 proc 和 sysfs 默认都支持,而 tmpfs 是没有支持的,我们需要添加 tmpfs 的支持(内核配置):

File systems --->
       Pseudo filesystems --->
              [*] Virtual memory file system support (former shm fs)
              [*] Tmpfs POSIX Access Control Lists

配置完后,重新编译内核。

(3)在 /etc/ 下创建 init.d 目录,并在 init.d 下创建 rcS 文件:

#!/bin/sh
#This is the first script called by init process
# 挂载/etc/fstab指定的文件系统
/bin/mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
# 告诉内核mdev程序的路径,当系统有热插拔设备时,内核会调用mdev程序新建或删除
echo /sbin/mdev>/proc/sys/kernel/hotplug
# 启动mdev程序,扫描系统识别的设备,并且新建文件节点
mdev -s

 

为 rcS 添加执行权限:

# chmod  +x init.d/rcS

 

 (4)在 /etc/ 目录下添加 profile 文件:

#!/bin/sh
# 导出环境变量,HOSTNAME,USER,HOME
export HOSTNAME=farsight
export USER=root
export HOME=root
#export PS1="\[\u@\h \W\]\$ "
# 命令提示符
export PS1="[$USER@$HOSTNAME \W]\# "
# 设置PATH环境变量
PATH=/bin:/sbin:/usr/bin:/usr/sbin
# 设置动态库的搜索路径
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
# 导出环境变量,PATH,LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH

 

4  添加内核模块

# cd ../linux    /* 进入Linux源代码 */
# make modules ARCH=arm CROSS_COMPILE=arm-linux-    /* 编译Linux内核模块 */
# make modules_install ARCH=arm INSTALL_MOD_PATH=../rootfs    /* 把内核模块复制到根文件目录中 */

 

5  编译/安装busybox

Busybox 提供文件系统一些小命令和小工具。busybox 的官网下载:http://www.busybox.net/

找到 busybox 安装包并解压,执行:

# make menuconfig

进入配置菜单,进行如下配置:

 

文件系统制作

标签:mem   form   参数   编译内核   line   解析   统一   装包   操作   

原文地址:https://www.cnblogs.com/laoyaodada/p/8378103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!