文件系统工具交叉编译安装

在某些情况下,在嵌入式设备上可能需要处理ext2、fat文件系统分区,或者mtdblock分区。这就需要相应的文件系统工具,这些工具busybox中并不包含,需要通过tar包进行交叉编译得到。

一、移植ext2文件系统所需工具

1、下载e2fsprogs源码

http://sourceforge.net/projects/e2fsprogs/

2、解压、编译以及安装

  • cd /work/tools/
  • tar xzvf e2fsprogs-1.40.2.tar.gz
  • cd e2fsprogs-1.40.2
  • ./configure --with-cc=arm-linux-gcc --with-linker=arm-linux-ld --enable-elf-shlibs --host=arm --prefix=/work/tools/e2fsprogs-1.40.2/result
  • make
  • make install

3、将/work/tools/e2fsprogs-1.40.2/result/sbin/mke2fs拷贝至根文件系统的usr/sbin目录

  • cp    ./result/sbin/mke2fs    /work/nfs_root/fs_mini3/usr/sbin/

4、将./lib目录下的5个相关库文件拷贝至根文件系统的usr/lib目录,并创建相应软链接文件

dennis@dennis-desktop:/work/tools/e2fsprogs-1.40.2$ cd lib
dennis@dennis-desktop:/work/tools/e2fsprogs-1.40.2/lib$ cp libblkid.so.1.0 libcom_err.so.2.1 libe2p.so.2.3 libext2fs.so.2.4 libuuid.so.1.2 /work/nfs_root/fs_mini3/usr/lib
dennis@dennis-desktop:/work/tools/e2fsprogs-1.40.2/lib$ cd /work/nfs_root/fs_mini3/usr/lib
dennis@dennis-desktop:/work/nfs_root/fs_mini3/usr/lib$ ln -s libblkid.so.1.0 libblkid.so.1
dennis@dennis-desktop:/work/nfs_root/fs_mini3/usr/lib$ ln -s libcom_err.so.2.1 libcom_err.so.2
dennis@dennis-desktop:/work/nfs_root/fs_mini3/usr/lib$ ln -s libe2p.so.2.3 libe2p.so.2
dennis@dennis-desktop:/work/nfs_root/fs_mini3/usr/lib$ ln -s libext2fs.so.2.4 libext2fs.so.2
dennis@dennis-desktop:/work/nfs_root/fs_mini3/usr/lib$ ln -s libuuid.so.1.2 libuuid.so.1

5、测试ext2文件系统工具

启动开发板linux

  • 必要情况下,使用fdisk /dev/sda 分区
  • mke2fs /dev/sda1
  • mount –t ext2 /dev/sda1 /mnt

二、移植dos文件系统所需工具

1、下载dosfstools源码

http://ftp.debian.org/debian/pool/main/d/dosfstools/

2、解压、编译

  • cd /work/tools/
  • tar xzvf dosfstools-2.11.orig.tar.gz
  • cd dosfstools-2.11
  • 修改Makefile,将CC=gcc改为CC=arm-linux-gcc
  • make

3、将./mkdosfs/mkdosfs拷贝至根文件系统的usr/sbin目录

  • cp    ./mkdosfs/mkdosfs    /work/nfs_root/fs_mini3/usr/sbin/

4、测试dos文件系统工具

启动开发板linux

  • 必要情况下,使用fdisk /dev/sda 分区
  • mkdosfs -F 32 /dev/sda1
  • mount –t msdos /dev/sda1 /mnt

三、移植mtd工具程序

1、由于mtd工具程序会用到zlib库,因此先移植zlib库

  • cd /work/tools/
  • tar xzvf zlib-1.2.3.tar.gz
  • cd zlib-1.2.3
  • ./configure --shared --prefix=/work/tools/zlib-1.2.3/result
  • 修改Makefile,将19、28、29、36、37全部加上 arm-linux- 这个前缀,例如:19行原为CC=gcc,改为CC=arm-linux-gcc
  • make
  • make install

2、移植mtd工具程序

  • cd /work/tools/
  • tar xjvf mtd-utils-05.07.23.tar.bz2
  • cd mtd-utils-05.07.23/util
  • 修改Makefile
    • 将5行改为DESTDIR=/work/tools/mtd-utils-05.07.23/util/result
    • 第9行改为CROSS=arm-linux-
    • 第11行改为CFLAGS := -I../include -I/work/tools/zlib-1.2.3/result/include -O2 -Wall
    • 第12行改为LDFLAGS := -L/work/tools/zlib-1.2.3/result/lib
    • 第63行改为install -m0755 ${TARGETS} ${DESTDIR}/${SBINDIR}/
    • 第67行改为install -m0644 ../include/mtd/*.h ${DESTDIR}/${INCLUDEDIR}/mtd/
  • make
  • make install

3、将result目录下的mtd工具程序拷贝到根文件系统的usr/sbin目录

dennis@dennis-desktop:/work/tools/mtd-utils-05.07.23/util$ cp result/usr/sbin/* /work/nfs_root/fs_mini3/usr/sbin

4、将mtd工具程序所需的zlib库拷贝到根文件系统的usr/lib目录

dennis@dennis-desktop:/work/tools/mtd-utils-05.07.23/util$ cd /work/tools/zlib-1.2.3/result/lib/

dennis@dennis-desktop:/work/tools/zlib-1.2.3/result/lib$ cp -l libz.so.1* /work/nfs_root/fs_mini3/usr/lib/

5、测试mtd工具程序

启动开发板linux

  • 可以运行mkfs.jffs2在开发板上制作jffs2文件映像
  • 可以运行nandwrite将jffs2或yaffs文件映像写入nand flash的某个分区
  • 可以运行nanddump将nand flash的某个分区的内容制作为文件映像

四、strace的移植

在以后的驱动开发的学习中,strace是调测驱动程序的手段之一,但busybox中不含有strace,因此需要从tar包进行交叉编译而得。

先从strace的官方网站 http://sourceforge.net/projects/strace/ 下载strace-4.5.20.tar.bz2。

cd /work/tools

tar xjvf strace-4.5.20.tar.bz2

cd strace-4.5.20

./configure --prefix=/work/tools/strace-4.5.20/result --host=arm-linux

make

make install

将/work/tools/strace-4.5.20/result/bin/strace拷贝到根文件系统的usr/bin/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值