Red de conocimiento informático - Material del sitio web - Cómo grabar Android Linux en Raspberry Pi y su depuración

Cómo grabar Android Linux en Raspberry Pi y su depuración

1. Guía de introducción a Raspberry Pi.

Puedes descargar el asistente de Raspberry en la siguiente dirección

2. Construye el framework de Android

El comando es el siguiente:

cd

source build/envsetup.sh

almuerzo

El menú del almuerzo se muestra de la siguiente manera:

Estás construyendo en Linux

Menú de almuerzo… elige un combo:

1. full-eng

2. simulador

4. full_rpi-eng

5. cyanogen_generic-eng

6. cyanogen_rpi-eng

Seleccione el sexto menú.

Luego compila

make -j8

Espera a que la compilación se realice correctamente, lo que puede tardar decenas de minutos.

Después de una compilación exitosa, copie el directorio "sistema" al directorio raíz, que podemos usar a continuación.

El comando es el siguiente:

cd

cp -r system out/target/product/rpi/root

ps: si la versión de jdk es incorrecta durante la compilación, puede cambiarla a jdk1.6

5. ¿Cómo ejecutar el kernel de Linux de Android en Raspberry Pi?

1. Prepare una tarjeta SD con un espacio de almacenamiento superior a 2G y un lector de tarjetas correspondiente.

2. Descargue el archivo de imagen de Arch Linux

Utilice la herramienta wget para descargar el archivo de imagen:

wget /c1410/images/archlinuxarm/archlinux-hf -2012-09-18/archlinux-hf-2012-09-18.zip

Descomprimir:

descomprimir archlinux-hf-2012-09-18.zip

Éxito Luego, encontrará un archivo de imagen en el directorio actual.

3. Grabe el archivo de imagen de Linux.

sudo dd bs=4M if=archlinux-hf-2012-09-18.img of=/dev/sdb

sudo sync

ps:/ dev/sdb es el archivo del dispositivo de la tarjeta SD en el host. Puede variar de una computadora a otra.

4. Reemplace este kernel con el kernel de Linux de Android.

Después de completar los pasos anteriores, cuando insertes la tarjeta SD en tu computadora, encontrarás que hay dos particiones: una es el área de arranque y la otra es el área del sistema de archivos.

Reemplace kernel.img en el área de arranque con el kernel de Linux de Android.

cp -uv /arch/arm/boot/zImage /kernel.img

5 Reemplace este sistema de archivos de Linux con el sistema de archivos de Android Linux

rm -rf

