-
busybox源码下载
(1)busybox是一个开源项目,所以源代码可以直接从网上下载。
(2)busybox的版本差异不大,版本新旧无所谓。
(3)下载busybox可以去linuxidc等镜像网站,也可以去www.busybox.net官方网站下载。 -
修改Makefile
(1) ARCH = arm
(2) CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin//arm-none-linux-gnueabi- -
make menuconfig进行配置
(1)参照网盘中章节目录下的《busybox menuconfig配置.txt》文件中的记录进行配置。 -
make 然后 make install
(1)make编译,如果有错误解决之(解决方法:可以将错误文件屏蔽掉,不去编译。
先查找错误文件的路径find -name "文件名"
然后在此文件的当前目录中输入vi Kbuild
,找到对应的.o文件,也就是编译后的文件,然后可以看到配置项的名称,退出,再去make menuconfig,去关闭对应的项即可,如后退出重新编译,得出busybox文件)
(2)make install执行的时候其实是在执行busybox顶层目录下的一个目标install。
(3)make install在所有的linux下的软件中作用都是安装软件。在传统的linux系统中安装软件时都是选择源代码方式安装的。我们下载要安装的软件源代码,然后配置、编译、安装。make install的目的就是将编译生成的可执行程序及其依赖的库文件、配置文件、头文件安装到当前系统中指定(一般都可以自己指定安装到哪个目录下,如果不指定一般都有个默认目录)的目录下
(目录路径默认是再当前目录的:
查看路径输入make menuconfig ,进入settings --> Installation–>make install回车即使路径,将来这个路径要设置实际挂载的路径上,这里输入的路径位/root//porting_x210/rootfs/rootfs)
- 设置bootargs挂载添加了busybox移植的rootfs
(1)之前建立了一个空的文件夹然后自己touch linuxrc随便创建了一个不能用的/linuxrc然后去nfs挂载rootfs,实验结果是:挂载成功,执行/linuxrc失败。
(2)现在我们移植了busybox后/linuxrc就可以用了,然后再次去nfs挂载这个rootfs。预计看到的效果是:挂载成功,执行/linuxrc也能成功。
(3)注意uboot的bootargs设置成:setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/root/porting_x210/rootfs ip=192.168.1.10:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
(4)实验结果:挂载成功,执行/linuxrc(也就是busybox)成功,但是因为找不到/etc/init.d/rcS和/dev/tty2等文件所以一直在打印错误提示信息,但是其实有进入命令行。
此文源自:朱老师物联网大课堂