S5PV210的busybox移植

文件系统的"构建"
.类型
1.windows系统
ntfs   fat32
2.linux系统
ext2/3/4 
3.net file system
nfs
4.virt file system
romdisk / ramdisk
5.嵌入式文件系统(flash)
cramfs / jffs/jffs2/jffs3 / yaffs/yaffs2/yaffs3 
.基本结构(vfs子系统)

init进程分析

init_main
	console_init();
	......
	parse_inittab();		// 	解析inittab脚本	
	
inittab	   
::sysinit:/etc/init.d/rcS<span style="white-space:pre">		</span>//先启动这个文件
::askfirst:-/bin/sh
::ctrlaltdel:-/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init

rcS文件<span style="white-space:pre">		</span>//一开始的环境变量等
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
ifconfig eth0 192.168.1.176
		
进入busybox目录
一、修改 Makefile 中的体系结构 ARCH 和交叉编译器前缀 CROSS_COMPILE
# vim Makefile
164 行修改为:
CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
190 行修改为:
ARCH = arm
二、配置BusyBox
BusyBox 的配置程序和 linux 内核菜单配置方式简直一模一样。 熟悉用 make menuconfig
方式配置 linux 内核的朋友很容易上手。
# make menuconfig
选上以下几项:
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
这个选项是一定要选上,这样才能把BusyBox 编译成静态链接的可执行文件,
运行时才独立于其他函数库,否则需要其他库文件才能运行 BusyBox
Busybox Library Tuning --->
[*] vi-style line editing commands
选上 VI 风格的行编辑器命令。
[*] Fancy shell prompts
Linux Module Utilities --->
[ ] Simplified modutils
[*] insmod
[*] rmmod
[*] lsmod
[*] modprobe
[*] depmod
取消选中 Simplified modutils,使用完整的模块工具命令:insmodrmmod……
确保支持 mdev(mdev udev 设备文件系统的精简版),确保以下几项被选中:
Linux System Utilities ---> [*] mdev
[*] Support /etc/mdev.conf
[*] Support subdirs/symlinks
[*] Support regular expressions substitutions when renaming dev
[*] Support command execution at device addition/removal
[*] Support loading of firmwares
其它选项都是一些 linux 基本命令选项,自己需要哪些命令就编译进去,一般用默认的
就可以了,配置好后退出并保存。
三、编译make
四、安装make install以前的版本可能默认安装到根目录,这样就跟原来系统的目录冲突,所以尽量指明路径,高版本的就是在本目录下_install目录里。

这里就可以进去查看有一些bin目录,但还不能用,最起码需要加上个etc引导让文件系统启动。
虽然启动了,但因为没有其他目录等,可能执行其他不成功。
如:执行reboot 会出现reboot: can't open '/proc': No such file or directory。
所以需要创建/proc等其他目录,还有 导入C库是让系统可以执行C程序等。

当然可以加上其他目录,创建成一个满足基本需求的最小文件系统。
参考: http://blog.chinaunix.net/uid-30254565-id-5044374.html
http://blog.sina.com.cn/s/blog_7943319e01018g5w.html
当然实际上使用的话,可能还需要添加其他的一些东西,根据需求。

添加 mkyaffs2image工具
将mkyaffs2image拷贝到PC机的/bin目录下,执行如下操作
mkyaffs2image /rootfs/ rootfs.img创建出文件镜像。
就可以进行烧写了。

附:
在制作文件系统的时候,如果感觉nand flash烧写这样操作麻烦, 可以使用nfs直接挂载过去。
可自行搜索参考内核上的nfs配置。
错误:
1、request_module: runaway loop modprobe binfmt-464c
http://blog.csdn.net/ab198604/article/details/5755391
http://blog.sina.com.cn/s/blog_740ccd0401011ivx.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值