根文件系统(rootfs)的制作

 


由于板子不知道什么缘故,u-boot的tftp功能无法应用,每次都用串口下载数据,但是到后面要下载文件系统的时候实在是太大了,完全无法下载,因此,尝试着做一个简单的文件系统,这个样子就能够跑起来了。

根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂在的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在跟文件系统挂载之后从中把一些基本的初始化脚本和服务加载到内存中去运行。

我们都说用busybox来制作根文件系统,那么busybox到底是什么?

busybox其实就是集成压缩了linux的许多工具和命令


下面就开始进行移植

1、创建必要的跟文件系统目录

2、创建控制台设备文件和null设备文件

命令如下所示

3、安装必要初始化文件

将etc.tar.gz解压到 rootfs,如下所示


4、配置busybox

首先解压busybox包,然后进去busybox目录执行make menuconfig,如下所示

进入busybox settings->build options选上“build busy as a static  binary ”


5、安装busybox

make install

注意,我们后面在测试helloworld的时候,如果此处选择了静态链接库,那么我们在编译helloworld等程序的时候也只能使用静态链接方式编译,即arm-linux-gcc -static -o hellowrold helloworld.c,如果我们此处选择动态链接方式,即使将库文件拷贝进去也是不行的。但是,我们选择静态编译的话,像一个helloworld编译出来都有50M的大小,因此,肯定静态编译方法是不行的,我们得选择动态编译方式。

那么此处我们不勾选,就选择busybox动态库方式,操作方法如下:

1、将交叉编译器的动态库文件拷贝到busybox安装后的目录的lib下面,如下所示

 cp /opt/toolchains/arm-jyxtec-linux-gnueabi/arm-jyxtec-linux-gnueabi/lib/*so* lib/ -a//注意,加选项a,拷贝所有的包括连接文件

 

安装1.20.2错误解决方法:

1、找不到curses.h文件

      该文件是linux下面的一个库文件,因此,查看linux下面是否有该文件,如centos的 yum list *curses*

      安装方法: yum instal curses*

2、arm-linux-gcc找不到

 

[root@ruanbinxin busybox-1.13.3]# make
/home/ruanbinxin/mini2440/busybox-1.13.3/scripts/gcc-version.sh: line 11: arm-linux-gcc: command not found
  SPLIT   include/autoconf.h -> include/config/*
  GEN     include/bbconfigopts.h
/home/ruanbinxin/mini2440/busybox-1.13.3/scripts/gcc-version.sh: line 11: arm-linux-gcc: command not found
  HOSTCC  applets/usage
  GEN     include/usage_compressed.h
  HOSTCC  applets/applet_tables
  GEN     include/applet_tables.h
  CC      applets/applets.o
/bin/sh: arm-linux-gcc: command not found
make[1]: *** [applets/applets.o] 错误 127
make: *** [applets] 错误 2
[root@ruanbinxin busybox-1.13.3]#

原来是之前安装的4.4.3交叉编译器忘生效了,执行source /etc/profile后,再执行arm-linux-gcc -v查看是否为自己安装的交叉编译器版本,错误就解决。

    再次执行make,虽然编译成功通过,但在很多文件中都出现一大堆警告提示:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值