Red de conocimiento informático - Material del sitio web - Cómo realizar una compilación cruzada de mkfs.jffs2 y otras cadenas de herramientas mtd-utils

Cómo realizar una compilación cruzada de mkfs.jffs2 y otras cadenas de herramientas mtd-utils

Lo primero que hay que explicar es:

En el directorio utils del archivo fuente YAFFS2, ejecute make para generar la herramienta mkyaffs2image y ejecute

.(imagen de destino)/mkyaffs2image

acl_2.2.47.orig.tar.gz

lzo-2.03.tar.gz

mtd-utils_20080508.orig.tar.gz

zlib-1.2 3.tar.gz

mkfs.jffs2.for.arm-linux-gcc.3.4.1 plataforma.tar.bz2

mkfs..jffs2.for. .pc platform.tar .bz2

Si solo necesita la herramienta mkfs.jffs2, entonces solo necesita instalar el paquete jffnms en ubuntu 8.10,

luther@gliet/opensource/ lzo/download/lzo-2.03.tar.gz

luther@glietdb.h

el archivo luther@glietinet/in.h

no necesita ser copiado a arm-linux-gcc.

struct ip_mreq

{

struct in_addr imr_multiaddr;

struct in_addr imr_interface;

}; p>

Datos estructurales en el encabezado; de lo contrario, en la versión usb de ubuntu 8.10 siempre se indica que falta la definición de ip_mreq, aunque se ha escrito explícitamente #define _USE_MISC

arm-linux -gcc también necesita crear un directorio, como el siguiente 3

luther@gliethttp:~/mtd-utils-20080508$ mkdir arm-linux

luther@gliethttp:~ /mtd-utils-20080508 $ cp -r ubi-utils arm-linux/

luther@gliethttp:~/mtd-utils-20080508$ cp -r include arm-linux/

luther@gliethttp:~ /mtd-utils-20080508$ cp -r r include arm-linux/

luther@gliethttp:~/mtd-utils-20080508$ vim ubi-utils/src/libpfiflash.c

Reemplazar todo EBUF(PFIFLASH_ERRSTR[-rc]). Reemplazar todo con EBUF("%s",PFIFLASH_ERRSTR[-rc]);

El script de reemplazo en vim es

: %s/EBUF(PFIFLASH_ERRSTR\[-rc\]);/EBUF("\%s", PFIFLASH_ERRSTR\[-rc\]);/ g

luther@gliethttp :~/mtd-utils -20080508$ vim ubi-utils/src/ubimirror.c

Reemplazar línea 206

fprintf(stderr, err_buf);

with

p>

fprintf(stderr, "%s", err_buf); // La idea es buena, porque err_buf contiene información de formato como %d, para que la interfaz esté más unificada. pero el compilador no parece admitirlo todavía.

[luther.gliethttp]

luther@gliethttp:~/mtd-utils-20080508$ vim ubi-utils/src/unubi.c

cambiar línea 898

char fname[PATH_MAX];

Leer

char fname[PATH_MAX+1];

luther@gliethttp:~/mtd-utils-20080508$ cd ubi-utils/new-utils

Debido a la optimización -O2, aparecerá la siguiente información de registro

error: ignorando el valor de retorno de 'scanf', declarado con el atributo warn_unused_result

Todo compilado manualmente. Compile primero.o

luther@gliethttp:~/mtd-utils-20080508/ubi-utils/new-utils$ gcc -Iinclude -Isrc -I .../.../include -Wall -Werror -Wall src/ubiformat.c -c -o ubiformat.o

Ejecute la siguiente instrucción al realizar la compilación cruzada

luther @gliethttp:~/mtd-utils-20080508/ubi-utils/new-utils$ arm-linux-gcc -Iinclude -Isrc -I.../.../include -Wall -Werror -Wall src/ubiformat .c -c -o ubiformat.o

luther@gliethttp:~/mtd-utils-20080508/ubi-utils /new-utils$ cd -

Bien, completa lo anterior Después de todo cambios, puede ejecutar make para compilar exitosamente [luther.gliethttp].

luther@gliethttp:~/mtd-utils-20080508$ make

Si desea realizar una compilación cruzada, ejecute

luther@gliethttp:~/ mtd-utils -20080508$ make CROSS=arm-linux -

luther@gliethttp:~/mtd-utils-20080508$ make install

Al realizar una compilación cruzada, ejecute

luther@gliethttp:~/mtd-utils-20080508$ make CROSS= arm-linux- install

luther@gliethttp:~/mtd-utils-20080508$ árbol gliethttp/

gliethttp /

|-- sbin

||-- bin2nand

|||-- doc_loadbios

|| -- docfdisk

||||-- flash_erase

|||-- flash_eraseall

|||-- flash_info

|||- - flash_lock

|||- flash_otp_dump

|||- flash_otp_info

|||- flash_unlock

| |- flashcp

|||- ftl_check

|||- ftl_format

|||- jffs2dump

|||- mkbootenv

|||- mkfs.jffs2

|||- mkpfi

|||- mtd_debug

|||- nand2bin

|||- nanddump

|||- nandtest

|||- nandwrite

|| |- nftl_format

|||- nftldump

|||- pddcustomize

|||-pfi2bin

| |- pfiflash

|||- recv_image

|||- rfddump

||- rfdformat

||- server_image

|||- sumtool

|||- ubiattach

|||- ubicrc32

|||- ubicrc32.pl

|||- ubidetach

|||- ubigen

|||- ubimirror

|||- ubimkvol

|||- ubinfo

|||- ubinize

|||-ubirmvol

|- ubiupdatevol

|- `- unubi

`- compartir

`- man

`- man1

`-- mkfs.jffs2 .1.gz

4 directorios, 45 archivos

Los datos de la memoria flash del sistema de archivos no se leen en la placa de desarrollo ep9312

#.

/mtd_debug read /dev/mtd0 0 100 gliethttp.bin

Copiado 100 bytes de la dirección 0x00000000 en flash a gliethttp.bin

# hexdump gliethttp.bin

0000000 03ff ea00 350c e59f 001c e583 410e e3a0

0000010 4004 e583 4a03 e3a0 4001 e254 fffd 1aff

0000020 4106 e3a0 4004 e583 42 f e202 5000 e594

0000030 4001 e0845000 e594 4001 e084 5000 e594

0000040 4001 e084 5000 e594 4010 e3a0 4008 e583

0000050 4050 e3a0 4001 e254 fffd 4e1 e e3 a0

0000060 4008 e583

p>

0000064

#

# ./mtd_debug leer /dev/mtd2 0 100 gliethttp.bin;hexdump gliethttp.bin -Cv

Copiado 100 bytes de la dirección 0x00000000 en flash a gliethttp.bin

00000000 1f 8b 08 00 ca 14 7d 4a 02 03 e4 5a 0f 70 93 e7 |......} . J... .Z.p...|

00000010 79 7f 3f 49 36 b2 31 41 80 a0 0e 38 cd 57 70 16 |y.??I6.1A... .8.Wp.|

00000020 93 18 f3 19 3b 60 12 9a d9 60 08 09 4e 22 c0 a4 |.... ;`...`..N"...|

00000030 b4 81 ca 42 92 6d 0d 59 d2 49 72 02 2b 4d dd 60 |... .B.m.Y.Ir.+M.||

00000040 72 84 e1 86 03 a7 21 01 8a d2 b2 4b 2e f3 56 76 |r.....!... .k..vv|

00000050 63 b7 34 0b 1d cd b1 1d 6b b3 95 36 pa 95 db d1 |c.4. ...!.k..6....|

00000060 8B 90 D1 EA |....|

00000064