Друзья, начинаю серию статей с подробными объяснениями того, как сделать свое ядро для собственного телефона. Тема этой статьи - компиляция ядра, собственно того что отвечает за работу всей аппаратуры телефона и коммуникации. Текст будет редактироваться, дополняться - пишите, поправляйте, пробуйте! ПодготовкаДля компиляции ядер я использую или Linux (UBUNTU) или Windows Bash UBUNTU под Windows 10. Как настроить все программы я напишу позже (т.к. требует и моей подготовки), сейчас перейду к главному КомпиляцияКомпиляция ядер происходит в 2 этапа + сборка DTB + сборка ядра для прошивки:
Первое что делается, задаются глобальные переменные параметров процессора (ARM или ARM64) и пути к компилятору (набор программам которые преобразуют текст исходного кода в двоичный файл), все это делается командами: export ARCH=arm
Далее компилируем конфигурационный файл, итогом компиляции будет файл $TARGET/.config make O=$TARGET ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE X5PRO_6735m_defconfig
Далее начинаем компиляцию самого ядра make O=$TARGET ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE -j4
По окончании компиляции, у меня он длится около 10 минут, в зависимости от версии ядра и процессора получится несколько файлов - частей будущего файла boot.img или recovery.img и размещаются в папке $TARGET/arch/$ARCH/boot и называются по разному в зависимости от архитектуры и процессора:
Для компиляции файла DTB (DTB - двоичный файл с описанием настроек всего оборудования телефона, DTS - текстовой формат файла DTB) для Qualcomm я дополнительно запускаю команду dtbToolCM -2 -o $TARGET/arch/$ARCH/boot/dtb -s 2048 -p $TARGET/scripts/dtc/ $TARGET/arch/$ARCH/boot/dts/
Для поиска и копирования всех возможно скомпилированных модулей для Qualcomm я использую команду которая ищет файлы по шаблону и копирует в одну папку. find "$TARGET/" -name *.ko -exec cp {} "modules/" \; ПримерыКомпиляция ядра под процессор MTK для телефона DOOGEE X5PRO git clone https://github.com/SnowCat6/DOOGEE-kernel-3.18.git
Компиляция ядра под процессор Qualcomm для телефона Archos 50 Diamond git clone https://github.com/SnowCat6/android_kernel_cyanogen_msm8916.git |
Автор искренне выражает благодарность всем кто словом и материально поддерживает мои проекты.
К сожалению реально помогающих очень мало и каждый хочет схалявничать и получить все задаром.
Реквизиты для благодарности на этой странице.
(c) Все авторские материалы должны быть скопированы на другие ресурсы с указанием ссылки на этот сайт.
Не разрешается размещать прямые ссылки на файлы на других сайтах - указывайте ссылки на страницы этого сайта.
Прошу вас содействовать в наведении порядка!
Основной спонсор проекта моя микрокомпания - "Виртуальный Проект". Если нужен сайт - я сделаю!