2018/08/18

Parallella paradumbs: Linaro fail 1

En el marco del proyecto Forzando Brutalmente MD5 [1] he usado una parallella[2] y aquí comparto algunas notas inconexas que he tomado


No he podido usar Linaro[3], pero mientras lo exploraba hallé datos desactualizados y caminos alternativos.



En "1.2 Download the files" dice que:


Kernel

No lo hallé y no logro deducir del paso "Extract BOOT partition" si es el archivo uImage que está junto al bitstream, apuesto a que si.

 

Bitstream

No lo hallé, pero se puede extraer de la partición de boot tal cual detallo luego

 

Linaro

Dice que:

wget http://releases.linaro.org/14.04/ubuntu/saucy-images/nano/linaro-saucy-nano-20140410-652.tar.gz

La ruta ha cambiado:

wget http://releases.linaro.org/archive/14.04/ubuntu/saucy-images/nano/linaro-saucy-nano-20140410-652.tar.gz

Device tree?


No dice nada del archivo .dtb, el device tree.... ¿será parte del 
THE_FILENAME_OF_THE_KERNEL_TARBAL que se menciona?


$ cat /mnt/build-bootfs.log
fpga_bitfile: parallella_e16_hdmi_gpiose_7010.bit.bin
kernel: uImage
devicetree: zynq-parallella.dtb


Apuesto otra vez a que si.

Cómo obtener los archivos de la imagen

Obtener y descomprimir https://github.com/parallella/parabuntu/releases/download/parabuntu-2016.11.1/parabuntu-2016.11.1-hdmi-z7010.img.gz

Adaptado de [4]

Obtener el offset de la partición de boot, que es Sector size * Start

$ fdisk -lu parabuntu-2016.11.1-hdmi-z7010.img
Disk parabuntu-2016.11.1-hdmi-z7010.img: 3,5 GiB, 3774873600 bytes, 7372800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe9fdb5c0

Device                              Boot  Start     End Sectors  Size Id Type
parabuntu-2016.11.1-hdmi-z7010.img1 *      2048  206847  204800  100M  b W95 FAT32
parabuntu-2016.11.1-hdmi-z7010.img2      206848 7372799 7165952  3,4G 83 Linux


512 * 2048 = 1048576 -> boot partition offset
512 * 206848 = 105906176 -> root partition offset

Montarla, primero el "disco" y luego la partición de boot:

sudo losetup -o 1048576 /dev/loop0 parabuntu-2016.11.1-hdmi-z7010.img
sudo mount /dev/loop0 /mnt -o ro



$ ls /mnt

build-bootfs.log  devicetree.dtb  parallella.bit.bin  uImage



$ file /mnt/*
/mnt/build-bootfs.log:   ASCII text
/mnt/devicetree.dtb:     Device Tree Blob version 17, size=16056, boot CPU=0,

                         string block size=1436, DT structure block size=14564
/mnt/parallella.bit.bin: data
/mnt/uImage:             u-boot legacy uImage, Linux-4.6.0+, Linux/ARM,

                         OS Kernel Image (Not compressed), 4154760 bytes,

                         Wed Dec  7 12:27:57 2016, Load Address: 0x00008000,

                         Entry Point: 0x00008000, Header CRC: 0x59F2B1F3,

                         Data CRC: 0x1139B491


Con esto conseguimos el bitstream y el devicetree.

Si queremos algo de la partición de root, repetimos tras desmontar:

sudo umount /mnt

sudo losetup -d /dev/loop0

sudo losetup -o 105906176 /dev/loop0 parabuntu-2016.11.1-hdmi-z7010.img

sudo mount /dev/loop0 /mnt -o ro




Y podría llegar hasta "1.7.3 Install openssh-server" pero como no tengo como usarla con teclado y mouse, dead end.



[1] http://seguridad-agile.blogspot.com/2018/05/forzando-brutalmente-md5-presentacion.html

[2] https://www.parallella.org

[3] https://elinux.org/Parallella_Linaro_Nano

[4] https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device

No hay comentarios:

Publicar un comentario