参考网友的方法

下载源码包 e2fsprogs:

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

cd /arm-tools
tar xzvf e2fsprogs.tar.gz

cd e2fsprogs
mkdir release
cd release

vi configure-arm

#! /bin/sh
CC=arm-linux-gcc ../configure --enable-elf-shlibs --host=arm --prefix=/arm-tools/e2fsprogs/release/

chmod 777 configure-arm
./configure-arm

make
make install

如果成功,在 release 目录会生成 bin,sbin,lib.
复制 bin 目录的所有程序到开发板的 /usr/bin 目录,复制 sbin 目录的所有程序到开发板的 /usr/sbin 目录,复制 lib 目录的所有动态库文件到开发板的 /usr/lib 目录.

完成.


虽然说是如果成功,但是往往很多时候是会出现错误的,我在编译过程中就出现了这个错误error: static declaration of 'fallocate64' follows non-static declaration

我的GCC是arm-linux-gcc 4.4.1版本,经过几番折腾,把misc目录下e4defrag.c这个文件的251行的函数修改为非静态的就可以了,即修改成如下所示:

int fallocate64(int fd, int mode, loff_t offset, loff_t len)
{
return syscall(__NR_fallocate, fd, mode, offset, len);
}

另外要注意配置时的arm-linux-gcc目录以及--prefix这个参数的路径。我的配置如下:

CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc ../configure --enable-elf-shlibs --host=arm-linux --prefix=/mydisk/workdisk/e2fsprogs/arm-tools/e2fsprogs-1.42.9/release 

编译完成把bin、lib、sbin目录下所有的文件拷贝到制作的根文件系统即可。拷贝是加上-d选项。拷贝命令举例:

cp *so* /nfsboot/my_system/system/usr/lib/ -d(首先进入release/lib目录)

其他两个目录完整拷贝即可。

在运行命令前要使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib这个命令,加载动态库路径到环境变量,也可以设置在etc/profile文件中。


一些工具的说明:

e2fsprogs包含以下独立的程式:
e2fsck, ext2/3/4文件系统的fsck程序,用于检查文件系统的完整性。
mke2fs, 用于创建ext2/3/4档案系统。
resize2fs, 调整已建立的ext2/3/4档案系统的大小。
tune2fs, 修改ext2/3/4档案系统的相关参数。
dumpe2fs, 显示ext2/3/4档案系统的相关资讯。
debugfs, 用于调试ext2/3/4文件系统,可以查看与更改文件系统的状态。
e2fsprogs工具集同时也包含函数库libext2fs。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