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:http://www.linuxidc.com/Linux/2011-08/40704.htm(2)创建目录
[www.linuxidc.com@linuxidc ~]$ mkdir rootfs
[www.linuxidc.com@linuxidc ~]$ cd rootfs/
[www.linuxidc.com@linuxidc rootfs]$ mkdir bin dev etc home lib mnt opt proc root sbin sys tmp usr var www
[www.linuxidc.com@linuxidc 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是必须的。解决Ubuntu安装无线网卡驱动因”init_mutex”被废除编译不过的问题使用nfs挂载根文件系统相关资讯 Linux教程 Linux根文件系统 Linux文件系统制作 根文件系统制作
- 制作Linux根文件系统关于链接库的 (05/26/2015 14:29:34)
- 内核驱动-U-Boot+内核制作+根文件 (03/17/2014 15:19:37)
- Linux文件系统制作 (12/15/2012 08:56:17)
| - Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- Linux根文件系统的制作实例 (12/09/2012 09:18:54)
|
本文评论 查看全部评论 (0)