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子系统)
一、修改
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
.类型
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
相关文章推荐
- (原创)c#学习笔记03--变量和表达式02--C#控制台应用程序的基本结构
- java中的io——读写大文件(二)
- DBMS_RLS包实现数据库表中的行级安全控制
- Android 学习笔记之Volley开源框架解析(一)
- Jquery实现表单的动态验证
- SQL MID() 函数
- 网易javascript解答
- 应用及实例,在信用卡业务中的数据挖掘技术分析
- 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。
- Remove Nth Node From End of List
- Codeforces Round #325 (Div. 2) (586A,586B,585A,585B)
- 谈ubuntu12.04 64bit安装hadoop2.2.0的方法
- 关于 位运算 的一些题
- poj 1321
- Magento查询历史完成订单的产品销售价格
- poj_2112 网络最大流+二分法
- 最伟大的12位程序猿
- 僵尸进程和孤儿进程
- html 文档模式 与 meta
- SQL LCASE() 函数