
estoy siguiendoesta guíapara instalar un entorno ARM virtual en Ubuntu.
- Instalé los paquetes linaro y qemu:
sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get install linaro-image-tools qemu-user-static qemu-system
- Compiladores cruzados:
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
- Descargué una versión de Linaro y un paquete de hardware:
wget http://releases.linaro.org/platform/linaro-n/nano/alpha-3/linaro-natty-nano-tar-20110302-0.tar.gz
wget http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
- Creó una imagen de disco de VM:
linaro-media-create --image_file vexpress.img --dev vexpress \
--binary linaro-natty-nano-tar-20110302-0.tar.gz \
--hwpack hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
estoy fallando enExtrayendo el kernel y el initrd. Las instrucciones dicen que ejecute:
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } /partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
Pero recibo el error:
montaje: no se pudieron analizar las opciones de montaje
Hay una nota en la guía que dice:
Los nombres reales de los archivos pueden variar ligeramente en su compilación.
Entonces, ¿alguien sabe cómo modificar esta última línea para que quepa en Ubuntu?
Respuesta1
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } \
/partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
Lo que hace el comando anterior es realmente simple: encuentra el sector inicial de la partición 2 de la imagen vexpress.img
, lo multiplica por 512 y toma el resultado como desplazamiento para montarlo como un dispositivo de bucle.
El mount
comando acepta el valor de compensación enbyte. Cada sector tiene 512 bytes, por lo que multiplicar el desplazamiento del sector inicial por 512 dará el desplazamiento inicial en bytes.
Aquí hay una forma alternativa de hacer esto: (tomo una imagen raspbian sin formato como ejemplo)
Encuentra el desplazamiento:
$ fdisk -lu 2016-09-23-raspbian-jessie-lite.img Disk 2016-09-23-raspbian-jessie-lite.img: 1.3 GiB, 1389363200 bytes, 2713600 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: 0x5a7089a1 Device Boot Start End Sectors Size Id Type 2016-09-23-raspbian-jessie-lite.img1 8192 137215 129024 63M c W95 FAT32 (LBA) 2016-09-23-raspbian-jessie-lite.img2 137216 2713599 2576384 1.2G 83 Linux
El desplazamiento inicial de la partición dos es 137216
. Al igual que su vexpress.img
partición 2, es la partición raíz que nos interesa.
Matemáticas simples:
$ perl -e "print 137216*512" 70254592
Móntalo:
sudo mount -o loop,offset=70254592 vexpress.img /mnt/tmp