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
5 Reemplace este sistema de archivos de Linux con el sistema de archivos de Android Linux
rm -rf
cp -r
6. línea de comandos cmdline.txt
Edite
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> 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 p>
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) p>
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 p>
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
cp -r
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;