e2fsprogs制作嵌入式 mkfs.ext2 mkfs.ext3 mkfs.ext4
參考網(wǎng)友的方法
下載源碼包 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.
復(fù)制 bin 目錄的所有程序到開發(fā)板的 /usr/bin 目錄,復(fù)制 sbin 目錄的所有程序到開發(fā)板的 /usr/sbin 目錄,復(fù)制 lib 目錄的所有動態(tài)庫文件到開發(fā)板的 /usr/lib 目錄.
完成.
雖然說是如果成功,但是往往很多時(shí)候是會出現(xiàn)錯誤的,我在編譯過程中就出現(xiàn)了這個錯誤error: static declaration of 'fallocate64' follows non-static declaration
我的GCC是arm-linux-gcc 4.4.1版本,經(jīng)過幾番折騰,把misc目錄下e4defrag.c這個文件的251行的函數(shù)修改為非靜態(tài)的就可以了,即修改成如下所示:
int fallocate64(int fd, int mode, loff_t offset, loff_t len)
{
return syscall(__NR_fallocate, fd, mode, offset, len);
}
另外要注意配置時(shí)的arm-linux-gcc目錄以及--prefix這個參數(shù)的路徑。我的配置如下:
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目錄下所有的文件拷貝到制作的根文件系統(tǒng)即可。拷貝是加上-d選項(xiàng)。拷貝命令舉例:
cp *so* /nfsboot/my_system/system/usr/lib/ -d(首先進(jìn)入release/lib目錄)
其他兩個目錄完整拷貝即可。
在運(yùn)行命令前要使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib這個命令,加載動態(tài)庫路徑到環(huán)境變量,也可以設(shè)置在etc/profile文件中。
一些工具的說明:
e2fsprogs包含以下獨(dú)立的程式: e2fsck, ext2/3/4文件系統(tǒng)的fsck程序,用于檢查文件系統(tǒng)的完整性。 mke2fs, 用于創(chuàng)建ext2/3/4檔案系統(tǒng)。 resize2fs, 調(diào)整已建立的ext2/3/4檔案系統(tǒng)的大小。 tune2fs, 修改ext2/3/4檔案系統(tǒng)的相關(guān)參數(shù)。 dumpe2fs, 顯示ext2/3/4檔案系統(tǒng)的相關(guān)資訊。 debugfs, 用于調(diào)試ext2/3/4文件系統(tǒng),可以查看與更改文件系統(tǒng)的狀態(tài)。 e2fsprogs工具集同時(shí)也包含函數(shù)庫libext2fs。
總結(jié)
以上是生活随笔為你收集整理的e2fsprogs制作嵌入式 mkfs.ext2 mkfs.ext3 mkfs.ext4的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符设备驱动程序之按键——同步互斥阻塞
- 下一篇: 使用adb install 时 提示er