busybox编译与烧写

一、实验环境

硬件: JZ2440开发板

busybox版本: busybox-1.7.0

交叉工具链:  gcc-3.4.5-glibc-2.3.6


二、实验步骤

1、解压内核源码包

为了方便以后查看我们对内核源码所作的修改可以使用git建立一个代码仓库,从而记录修改的点滴

                      tar   xjfv  busybox-1.7.0.tar.bz2

                      cd  busybox-1.7.0

                      git  init              //初始git仓库

                      git  add .          //将目录下的所有添加到暂存区

                      //将所有提交到仓库

                      git  commit  -a  -m "this iis busybox source without any change"


2、配置编译   

进入busybox-1.7.0目录下执行 make menuconfig 并根据自己需要修改配置选项保存后退出便会生成

一个.config配置文件。编译前还得修改Makefile指定交叉工具链

ARCH        ?= arm
CROSS_COMPILE    ?= /opt/cross-tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-

修改完之后便可执行make命令进行编译busybox。最后安装,执行如下命令:

             make CONFIG_PREFIX=dir_path install

             eg:make CONFIG_PREFIX=/nfs/sysfs/fs_s3c2440

就可以将busybox安装到dir_path目录下。安装完之后的目录结构如下图:



3、安装glibc库

在开发板上只需要加载器和动态库,在此我们构建一个lib/目录,命令如下:

             mkdir  -p  /nfs/sysfs/s3c2440/lib

             cd /opt/cross-tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib   //交叉工具链所在目录

             cp *.so* /nfs/sysfs/fs_s3c2440/lib/ -d

              

4、构建etc目录


5、构建dev目录


6、构建其他目录

如果没有 /proc、/tmp、/sys则会有以下错误提示

mount: mounting proc on /proc failed: No such file or directory
mount: mounting tmpfs on /tmp failed: No such file or directory

mdev: /sys/block: No such file or directory
mdev: /sys/class: No such file or directory


7、制作与烧写yaffs

制作:  mkyaffs2image  fs_s3c2440  root.yaffs2

在烧写内核之前得先安装tftp,具体的安装和使用这里不细说(参考ubuntu14.04开发环境搭建),同时还得设置电脑与开发板的

IP地址,使得它们在同一网段上。对于开发板IP的设置可以进入u-boot命令模式进行设置。具体如下:

                     set  ipaddr   200.200.200.66

                     set  serverip   200.200.200.99

然后使用tftp烧写:

                    tftp   30000000  root.yaffs2

                   nand  erase  root

                   nand  write.yaffs  30000000  0x00260000  $(filesize)


8、使用nfs启动根文件系统

为了方便内核的学习和调试,作者在此建议使用nfs挂载启动根文件,这样就不用将每次的修改烧写进flash也能验证修改的结果。

为了使得系统启动时能够通过nfs读取到本机的文件系统,首先本机的nfs服务和板子的nfs服务必须的配置好,这里不细说。在此

主要介绍一下启动参数的设置具体如下:

格式: nfsroot=[:][,]  ip=::::::

eg:  set bootargs noinitrd root=/dev/nfs nfsroot=200.200.200.99:/nfs/sysfs/fs_s3c2440 ip=200.200.200.88:200.200.200.99:200.200.200.1:

                                                        255.255.255.0::eth0:off init=/linuxrc console=ttySAC0

如果要恢复从flash启动可以将参数设置为:

           set bootargs  noinitrd  root=/dev/mtdblock3  init=/linuxrc  console=ttySAC0


待完善

你可能感兴趣的:(S3C2440实践)