mtd_debug是一個(gè)linux下直接讀寫(xiě)flash扇區(qū)的工具,是mtd-utils的一個(gè)部件。具體用法如下:
./mtd_debug read <device><offset> <dest-filename> <len>
./mtd_debug write <device><offset> <source-filename> [len]
./mtd_debug erase <device><offset> <len>
具體使用舉例:./mtd_debug erase/dev/mtd/1 0x0 0xc00000 :表示擦寫(xiě)了0x34300000 ~ 0x34f00000共12MB的空間。以上命令格式中“device”是指/dev/mtd/0,1,2這種mtd char 設(shè)備,不要操作/dev/mtdblock/0,1,2這種塊設(shè)備。也就是說(shuō):mtd是字符設(shè)備,mtdblock是塊設(shè)備,它們映射的是同一個(gè)空間;但是我們?cè)诓翆?xiě)的時(shí)候就是操作字符設(shè)備,這個(gè)請(qǐng)注意。
以上不管是write哪一塊,都建議先erase,再write,否則可能導(dǎo)致write失敗mtd_debug的獲取或者說(shuō)交叉編譯mtd_utils
1.獲得源碼
root@:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.2.0.tar.bz2
root@:/home/# wget http://www.zlib.net/zlib-1.2.3.tar.gz
root@:/home/# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
root@:/home/# tar xzvf zlib-1.2.3.tar.gz
root@:/home/# tar xzvf lzo-2.03.tar.gz
root@:/home/# tar xzvf mtd-utils-1.2.0.tar.bz2
說(shuō)明:zlib和lzo是編譯mtd-utils所需庫(kù)文件,需提前交叉編譯完成,以供mtd-utils編譯時(shí)調(diào)用
2,編譯安裝zlib:
root@:/home/# cd zlib-1.2.3
root@:/home/zlib-1.2.3# CC=arm-linux-gcc ./configure --shared --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi
root@:/home/zlib-1.2.3# make
root@:/home/zlib-1.2.3# make install
root@:/home/zlib-1.2.3# cd ..
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi 為交叉編譯器路徑
3,編譯安裝lzo:
root@:/home/# cd lzo-2.03/
root@:/home/lzo-2.03# CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi
root@:/home/lzo-2.03# make
root@:/home/lzo-2.03# make install
root@:/home/lzo-2.03#
4,編譯mtd-utils
1) 修改Makefile
CROSS=arm-linux-
2) make WITHOUT_XATTR=1
在這里會(huì)提示沒(méi)有定義AI_ADDRCONFIG,在文件頭部加入定義#define AI_ADDRCONFIG 0x0020 就可以了
到這里還是有錯(cuò)誤提示。不過(guò)沒(méi)有關(guān)系。mtd_debug已經(jīng)出來(lái)了。靜靜的躺在arm-linux目錄下面鳥(niǎo)。
聯(lián)系客服