Pregunta:
Ver actualización a continuación.
Recibí un correo electrónico de Logitech que indica que están al final de la vida útil de su producto Harmony Link (consulte https://community.logitech.com/s/question/0D55A0000745EkCSAU/harmony-link-eos-or-eol ).
Así que me encargué de empezar a desmontarlo. Al quitar las almohadillas adhesivas de la parte inferior, se revelaron 4 puntos de soldadura. Dos de los cuales suceden a las conexiones UART.
Aquí está la información al arrancar:
++NAND: RCSR=54200900
Searching for BBT table in the flash ...
.
Found version 1 Bbt0 at block 1023 (0x7fe0000)
Total bad blocks: 0
.[Warning] FEC not connect right PHY: ID=fffffc
FEC: [ FULL_DUPLEX ] [ connected ] [ 100M bps ]:
Ethernet mxc_fec: MAC address sn:ip:ped:fr:om:vu
No IP info for device!
Unrecognized chip: 0xf8!!!
hardware reset by POR
Clock input is 24 MHz
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version FSL 200904 - built 21:32:37, Jul 5 2011
Platform: Logitech Baby (i.MX25 ) PASS 1.0 [x32 DDR]
System type 2070 revision 6
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited
RAM: 0x00000000-0x03f00000, [0x00095250-0x03ef1000] available
FLASH: 0x00000000 - 0x8000000, 1024 blocks of 0x00020000 bytes each.
== Executing boot script in 3.000 seconds - enter ^C to abort
RedBoot> ubi attach -f 0x80000 -l 0x07EC0000 -w 0x800 -e 0x20000 -s 0x200
scanning 1014 PEBs
........................................................................................................................................d
RedBoot> ubi load -b 0x100000 kernel%{os_backup}
RedBoot> exec -c %{os_cmdline}entry=0x80008000, target=0x80008000
Using base address 0x00100000 and length 0x0013a6d4
Uncompressing Linux..................................................................................... done, booting the kernel.
Así que está ejecutando un cargador llamado RedBoot. Esto parece mostrar los archivos de imagen individuales:
RedBoot> ubi info
Volumes count: 8
Logical eraseblock size: 129024
Total amount of logical eraseblocks: 1014 (130830336 bytes)
Amount of available logical eraseblocks: 337 (43481088 bytes)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 10
Current min/mean/max erase counter: 2/5/9
Minimum input/output unit size: 2048 bytes
VID header offset: 512
-----------------------------------
Volume ID: 0
Type: static
Alignment: 1
Size: 17 LEBs (2228224 bytes)
Used: 10 LEBs (1287892 bytes)
State: OK
Name: kernel
-----------------------------------
Volume ID: 1
Type: static
Alignment: 1
Size: 114 LEBs (14942208 bytes)
Used: 92 LEBs (11862016 bytes)
State: OK
Name: cramfs
-----------------------------------
Volume ID: 4
Type: dynamic
Alignment: 1
Size: 25 LEBs (3276800 bytes)
State: OK
Name: mfgdata
-----------------------------------
Volume ID: 5
Type: dynamic
Alignment: 1
Size: 261 LEBs (34209792 bytes)
State: OK
Name: storage
-----------------------------------
Volume ID: 6
Type: static
Alignment: 1
Size: 25 LEBs (3276800 bytes)
Used: 10 LEBs (1287892 bytes)
State: OK
Name: kernel_sm
-----------------------------------
Volume ID: 7
Type: static
Alignment: 1
Size: 114 LEBs (14942208 bytes)
Used: 102 LEBs (13033472 bytes)
State: OK
Name: cramfs_sm
-----------------------------------
Volume ID: 8
Type: dynamic
Alignment: 1
Size: 25 LEBs (3276800 bytes)
State: OK
Name: usrconf
-----------------------------------
Volume ID: 9
Type: dynamic
Alignment: 1
Size: 82 LEBs (10747904 bytes)
State: OK
Name: logitech
-----------------------------------
Volume ID: 2147479551
Type: dynamic
Alignment: 0
Size: 0 LEBs (0 bytes)
State: OK
Name:
Aquí está la pregunta: ¿Puede alguien ayudarme a hacer uso de esta información? ¿Cuál es la mejor manera de obtener la información del dispositivo a través de este cable UART? He jugado con el comando de dump
en varios niveles de éxito, pero eso es bastante engorroso y solo muestra el texto hexadecimal típico en forma de 00139E70: F8 13 90 C7 98 3B 7B CF 04 9F 80 E1 9A FF 8B 68 |.....;{........h|
con el que es difícil hacer nada. Entonces, ¿alguna idea sobre cómo debo proceder? Muchas gracias.
Actualización: me las arreglé para volcar (creo) toda la memoria, pero no he sacado mucho provecho con Binwalk. Por si alguien más quiere echarle un vistazo, aquí está. https://www.dropbox.com/s/pxpugqpptqc3ph9/data-complete.bin
Respuesta:
Si puede obtener una salida hexadecimal de los datos de la partición, puede almacenarlos en un archivo de texto y luego convertirlos a binario. En Linux, los siguientes comandos pueden ayudar:
cat data.txt | cut -d' ' -f2-18 | sed s/\\s//g | tr -d '\n' | xxd -r -p > data.bin