Дано: андроид приставка М8 с s812 на борту, плата M8 V8_8 20150923, прошивка k200.bcm4335.2015.201510211111 (U-boot-00000-g92ff5df-dirty(m8_n200C_v1@) (Oct 21 2015 - 10:20:19)).
Задача: сделать двойную загрузку линукс/андроид с минимальными затратами.
Проект в стадии реализации прерван...
Что нужно...
кусок Uboot лога:
простая консоль на последовательный порт для отладки (в initramfs):
/bin/sh -i </dev/ttyS0 >/dev/ttyS0 2>&1
Задача: сделать двойную загрузку линукс/андроид с минимальными затратами.
Проект
Что нужно...
- Берем исходники ядра и компонентов с http://openlinux.amlogic.com:8000/download/ARM/, (хотя можно попробовать с родным ядром просто изменив строку параметров ядра.). Родной конфиг и дерево устройств DTS можно легко добыть из родной прошивки или из дампа раздела boot.
- Собираем ядро в формате uImage. Примерный порядок действий http://www.cnx-software.com/2014/03/10/amlogic-gpl-source-code-release-kernel-3-10-u-boot-and-drivers-wi-fi-nand-tvin-mali-gpu/
- Создаем recovery.img. (например так mkbootimg --kernel uImage --ramdisk ramdisk.gz --second myboard.dtb --base 10000000 --pagesize 2048 -o recovery.img)
- SD карту разбиваем на два раздела, первый (20-30мб) форматируем fat32 и кидаем туда recovery.img, второй делаем ext4 и развертываем туда любимый linuxroot.
- Грузимся с зажатой кнопкой для восстановления - должно загрузится новое ядро.
кусок Uboot лога:
update by key...
Enter USB burn
Try connect time out 1001, 1000, 1318
sdio_detect return 1
[mmc_init] SDIO Port B:0, if_type=7, initialized OK!
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: ran Speed: 20000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 2028994560
Boot Part Size: 0
Bus Width: 4-bit
** Unable to open "aml_sdc_burn.ini" from mmc 0:1 --- file not exist**
reading aml_autoscript
** Unable to read "aml_autoscript" from mmc 0:1 **
enter recovery
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: ran Speed: 20000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 2028994560
Boot Part Size: 0
Bus Width: 4-bit
reading recovery.img
6811731 bytes read
## ANDROID Format IMAGE
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.10.33
Image Type: ARM Linux Kernel Image (lzo compressed)
Data Size: 6784865 Bytes = 6.5 MiB
Load Address: 00208000
Entry Point: 00208000
Verifying Checksum ... OK
Ramdisk start addr = 0x12679000, len = 0x427
Flat device tree start addr = 0x12679800, len = 0x547a magic=0xedfe0dd0
Uncompressing Kernel Image ... OK
простая консоль на последовательный порт для отладки (в initramfs):
/bin/sh -i </dev/ttyS0 >/dev/ttyS0 2>&1