e2fsprogs制作嵌入式 mkfs.ext2 mkfs.ext3 mkfs.ext4
參考網友的方法
下載源碼包 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。
總結
以上是生活随笔為你收集整理的e2fsprogs制作嵌入式 mkfs.ext2 mkfs.ext3 mkfs.ext4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符设备驱动程序之按键——同步互斥阻塞
- 下一篇: 用Android自带的signapk.j