Arm
А в этой статье речь пойдет о том как сделать bootstrapping для дистрибутива и начать собирать софт для платформы armv7l.
Выбор пал на armv7l, потому что:
1. Arm-девайсы это мировой тренд, практически все устройства, которые человек носит в кармане, базируются на процессорах arm.
2. У меня в офисе нет ничего другого кроме планшетов с двухядерными Nvidia Tegra2 [1]
По умолчанию вендор поставляет свои планшетники и платы с предустановленным android на борту.
В моем случае установлена любительская сборка, так как довольно часто они работают
значительно лучше и быстрее, чем официальные поделки.
Первая прошивка была взята отсюда:
http://teamdrh.com/archives/development-news-archive/43-team-drh-jb-alpha-52
По инструкции сначала предлагают прошить вот этот файл
http://teamdrh.com/DRH-Downloads/TeamDRH_350M_Prep.zip
Суть в том что он содержит, бутлодер для платы, правила для nvflash, разметку диска и самое важное это данные о том сколько плата "увидит" памяти. Никакие эксперименты с подменой значений и подстановкой других бутлодеров не помогли увеличить память до 1гб, пока не прошился на официальную прошивку.
Взять можно отсюда http://narod.ru/disk/32579241001/Official%2BClockWorkMod.zip.html
Прошиваем ее примерно такой командой: ./nvflash --bct 1004_1gb.bct --setbct --bl bootloader.bin --configfile android_fastboot_full.cfg --odmdata 0xbb0c0011 --create --go После этого планшетка увидит нужны гигабайт памяти.
Далее нужно запустится в Recovery режим и выполнить вот такие команды export SDPATH=/dev/block/mmcblk3 sdparted -es 15500 -ss 64 -efs ext3 -s Первая укажет путь к внутренней флеш памяти, а вторая создаст раздел /data/ размером 15500мб и раздел swap в 64 mb (больше не стоит).
Можно начинать смело процесс прошивки
После следует включить adb, выставить частоту ядра на 1.2ггц.
И довести /etc/systctl.conf до примерно такого состояния:
vm.min_free_kbytes = 0 vm.swappiness = 20 vm.vfs_cache_pressure = 5 vm.dirty_background_ratio = 70 vm.dirty_ratio = 90 #optional if you want to try it :) vm.oom_kill_allocating_task = 0
Больше всего интересует эта опция
vm.oom_kill_allocating_task = 0
Она отключает oom для процессов, что сильно жрут память, процессор. Иначе никакой компиляции не получится, потому что компилятор как раз занимает и память и процессор.