linux根文件系统的制作 .

根文件系统制作的方法网上有很多详细的教程,我这里只简单写几个问题。

1、动态编译还是静态编译

    如果需要ping域名,则需要动态编译,还需要需要几个库:libnss_dns*,libnss_files*, libresolv*,网上说还需要/etc/nsswitch.conf文件,但似乎没有这个文件也能ping域名,当然要设置好DNS等。我选择的是动态编译。

|-- lib
| |-- ld-2.8.so
| |-- ld-linux.so.3 -> ld-2.8.so
| |-- libc-2.8.so
| |-- libcrypt-2.8.so
| |-- libcrypt.so.1 -> libcrypt-2.8.so
| |-- libc.so.6 -> libc-2.8.so
| |-- libm-2.8.so
| |-- libm.so.6 -> libm-2.8.so
| |-- libnss_dns-2.8.so
| |-- libnss_dns.so.2 -> libnss_dns-2.8.so
| |-- libnss_files-2.8.so
| |-- libnss_files.so.2 -> libnss_files-2.8.so
| |-- libresolv-2.8.so
| |-- libresolv.so.2 -> libresolv-2.8.so

2、交叉编译器

    可以在menuconfig中指定。

    Build Options --->
    [ ] Build BusyBox as a static binary (no shared libs) (NEW)
    …… 
    (arm-linux-) Cross Compiler prefix

3、制作流程

(1)下载
    Busybox:www.busybox.net

(2)创建目录
    [408@WZC ~]$ mkdir rootfs
    [408@WZC ~]$ cd rootfs/
    [408@WZC rootfs]$ mkdir bin dev etc home lib mnt opt proc root sbin sys tmp usr var www
    [408@WZC rootfs]$ mkdir usr/bin usr/lib usr/sbin lib/modules

(3)创建设备文件
    [root@WZC dev]# mknod -m 666 console c 5 1
    [root@WZC dev]# mknod -m 666 null c 1 3

(4)配置Busybox
    make menuconfig

(5)编译Busybox
    make
    make install

(6)添加可执行文件

    这里提一下串口传输rz和sz的添加,由于rz和sz是商业软件,如果不注册的话每次传输完会有10秒的睡眠时间,这里作为测试,可以简单地通过添加#define REGISTERED定义或直接将main函数最后的延迟注释掉即可。

(7)安装库文件

    可以只安装必须的库,arm-linux-readelf 可查看需要的库。作为动态链接,库ld-2.8.so是必须的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值