cp -r /out/target/product/rpi/root/*

6. línea de comandos cmdline.txt

Edite /cmdling.txt y reemplace “init=/…” con “init=/init”

7. Este kernel de Android Linux se puede ejecutar en Raspberry Pi.

6. Cómo crear una tarjeta SD de arranque para Android Linux

1. Elimine la partición existente, si no hay partición, no es necesario eliminarla.

Comando(m para ayuda):p

Disco /dev/sdb: 15,7 GB, 15707668480 bytes

64 cabezales, 32 sectores/pista, 14980 cilindros , total 30668085 sectores

Unidades = sectores de 1 * 512 = 512 bytes

Tamaño del sector (lógico/físico): 512 bytes / 512 bytes

I/ Tamaño O (mínimo/óptimo): 512 bytes/512 bytes

Identificador de disco: 0×00000000

sudo fdisk/dev/sdb

Comando(m para ayuda):d

Número de partición(1-4):1

Comando(m para ayuda):d

Partición seleccionada 2

Comando (m para ayuda): p

Disco /dev/sdb: 15,7 GB, 15707668480 bytes

64 cabezales, 32 sectores/pista, 14980 cilindros, total 30679040 sectores

Unidades = sectores de 1 * 512 = 512 bytes

Tamaño del sector (lógico/físico): 512 bytes / 512 bytes

Tamaño de E/S (mínimo/ óptimo): 512 bytes / 512 bytes

Identificador de disco: 0×00000000

Arranque del dispositivo ?Inicio Fin ?Bloques ?Id ?Sistema

Comando(m para ayuda):w

ps: después de confirmar la eliminación, retire la tarjeta SD y luego instálela nuevamente.

Anota el tamaño de la tarjeta SD en bytes. Se utilizará en los siguientes pasos.

Luego ingresa en “Modo Experto”.

Comando(m para ayuda):x

Configure esta tarjeta SD en 255 lados magnéticos, 63 sectores y el número de columnas magnéticas (diferentes tarjetas SD/mmc tienen diferentes (número de cabezas)

Comando experto (m para ayuda): h

Número de cabezas (1-256, predeterminado 64): 255

Comando experto (m para ayuda): s

Número de sectores (1-63, predeterminado 32): 63

ps: antes de comenzar con el siguiente paso, primero debe calcular el número de columnas magnéticas. proceso de cálculo de la siguiente manera:

B: El tamaño de la tarjeta SD en bytes (ya recordado: 15707668480)

C: El número de columnas magnéticas

C =B/255/63/512

Por ejemplo: el tamaño de mi tarjeta SD es 16G (15707668480)

C=15707668480/255/63/512=1909.68191721, que es aproximadamente igual a 1909.

Comando experto (m para ayuda): c

Número de cilindros (1-1048576, predeterminado 14980): 1909

Comando experto (m para ayuda): r

2. Cree una nueva partición

Si su tarjeta SD ha sido particionada, siga los pasos anteriores para eliminar la partición. A continuación, crearemos dos particiones, una es el área de inicio para almacenar archivos como imágenes del kernel; la otra es el área del sistema de archivos para almacenar el sistema de archivos de Android Linux.

Comando (m para ayuda): n

Tipo de partición:

p ? primaria (0 primaria, 0 extendida, 4 libres)

e ? extendido

Seleccionar (p predeterminado): p

Número de partición (1-4, predeterminado 1):

Usando el valor predeterminado 1 p>

Primer sector (2048-30679039, predeterminado 2048):

Usando el valor predeterminado 2048

Último sector, +sectores o +tamaño{K,M,G } (2048-30679039, predeterminado 30679039): +128M

Comando (m para ayuda): t

Partición seleccionada 1

Código hexadecimal (escriba L para códigos de lista): c

Se cambió el tipo de sistema de partición 1 a c (W95 FAT32 (LBA))

Comando (m para ayuda): a

Partición número (1-4): 1

Comando (m para ayuda): n

Tipo de partición:

p primaria (1 primaria, 0 extendida, 3 gratis )

e ? extendido

Seleccionar (p predeterminado): p

Número de partición (1-4, 2 predeterminado):

Usando el valor predeterminado 2

Primer sector (264192-30679039, predeterminado 264192):

Usando el valor predeterminado 264192

Último sector, +sectores o +tamaño {K,M,G} (264192-30679039, predeterminado 30679039):

Usando el valor predeterminado 30679039

Comando (m para ayuda): w

El ¡La tabla de particiones ha sido alterada!

Llamando a ioctl() para volver a leer la tabla de particiones.

ADVERTENCIA: Si ha creado o modificado algún DOS 6.x

particiones, consulte la página del manual de fdisk para obtener

información adicional.

Sincronización de discos.

ok, la partición se realizó correctamente, ahora tenemos dos particiones. continuemos Formatee la partición.

3. Formatee la partición

Formatee el área de arranque:

sudo mkfs.msdos -F 32 /dev/sdb1 -n BOOT

mkfs.msdos 3.0.12 (29 de octubre de 2011)

Formatee el área del sistema de archivos:

sudo mkfs.ext3 /dev/sdb2 -L ROOTFS

mke2fs 1.42 (29 de noviembre de 2011)

Etiqueta del sistema de archivos=ROOTFS

Tipo de sistema operativo: Linux

Tamaño de bloque=4096 (log= 2)

Tamaño del fragmento=4096 (log=2)

Stride=0 bloques, ancho de franja=0 bloques

950976 inodos, 3801856 bloques

190092 bloques (5,00%) reservados para el superusuario

Primer bloque de datos=0

Bloques máximos del sistema de archivos=3896508416

117 grupos de bloques

32768 bloques por grupo, 32768 fragmentos por grupo

8128 inodos por grupo

Copias de seguridad de superbloques almacenadas en bloques:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Asignar tablas de grupo: hecho

Escribir tablas de inodo: hecho

Crear diario (32768 bloques): hecho

Escribir superbloques e información de contabilidad del sistema de archivos: hecho

4 Configurar el área de inicio

El área de inicio debe contener los siguientes archivos, que puede obtener del sitio oficial. La imagen (partición de arranque/fat32) también se puede copiar desde los pasos escritos:

bootcode.bin: el programa de arranque de segunda etapa,

loader.bin: el arranque de tercera etapa programa,

start.elf: imagen de firmware binario de GPU,

archivo de imagen del kernel del sistema operativo kernel.img,

cmdline.txt: parámetros pasados ​​al kernel .

5. Establezca la partición del sistema de archivos raíz

La partición ROOTFS contiene el sistema de archivos de Android, que se copia desde /out/target/product/rpi/root.

cp -r /out/target/product/rpi/root/* /media/ROOTFS/

6. Pi Corre hacia arriba.

7. ¿Cómo usar adb en Raspberry Pi?

1 Verifique la red

Cuando Android Linux se esté ejecutando en Raspberry Pi, cambie a la consola y ejecute el siguiente comando:

ifconfig eth0

Anote la dirección IP.

Si no encuentras la IP, puedes ingresar el siguiente comando: /system/xbin/dhcp-eth0 para iniciar el programa de conexión de red.

ps: Si la consola no aparece en la pantalla, simplemente presione CTRL+ALT+F2 para cambiar a la consola. Si desea cambiar a la interfaz de Android, simplemente presione CTRL+ALT+F7.

2. Conéctese de forma remota al servidor adb

Ejecute el siguiente comando en el host para conectarse a la Raspberry Pi en la misma LAN

adb connect ip

Después de que la conexión sea exitosa, puede usar la herramienta adb para generar registros, ejecutar comandos de shell, etc.

3. También puede utilizar un cable de datos para conectarse al host y depurar directamente en el host.

El comando para ingresar a la depuración es:

screen /dev/ttyUSB0 115200

Explicación del término:

Compilación cruzada: compilación cruzada En pocas palabras, es generar código ejecutable en una plataforma en otra plataforma. Lo que hay que señalar aquí es que la llamada plataforma en realidad incluye dos conceptos: arquitectura y sistema operativo. La misma arquitectura puede ejecutar diferentes sistemas operativos; de manera similar, el mismo sistema operativo también puede ejecutarse en diferentes arquitecturas. Por ejemplo, la plataforma Linux x86 a la que a menudo nos referimos es en realidad el nombre colectivo de la arquitectura Intel x86 y Linux para el sistema operativo x86 y la plataforma x86 WinNT es en realidad la abreviatura de la arquitectura Intel x86 y Windows NT para el sistema operativo x86;