Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417030
  • 博文数量: 131
  • 博客积分: 1990
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-24 12:15
文章分类
文章存档

2011年(4)

2010年(19)

2009年(108)

我的朋友

分类: LINUX

2009-10-10 11:57:51

(1) 为什么我们要用busybox,利用他干什么?

我们利用busybox主要是生成文件系统的4个主要文件:bin sbin usr linuxrc4个文件就是我们要构建的文件系统的主体部分,这个时候busybox对于我们来说就没有什么作用了,我们一般的做法是在其他的地方再建立一个文件夹,然后将bin sbin usr linuxrc拷贝过去,以后我们做的文件系统就是这个新建的文件夹里边的部分。

(2) yaffs2生成一个做文件系统镜象的工具

  yaffs2里边有个文件夹叫utils,在这个里边3个文件,Makefile ,mkyaffsimage.c mkyaffs2image.c ,在这个里边按道理是直接make就可以搞定,实际需要加两个文件,这两个文件是处理ECC的。然后在make 就可以生成两个工具文件:mkyaffsimage mkyaffs2image

(注:如果在移植的过程就不用看这个东西了,因为要是我在移植的时候一看到这个就觉的烦了,呵呵!这个是给第一次用busybox的兄弟们看的)

二.         具体做的步骤

解压busybox1.7.0,然后在该目录下用make menuconfig 出现配置界面,有几个地方在配置的时候要注意一下:

(1)                              Miscellaneous Utilities  --->

                 [] taskset要去掉

       如果不去掉,出错信息:

 miscutils/taskset.c:17: error: parse error before ''*'' token

miscutils/taskset.c:18: warning: function declaration isn''t a prototype

miscutils/taskset.c: In function `__from_cpuset'':

miscutils/taskset.c:22: error: `CPU_SETSIZE'' undeclared (first use in this function)

miscutils/taskset.c:22: error: (Each undeclared identifier is reported only once

miscutils/taskset.c:22: error: for each function it appears in.)

miscutils/taskset.c:26: warning: implicit declaration of function `CPU_ISSET''

miscutils/taskset.c:26: error: `mask'' undeclared (first use in this function)

miscutils/taskset.c: In function `taskset_main'':

miscutils/taskset.c:47: error: `cpu_set_t'' undeclared (first use in this function)

miscutils/taskset.c:47: error: parse error before "mask"

miscutils/taskset.c:68: warning: implicit declaration of function `CPU_ZERO''

miscutils/taskset.c:68: error: `new_mask'' undeclared (first use in this function)

miscutils/taskset.c:69: error: `CPU_SETSIZE'' undeclared (first use in this function)

miscutils/taskset.c:71: warning: implicit declaration of function `CPU_SET''

miscutils/taskset.c:78: error: `mask'' undeclared (first use in this function)

 

(2)                              Linux Module Utilities  --->

          []Support version 2.2.x to 2.4.x Linux kernels 要去掉

如果不去掉的话,出错信息:

modutils/lib.a(insmod.o)(.text.insmod_main+0x360): In function `insmod_main'':

: undefined reference to `query_module''

modutils/lib.a(insmod.o)(.text.insmod_main+0x394): In function `insmod_main'':

: undefined reference to `query_module''

modutils/lib.a(insmod.o)(.text.insmod_main+0x440): In function `insmod_main'':

: undefined reference to `query_module''

modutils/lib.a(insmod.o)(.text.insmod_main+0x494): In function `insmod_main'':

: undefined reference to `query_module''

modutils/lib.a(insmod.o)(.text.insmod_main+0x570): In function `insmod_main'':

: undefined reference to `query_module''

modutils/lib.a(insmod.o)(.text.insmod_main+0xc10): In function `insmod_main'':

: undefined reference to `create_module''

collect2: ld returned 1 exit status

其他的配就可以了,这两个地方要是不去掉的话,编译不过。

(3)make install命令来安装,就会产生一个文件夹_install,在这个文件家里边有4个文件----- bin sbin usr linuxrc,然后我们在其他目录在用mkdir 建一个文件夹,将这4个文件拷贝过去。这是我们要转到拷贝的目录来完善我们的文件系统。(注:我在根目录下建了一个名字为filesystem_install的文件夹)

(4)filesystem_install文件夹下面用mkdir建立文件夹:  dev  etc  home  lib    mnt  proc  root    sys  tmp  var

(5)我们在etc下面要写两个文件fstab inittab 和一个文件夹init.d

(a) Fstab的内容是:

#device     mount-point    type options           dump fsck   order

proc        /proc      proc   defaults           0    0

tmpfs   /tmp      tmpfs   defaults       0  0

(b) fstab文件的作用
/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文 件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsckmountumount的等命令都利用该程序。

Inittab的内容是:

#/etc/inittab

::sysinit:/etc/init.d/rcS

ttySAC0::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

(c) init.d\rcS文件的内容:

#!/bin/sh

ifconfig eth0 192.168.1.17

mount –a

(d)记的要将rcS文件的属性改成可执行的,就是rcS的颜色变成绿色了就可以了,这一步很重要,必须改。

改变其属性:chmod +x etc/init.d/rcS

(e)我在配置busybox的时候用的是动态库,所以要把/usr/local/arm/3.4.1/arm-linux/lib下面的3个库文件和一个加载器拷贝到/filesystem_install/lib下:ld-2.3.2.so ld-linux.so.2 libc.so.6  libcrypt.so.1  libm.so.6

(f)/filesystem_install/dev下建立设备节点:

 Console  mtdblock0  mtdblock1  mtdblock2  null  ttySAC0

用这样的命令建立:

sudo mknod console c 5 1

sudo mknod null c 1 3

阅读(761) | 评论(0) | 转发(0) |
0

上一篇:日记 [2009年10月09日]

下一篇:linuxrc详解

给主人留下些什么吧!~~