您的位置:首页 > 其它

S5PV210的busybox移植

2015-10-17 14:52 260 查看
文件系统的"构建"
.类型
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,使用完整的模块工具命令:insmod、rmmod……

确保支持
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: