如何交叉编译mkfs.jffs2等工具链mtd-utils

首先说明一下:

在YAFFS2源文件的实用工具目录下,执行制造就可以生成mkyaffs2image图像工具,执行

。(要制作yaffs2的目录) (目标镜像)/mkyaffs 2 image

ACL _ 2 . 2 . 47 . orig . tar . gz

lzo-2.3 . tar . gz

MTD-utils _ 28 5 8 . orig . gz

zlib-1 . 2 . 3 . tar . gz

mkfs . jffs 2 . for . arm-Linux-gcc . 3 . 4 . 1平台mkfs.jffs2.for.arm-linux-gcc平台mkfs.jffs2.for.pc平台tar.bz2如果只需要mkfs.jffs2工具,那么ubuntu 8.1下直接安装jffnms软件包即可,Luther @ gliet/open source/lzo/download/lzo-2.3 . tar . gz文件中

arm-linux-gcc中不需要拷贝它。struct IP _ mreq

{

struct in _ addr IMR _ multi addr;

结构in _ addr imr _ interface

};

结构体数据到头部,否则在u盘版的ubuntu 8.1上老是提示没有ip_mreq定义,虽然上面明明写了# define _ USE _ MISC

arm-Linux-gcc中还需要创建如3下个目录

Luther @ glie http:~/MTD-utils-28 5 8 $ mkdir arm-Linux

Luther @ glie http:~/MTD-utils-28 5 8 $ CP-r ubi-utils arm-Linux/

Luther @ glie http:~/MTD-utils-28 5 8 $ CP-r include arm-Linux/

Luther @ glie http:~/MTD-utils将所有EBUF(PFI flash _ ERRSTR[-RC]);全部替换为EBUF("%s ",PFI flash _ ERRSTR[-RC]);

vim下替换脚本为

:% s/EBUF(PFI flash _ ERRSTR \[-RC \]);/EBUF("\%s ",PFIFLASH _ ERRSTR \[-RC \]);/g

Luther @ gliet http:~/MTD-utils-28 5 8 $ vim ubi-utils/src/ubi mirror . c

将第26行的

fprintf(stderr,err _ buf);

改为

fprintf(stderr," %s ",err _ buf);// 想法是好的,因为错误_缓冲中含有%d等格式信息,这样接口更加统一,但是编译器似乎还并不支持这样的操作。[Luther . glie http]

Luther @ glie http:~/MTD-utils-28 5 8 $ vim ubi-utils/src/unubi . c

将第898行

char fname[PATH _ MAX];

改为

char fname[PATH _ MAX+1];

Luther @ gliet http:~/MTD-utils-28 5 8 $ CD ubi-utils/new-utils

因为-氧气优化的原因,会导致如下原木信息

错误:忽略用属性warn_unused_result声明的“scanf”的返回值

所有手工先编译。o

Luther @ gliet http:~/MTD-utils-28 5 8/ubi-utils/new-utils $ gcc-Iinclude-Isrc-I../../include-Wall-Werror-Wall src/ubi format . c-c-o ubi format . o

对于交叉编译执行如下一条语句

Luther @ gliet http:~/MTD-utils-28 5 8/ubi-utils/new-utils $ arm-Linux-gcc-Iinclude-Isrc-I../../include-Wall-Werror-Wall src/ubi format . c-c-o ubi format . o

Luther @ gliet http:~/MTD-utils-28 5 8/ubi-utils/new-utils $ CD-

好了,上面的所有修改完成之后,就可以执行制造成功编译了【luther.gliethttp】。

Luther @ gliet http:~/MTD-utils-28 5 8 $ make

如果是交叉编译,执行

Luther @ glie http:~/MTD-utils-28 5 8 $ make CROSS = arm-Linux-

Luther @ glie http:~/MTD-utils-28 5 8 $ make install

对于交叉编译,执行

Luther @ gliet http:~/MTD-utils-28 5 8 $ make CROSS = arm-Linux-install

Luther @ gliet http:~/MTD-utils-28 5 8 $ tree gliet http/

|-sbin

| | |-bin 2 NAND

| |-doc _ load BIOS

|-docfdisk

| |-flash _ erase

| -nftl _ format

| |-nftldump

| |-PDD customize

| |-PFI 2 bin

| |-PFI flash

| |-recv _ image

| |-rfd dump

| |-serve _ image

| | |-sum tool

| |-ubi attach

| |-ubi CRC 32

|-ubi CRC 32 . pl

| |-ubi detach开发板上没有任何文件系统闪光数据读取

# /MTD _ debug read/dev/MTD 1 glie http . bin

从闪存中的地址x复制了1个字节到glie http . bin

# hex dump glie http . bin

3ff ea 35 c e59f 1c e583 41 e e3a

1 44 e583 4a 3 e3a 41 e254 fffd/MTD _ debug read/dev/MTD 2 1 glie http . bin;hexdump gliethttp.bin -Cv

将闪存中地址x的1个字节复制到gliet http . bin

1f 8b 8 ca 14 7d 4a 2 3 E4 5a f 7 93 E7 |......}J...Z.p..|

1 79 7f 3f 49 36 B2 31 41 8 A e 38 CD 57 7 16 | y?I6.1A...8 . WP . |

2 93 18 F3 19 3b 6 12 9a d9 6 8 9 4e 22 c a4 |....;`...`..n "..|

3 B4 81 ca 42 92 6d d 59 D2 49 72 2 2b 4d DD 6 |...b . m . y . IR+m ` |

4 72 84 E1 86 3 a7 21 1 8a D2 B2 4b 2e F3 56 76 | r.....!....K..vv |

5 63 B7 34 b 1d CD B1 1d 6b B3 95 36 DC 95 db D1 | c . 4.....k..6....|

6 8b 9 d1个|....|

64