Cómo realizar una compilación cruzada de mkfs.jffs2 y otras cadenas de herramientas mtd-utils
En el directorio utils del archivo fuente YAFFS2, ejecute make para generar la herramienta mkyaffs2image y ejecute
.(imagen de destino)/mkyaffs2image p>
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> 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 p>
: %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 p>
|||- 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