建立动态文件系统
需要的文件为busybox-1.15.2.tar.bz2,arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar,arm-emulator.tar
1> 解压busybox-1.15.2.tar.bz2;
yuanpengjun@ypj:~/arm$ sudo tar jxvf busybox-1.15.2.tar.bz2
2> 在进行make menuconfig 之前先安装一个图形界面;否则的话不出现图形界面;
yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo aptitude install libncurses5-dev
3> 输入命令sudo make menuconfig 出现图形界面;
yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo make menuconfig
4> 进入图形界面设置busybox settings--à下Build Options --à(图中蓝色部分)
将下图中的蓝色部分不选, Build BusyBox as a static binary (no shared libs)不选为建立动态文件系统;
5> 建立交叉编辑前缀 先选中Cross Compiler prefix;再按回车;进入以下界面;在标签栏中输入以下编辑的绝对路径;
6> 保存设置好的busybox settings,其余的部分都采用默认设置;保存完成后,退出图形界面;
7> 保存退出图形界面,窗口出现错误;
8> yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo make 或者用make 主要是在安装make menuconfig前加入sudo 所能后面都要加入sudo
9> yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo make install; 或者用make install 主要是在安装make menuconfig前加入sudo 所能后面都要加入sudo
10> 查看_install 下的文件内容;
yuanpengjun@ypj:~/arm/busybox-1.15.2$ ls _install/
11> 修改原nfs 下的模拟器的文件名,同时新建一个新的文件夹名为qemu-target-armv5l/ 并且qemu-target-armv5l/文件夹下为空;
yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo mv /home/nfs/qemu-target-armv5l/ /home/nfs/qemu-target-armv5l-old
yuanpengjun@ypj:~/arm/busybox-1.15.2$ sudo mkdir /home/nfs/qemu-target-armv5l
12> 将busybox-1.15.2$ cd _install/下的所有文件拷贝至目录/home/nfs/qemu-target-armv5l下,
yuanpengjun@ypj:~/arm/busybox-1.15.2$ cd _install/
yuanpengjun@ypj:~/arm/busybox-1.15.2/_install$ ls
bin linuxrc sbin usr
yuanpengjun@ypj:~/arm/busybox-1.15.2/_install$ sudo cp * /home/nfs/qemu-target-armv5l –a
13> 进入/home/nfs/qemu-target-armv5l 目录下,再新建一个自己的目录 etc
yuanpengjun@ypj:~/arm/busybox-1.15.2/_install$ cd /home/nfs/qemu-target-armv5l
yuanpengjun@ypj:/home/nfs/qemu-target-armv5l$ sudo mkdir etc lib
yuanpengjun@ypj:/home/nfs/qemu-target-armv5l$ ls
bin etc lib linuxrc sbin usr
14> lib与etc文件夹建完后,将/arm/arm-2009q1/arm-none-linux-gnueabi/libc/lib下的所有文件夹拷贝至/home/nfs/qemu-target-armv5l/lib$目录下的lib中
yuanpengjun@ypj:~/arm/arm-2009q1$ cd arm-none-linux-gnueabi/
yuanpengjun@ypj:~/arm/arm-2009q1/arm-none-linux-gnueabi$ ls
bin include lib libc
yuanpengjun@ypj:~/arm/arm-2009q1/arm-none-linux-gnueabi$ cd libc
yuanpengjun@ypj:~/arm/arm-2009q1/arm-none-linux-gnueabi/libc$ ls
armv4t etc lib sbin thumb2 usr
yuanpengjun@ypj:~/arm/arm-2009q1/arm-none-linux-gnueabi/libc$ cd lib
yuanpengjun@ypj:~/arm/arm-2009q1/arm-none-linux-gnueabi/libc/lib$ ls
ld-2.8.so libcidn-2.8.so libgcc_s.so libnss_compat-2.8.so libnss_hesiod.so.2 libpthread.so.0 libthread_db.so.1
ld-linux.so.3 libcidn.so.1 libgcc_s.so.1 libnss_compat.so.2 libnss_nis-2.8.so libresolv-2.8.so libutil-2.8.so
libanl-2.8.so libcrypt-2.8.so libm-2.8.so libnss_dns-2.8.so libnss_nisplus-2.8.so libresolv.so.2 libutil.so.1
libanl.so.1 libcrypt.so.1 libmemusage.so libnss_dns.so.2 libnss_nisplus.so.2 librt-2.8.so
libBrokenLocale-2.8.so libc.so.6 libm.so.6 libnss_files-2.8.so libnss_nis.so.2 librt.so.1
libBrokenLocale.so.1 libdl-2.8.so libnsl-2.8.so libnss_files.so.2 libpcprofile.so libSegFault.so
libc-2.8.so libdl.so.2 libnsl.so.1 libnss_hesiod-2.8.so libpthread-2.8.so libthread_db-1.0.so
新建议的动态文件系统中lib中的文件如下所示:(动态文件系统是在NFS服务器配置好后使用的;)
yuanpengjun@ypj:/home/nfs/qemu-target-armv5l/lib$
ld-2.8.so libcidn-2.8.so libgcc_s.so libnss_compat-2.8.so libnss_hesiod.so.2 libpthread.so.0 libthread_db.so.1
ld-linux.so.3 libcidn.so.1 libgcc_s.so.1 libnss_compat.so.2 libnss_nis-2.8.so libresolv-2.8.so libutil-2.8.so
libanl-2.8.so libcrypt-2.8.so libm-2.8.so libnss_dns-2.8.so libnss_nisplus-2.8.so libresolv.so.2 libutil.so.1
libanl.so.1 libcrypt.so.1 libmemusage.so libnss_dns.so.2 libnss_nisplus.so.2 librt-2.8.so
libBrokenLocale-2.8.so libc.so.6 libm.so.6 libnss_files-2.8.so libnss_nis.so.2 librt.so.1
libBrokenLocale.so.1 libdl-2.8.so libnsl-2.8.so libnss_files.so.2 libpcprofile.so libSegFault.so
libc-2.8.so libdl.so.2 libnsl.so.1 libnss_hesiod-2.8.so libpthread-2.8.so libthread_db-1.0.so
15> 重新启动服务器;
uanpengjun@ypj:/home/nfs/qemu-target-armv5l$ sudo service nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
16> 然后运行 模拟器;进入如下图形界面;
yuanpengjun@ypj:~/arm/arm-emulator$ sudo ./run-qemu.sh
切换至以上图形界面QEMU 中按回车可进入编辑模式;
17>编辑/practise/nfspractice文件下的.C文件;
yuanpengjun@ypj:~/arm/arm-2009q1/practise/nfspractice$ sudo ../../bin/arm-none-linux-gnueabi-gcc –o teststatic testnfs.c –static
18>将teststatic 文件拷贝至/home/nfs/qemu-target-armv5l,运行即可;
yuanpengjun@ypj:~/arm/arm-2009q1/practise/nfspractice$ sudo cp teststatic /home/nfs/qemu-target-armv5l
yuanpengjun@ypj:~/arm/arm-2009q1/practise/nfspractice$ sudo ls /home/nfs/qemu-target-armv5l
bin dev etc linuxrc proc sbin sys teststatic tmp usr
19> 在模拟器上运行./teststatic 即可看到运行结果;
动态文件系统建立完毕;