Arm

Материал из Rosalab Wiki
Перейти к: навигация, поиск

А в этой статье речь пойдет о том как сделать bootstrapping для дистрибутива и начать собирать софт для платформы armv7l.

Выбор пал на armv7l, потому что:

1. Arm-девайсы это мировой тренд, практически все устройства, которые человек носит в кармане, базируются на процессорах arm.

2. У меня в офисе нет ничего другого кроме планшетов с двухядерными Nvidia Tegra2 [1]


VSrdaVM22tY.jpg


По умолчанию вендор поставляет свои планшетники и платы с предустановленным 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 для процессов, что сильно жрут память, процессор. Иначе никакой компиляции не получится, потому что компилятор как раз занимает и память и процессор.