Сборка ядра Android для процессоров MTK



Реп: (227)
Сборка ядра Android для процессоров MTK

Разработка ядер и прошивок для устройств на платформе MTK » | Самостоятельная компиляция ядра из исходников » | Инструкция по сборке ANDROID из исходников. » | Сборка TWRP для платформы Qualcomm »

Правила темы
  • В этой теме обсуждается портирование конфигов и драйверов своего аппарата MTxxxx в ядро последней версии.
  • В этой теме не обсуждаются вопросы не относящиеся непосредственно к данной теме(настройка рабочего окружения, поиск драйверов для своего аппарата, вопросы вроде "Что значит Undeclared function?" и так далее, то есть тема создана для людей уже умеющих хотя бы собрать ядро из готовых исходников и разобраться c простыми ошибками при компиляции)
  • В этой теме не стол заказов - здесь Вам помогут советом, но основную работу Вам придется делать самим.

Сообщения, не относящиеся к теме обсуждения (оффтоп), удаляются без предупреждения.


Важно
Убедительная просьба не выкладывать исходники, мануалы и т.п. на другие ресурсы без согласования с пользователем который выложил их на форум. В случае если вы получили согласие, и исходники уже потеряли актуальность, то желательно выкинуть вендорные правки и конфиги.
Часто задаваемые вопросы
В: Могу ли я собрать ядро если производитель не выложил исходники для моего девайса?
O: Ответ на ваш вопрос неоднократно обсуждался, например "Сборка ядра не имея исходников", вы сможете собрать ядро, но придется приложить больше усилий.

В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума...
А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что...


Результаты предыдущих опросов
02.03.2016
Прикрепленное изображение

08.08.2016
Прикрепленное изображение

21.10.2016
Прикрепленное изображение

Исходники MTK Android 4.2
Исходники MTK Android 4.4
Исходники MTK Android 5.x
Исходники MTK Android 6.x

Исходники MTK Android 7.x
Исходники MTK Android 8.x
Исходники MTK Android 9.x
Исходники MTK Android 10
Исходники MTK Android 11
Полезное из обсуждений.
Инструкции
Работоспособность магнитометра
Клонирование проекта
Про сборку 9-10 для проца mt6735p (ну и видимо mt6735m)
Добавляем поддержку aptX кодека в ALPS
Сборка модулей вместе с ядром без альпсов. Инструкция для 8.1 mt6580 (версия ядра 3.18.79)
Гайд, для тех кто хочет достать прошивку тача GSLXXXX
Инструкция по сборке ядра Android (лучшая на 4pda) | или скачать Прикрепленный файлKernel_building.docx.zip ( 90.32 КБ )
Мануал по сборке ядра.
Сборка отдельного модуля / либа / бина.
Пояснения к сборке Андроид 5.х
Инструкция по сборке ядра без использования ПК
Игнорирование ошибок сборки
Мануал по портированию исходного кода ядра 4.2.х -> 4.4.x |
Работа кнопки гарнитуры platform/../../drivers/accdet
Отключение Encryption в Андроид 5.х
Инструкция по добавлению governors & schedulers
Немного по ошибкам сборки
Сборка AOSP с busybox
Компиляция Android 6.0 под Windows в оболчке bash
Перенос стокового dtb на примере mtk67xx
Добавляем поддержку OTA в свою прошивку
Как прикрутить cameracustom от сток 6 на ноугат
Инструкция по восстановлению прошивки тачскрина Synaptics
Инструкция по поднятию тачскринов

Кодген и GPIO
Драйверы
Адаптация драйвера LCM от 3.10.x для запуска на 3.18.x
Как заменить mt65xx_eint на mt_eint, на примере тача.
Как обойти TP-UPGRADE
Зеркальный поворот тач-скрина
sweep2wake на примере драйвера ft5x06
Восстановление прошивки контроллера тача.
Как починить тач gt9xx_2 в 3.10.хх
Настройка тача Goodix
Коррекция смещения в драйвере LCM.
Как запустить обе камеры
Что делать, если вы потеряли исходники libcameracustom?
Разрешения камеры в ALPS от mtk
Решение проблемы зеркальной камеры в исхах МТК
Как заставить работать основную камеру.
Фонарь и вспышка
Чиним аудио на МТК
Как я завел звук, на примере amp_aw8145
Про led-уведомления
Может кому из новичков поможет (LEDS)
Аккумулятор Li-Pol
Поддержка OTG без дополнительного питания
Исправление черных рамок на леденце
Немного про драйвер LCM
доводка драйвера ALSPS на примере LTR559 (mt6582)
Если не грузится gpu Mali.
Reset 8-ми секундным удержанием кнопки "Power": 1 / 2 / 3
Драйвер Focaltech с Double Tap to Wake
Логирование
IDA
Модем
Утилиты и скрипты
Патчи ядра
GitHub
Прочее
Инструменты разработчика


Куратор темы Leo1703, по вопросам актуализации и обновления шапки обращаться в QMS.

Сообщение отредактировал Leo1703 - 17.03.24, 20:05
Причина редактирования: Куратор темы



Реп: (657)
Я пока кроме патча биндера не могу ничего сказать ;) Но патч биндера все знающие видели. Это под СМ11 я так понимаю только. Если посмотреть просто на прошивки от 4.4 видно что там модули не собираются. Соответственно вопросы возникают. Исходники нет нет да появляются под 4.4. Вопрос: Кто то еще пытался совместить исхи 4.2 под 4.4 ?

Сообщение отредактировал Cheshkin - 25.06.14, 14:15



Реп: (227)
Cheshkin @ 25.06.2014, 18:13 *
Это под СМ11 я так понимаю только

Возможно так, официальная прошивка 4.4 для MT6572 на собранном мной ядре с патченным binder.c не запустилась, то есть запускается, но быстро занимает всю свободную оперативную память и в итоге телефон перезагружается. Максимум что получается - начало настройки (Setup Wizard) Доноров для порта CM11 c процессором 6572/82 не нашел, а у 6589 графика другая, успешных попыток запуска не было.



Реп: (227)
Собственно, для чего создавалась эта тема:
В сети уже есть в открытом доступе исходники Android 4.4 от mediatek c ядром версии 3.4.67 Я встречал их по крайней мере на три платформы - 6582, 6592 и новая, еще не вышедшая в свет платформа 6571. Вот(кликабельно) одно из хранилищ на котором их можно найти.
Большинство аппаратов на платформе Mediatek имеют версию ядра 3.4.5 адаптированную под JB 4.2.2 и на многие аппараты уже есть предоставленные производителем либо собранные умельцами исходники соответственно версии 3.4.5. Так вот, в первую очередь интересует перенос своих драйверов в дерево исходников версии 3.4.67 и сборка рабочего ядра с последующим запуском Android KitKat. Во вторую очередь - портирование между платформами, то есть при имеющихся исходниках версии 3.4.67 от mt6582 и исходниках mt6589 версии 3.4.5 собрать ядро версии 3.4.67 для mt6589

Как это сделать (Мое мнение, на правильность не претендую) Перенести папки /mediatek/custom/mtxxxx, /mediatek/custom/проект, mediatek/config/mtxxxx, /mediatek/config/проект и /mediatek/platform/mtxxxx из исходников своего аппарата в исходники из которых будем собирать новое ядро, исправить все ошибки возникающие при компиляции и запустить ядро на телефоне.
Собранное мной по такому алгоритму ядро запускаться категорически отказалось, теперь надеюсь решить вопрос коллегиально.



Реп: (657)
rex_xxx @ 26.06.2014, 07:36 *
Как это сделать (Мое мнение, на правильность не претендую) Перенести папки /mediatek/custom/mtxxxx, /mediatek/custom/проект, mediatek/config/mtxxxx, /mediatek/config/проект и /mediatek/platform/mtxxxx из исходников своего аппарата в исходники из которых будем собирать новое ядро, исправить все ошибки возникающие при компиляции и запустить ядро на телефоне.

вчера скачал фул исходники под 6582 и они... распаковались :) 10 гиг. и это только прошивка. Отдельно идет еще исхи ядра. Увидел там вчера в мейфайле
bootimg, systemimg
Я так понимаю это есть как раз сборка ядра вместе с рам диском ?. Но это можно пока упустить. Рам диск это отдельная история

именно так и планировал начинать перенос исхов. Сегодня будет первая попытка.
вопрос:
Очень важным являются настройки видеоускорителя. У меня он
Видеоускоритель: PowerVR SGX544
. Без его правильного переноса прошивка не стартанет. Ессно как его из проекта правильно перенести ?


Сообщение отредактировал Cheshkin - 26.06.14, 07:39



Реп: (227)
Cheshkin @ 26.06.2014, 11:34 *
Ессно как его из проекта правильно перенести ?

Ну по идее, он в /mediatek/platform/mtxxxx/kernel/drivers/gpu лежит, Мэйкфайлы у него есть, в конфигах твоих он тоже должен быть прописан где-то, так что по идее он должен автоматом подхватиться если ты полностью папку /mediatek/platform/mtxxxx переносишь и указываешь MTK_PATH_PLATFORM=../mediatek/platform/mtxxxx/kernel/



Реп: (2195)
Старая шапка темы

Правила темы
  • В этой теме обсуждается портирование конфигов и драйверов своего аппарата MTxxxx в ядро последней версии.
  • В этой теме не обсуждаются вопросы не относящиеся непосредственно к данной теме(настройка рабочего окружения, поиск драйверов для своего аппарата, вопросы вроде "Что значит Undeclared function?" и так далее, то есть тема создана для людей уже умеющих хотя бы собрать ядро из готовых исходников и разобраться c простыми ошибками при компиляции)
  • В этой теме не стол заказов - здесь Вам помогут советом, но основную работу Вам придется делать самим.
  • Сообщения, не относящиеся к теме обсуждения (оффтоп), удаляются без предупреждения.
Часто задаваемые вопросы
В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума...

А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что...


За цитату спасибо fastchip

Исходники MTK Android 4.4
Исходники MTK Android 5.x
Исходники MTK Android 6.x
Исходники MTK Android 7.x
Исходники модемов
Полезное из обсуждений.
Cерёгa, Инструкция по сборке ядра Android (лучшая на 4pda)
papsi, Мануал по сборке ядра. | Как снять logcat при отсутствии adb
hyperion70, Мануал по портированию исходного кода ядра 4.2.х -> 4.4.x | Небольшая инструкция по github.com | Инструкция по сборке модема MTK
vredniiy, Как заменить mt65xx_eint на mt_eint, на примере тача.
niorix, Сборка отдельного модуля / либа / бина.
Cheshkin, Как обойти TP-UPGRADE | Решение проблемы зеркальной камеры в исхах МТК | Чиним аудио на МТК | Про sepolice | Про TWRP 3.0.x-x
ANDR7E, Как заставить работать основную камеру. | Программа Device Info
Zormax, Если не грузится gpu Mali. | Работа кнопки гарнитуры platform/../../drivers/accdet | Пояснения к сборке Андроид 5.х | Отключение Encryption в Андроид 5.х | CM12.1_6582
Zormax, Проект СМ13 / AICP11 для mt6582 | Reset 8-ми секундным удержанием кнопки "Power": 1 / 2 / 3 | Автоматическое логирование в init.rc
Zyomich, Инструкция по добавлению governors & schedulers
oleg.svs, Утилита DeviceInfoMTK_01.apk | DeviceInfoMTK_1.1.apk | Зеркальный поворот тач-скрина
4Fwolf, Коррекция смещения в драйвере LCM. | Как запустить обе камеры | Фонарь и вспышка
croc2008, Доработка и редактирование LCM драйвера экрана | Ставим IDA | Поиск таблицы LCM в ядре | Дизассемблирование ядра 64-бит
Mike9966, Аккумулятор Li-Pol.
Adryy, Восстановление прошивки контроллера тача.
SevenMaxs Доки по MTK Linux-3.10.XX
lingfude Игнорирование ошибок сборки
ariafan, Размер шрифта в Boot mode menu | Исправление черных рамок на леденце | Скрипт сборки прошивки (Андроид >=5.0) | Немного по ошибкам сборки
andreya108, Про led-уведомления | Включение ADB в ramdisk
AjlekcaHgp MejlbHukoB, Ещё один способ "вытащить" GPIO.
SnowCatPDA, Программа, отслеживает изменения в настройках GPIO. GPIOGraph (NEW!) | Мини-инструкция к программе | Немного про драйвер LCM | Сборка AOSP с busybox
SnowCatPDA, Скрипт для декодирования бинарных данных в вид для таблицы LCM | Компиляция Android 6.0 под Windows в оболчке bash | Как вставлять модем в сборку андроида
SnowCatPDA, Сборка модема для Андроид 7.0
valik1410valik, Патчи ядра с 3.10.72 до 3.10.85
qus1, sweep2wake на примере драйвера ft5x06
vo-1, Как починить тач gt9xx_2 в 3.10.хх | Разрешения камеры в ALPS от mtk
slfl, Скрипт сборки ядра (VERSION = 3.10 +)
Anomalchik, Перенос стокового dtb на примере mtk67xx
assusdan, Как вытащить параметр lcm_get_params
Dеepflex, CM 12.1 для mt6753
junari, Может кому из новичков поможет
LazyC0DEr, Реверсим lk.bin | Как получить kallsyms из zImage | Ищем GPIO_PIN на примере Sound_Speaker
эйТЫ, Патч ядра с 3.4.67 до 3.4.111
sergbuser, Настройка тача Goodix
AlexXXX12389, Многотомные архивы
ser1933066, MediatekAndroidDevelopers 6.0.1 для mt6752 и mt6735 CM, PA, AICP
Creeplays, Multi GPIO Util 13000 | LK.BIN parser
SeriniTY, доводка драйвера ALSPS на примере LTR559 (mt6582)
djextremes, Как я завел звук, на примере amp_aw8145 | Как вытащить отдельную папку с github
Инструменты разработчика


Сообщение отредактировал hyperion70 - 26.10.16, 21:42



Реп: (657)
hyperion70 @ 26.06.2014, 09:03 *
файловая система у mt6582/mt6572 она другая.


это какая ? F2FS ?
не соглашусь. Сейчас у меня включен F2FS в ядре. Вчера по этому поводу общались с SevenMaxs-ом.. Ничего в этом страшного нет. Но + 1 проблема точно будет. Необходимо будет собрать еще дополнительно часть необходимых бинов + измененный рамдиск.
а почему ты решил что 6592 файловая система как ? ладно )) распакую 6592 )) Давайте тогда уж определимся какую основу берем.. раз будем делать одно и тоже ? в сети пока только их две. И вряд ли будет больше. Если конечно турки не поделятся на 6589 ))
Отписывайтесь.

Сообщение отредактировал Cheshkin - 26.06.14, 08:24



Реп: (227)
Cheshkin @ 26.06.2014, 12:09 *
в сети пока только их две.

В сети их три - есть еще 6571, в плане 6589 я вам не помощник, работаю с 6572. Хотя у МТК исходники как я понял универсальные, так что если получится на одной платформе собрать ядро, то по такому же принципу можно пробовать и другие платформы.



Реп: (1171)
Cheshkin @ 26.06.2014, 09:09 *
Необходимо будет собрать еще дополнительно часть необходимых бинов + измененный рамдиск

Всем здравия!
Действительно для работы с F2FS не достаточно просто kernel с поддержкой данной ФС:
необходимы еще бинарники mkfs.f2fs, fsck.f2fs и fibmap.f2fs, а также в ramdisk указать, и если быть точнее в init.rc и возможно в meta.init.rc, какие разделы будут иметь данную fs...
В основном это /data и /cache
Еще нужно посмотреть будет ли нужен драйвер f2fs.ko :drag:



Реп: (227)
* sevenmaxs, А переформатировать разделы в ext4 не получится?



Реп: (1171)
* rex_xxx,
Конечно получится, необходимое рекавери с поддержкой f2fs я без всяких проблем скомпилирую.
На данный момент с f2fs рабатает TWRP начиная с версии 2.7.1.0 и PhilZ Touch начиная с версии 6.47.7.
Этими мод рекавери можно конвертировать разделы из f2fs в ext4 и наоборот.

Сообщение отредактировал sevenmaxs - 26.06.14, 09:03
Причина редактирования: Дополнил



Реп: (657)
По идее:
можно собрать ядро. Проверить в прошивке 4.4 от другого тела.
Кстати.. можно попробовать омниром собрать из исходников. Я так понимаю у них то поддержка 2-х симок то включено. Но это можно сделать при наличии ядра.



Реп: (2195)
Исходные коды Android и Kernel для МТ6592

Яндекс:
ALPS.KK1.MP1.V2.10_BIRD92_CWET_A_KK_INHOUSE
ALPS.KK1.MP1.V2.10_BIRD92_CWET_A_KK_KERNEL

Сообщение отредактировал hyperion70 - 24.09.16, 21:18



Реп: (657)
Начинаем импорт исходников. Те кто не понимает мои слова прошу не теребите глупыми вопросами ;) Для тех кто в теме...поехали:
1. скажу важное замечание. Для формирования ВАЖНЫХ (ptgen. emigen) инклудов и т.д. сборку НАДО осуществлять ч/з makeMtk n k
2. Распоковали 6592 исходиник
3. Берем своим исходники.
4. Допустим наш конфиг подходит для 44
5. Копируем папку (проект) в паку конфиг
6. Копируем папку mt6589 в конфиг. Закончили.
7. Далее копируем папку mt6589 в папку custom
8. Копируем папку (проект) в папку custom
9. Копируем папку common c заменой в custom. Закончили.
10. Смотрим папку mediatec/build/tools/emigen/mt6589 правим (не спрашивайте..кто собирал на 6589 должен знать что это ) :) Если в кратце это форумируется скаттерт файл ебр ебр2 итд
11 Смотрим папку mediatec/build/tools/ptgen/6589 правим (не спрашивайте..кто собирал на 6589 должен знать что это ) :) Это у нас память
12 Копируем папку mediatec/platform/mt6589
13 возвращаемся в корень папки исходников 44.
14. создаем файл makeMtk.ini
project = wiko
build_mode = eng
где wiko это проект у каждого свой.
15. правим mbldenv.sh Например:
#PATH=/mtkoss/jdk/1.6.0_45-ubuntu-10.04/x86_64/bin:$PWD/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin:$PWD/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin:$PWD/prebuilts/misc/linux-x86/make:$PATH
export CROSS_COMPILE=~/android_tools/toolchains/linaro_toolchains_2014-2014.05/arm-linux-gnueabi-linaro_4.9.1-2014.05/bin/arm-linux-gnueabi-
export PATH

яву не трогаем нафиг не надо. Правим только тулчайн.
16. запускаем по ./makeMtk n k
видим первую ошибку
kernel_dep_rule.mak
# eeprom feature dependency
ifneq ($(strip $(CUSTOM_KERNEL_EEPROM)),$(strip $(CUSTOM_HAL_EEPROM)))
$(call dep-err-seta-or-setb,CUSTOM_KERNEL_EEPROM,$(CUSTOM_HAL_EEPROM),CUSTOM_HAL_EEPROM,$(CUSTOM_KERNEL_EEPROM))
endif

#ifneq ($(strip $(CUSTOM_KERNEL_EEPROM)),$(strip $(CUSTOM_HAL_EEPROM)))
# $(call dep-err-seta-or-setb,CUSTOM_KERNEL_EEPROM,$(CUSTOM_HAL_EEPROM),CUSTOM_HAL_EEPROM,$(CUSTOM_KERNEL_EEPROM))
#endif
#ifeq ($(strip $(BUILD_KERNEL)), yes)
# ifeq ($(strip $(LINUX_KERNEL_VERSION)), )
# $(call dep-err-common, Please turn off BUILD_KERNEL or choose LINUX_KERNEL_VERSION)
# endif
#endif

пока так. Потом подумаем над тем что сделали :D
17. опять .makeMtk n k Обратите внимание на логи. В окне вы их не увидете. они формируются в папке out.
Ошибка
make: *** Нет правила для сборки цели `out/target/product/wiko/MT6589_Android_scatter_emmc.txt', требуемой для `mediatek/misc/ota_scatter.txt'. Останов.
Дальше думаем как исправить. Предлагаю шаги дописывать за мной. Править мои. Так по теме в будущем будет проще. Не ленитесь писать как исправили ту или иную ошибку. Поможем друг другу. Задача пока такая: собрать ядро. Дальше будем думать.
P.S. В логах ошибку намного проще искать.
P.S.S. папку mediatec/kernel/drivers/combo пока не трогаем.



Сообщение отредактировал Cheshkin - 27.06.14, 08:39



Реп: (315)
У меня mt6577 и mt6620 че мне ближе будет? 82 или 92?



Реп: (2195)
* Cheshkin, странно - у меня MT6589_Android_scatter_emmc.txt, EBR1, EBR2, MBR - собрались без ошибок. Но вылезло то, чего не ждал!
mediatek/custom/wiko/kernel/dct/dct/codegen.dws
Fail to gen code!
GPIO_CTP_PD_PIN
variable name does not exist
Please Check /alps/mediatek/custom/.../kernel/dct/dct/codegen.dws and GPIO setting!
Gencode GPIO Setting have existed invalidate variable name.

Я ж его (котоген) править не умею, он же мне готовый достался...
На GPIO ругается почему то, очень странно. Хотя я по драйверам еще не проверял, скорее всего подмена - надо "новый" ProjectConfig.mk посмотреть.



Реп: (657)
* hyperion70,
нет. Где то я что то упустил. И еще вот что.
попробуй из kernel запусти make menuconfig
Я вроде запустил. Но сборка ядра не старует. постоянно выходит екперементаль что то там бла бла
на сборке ядра
scripts/kconfig/conf --silentoldconfig Kconfig
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/kconfig/conf --silentoldconfig Kconfig

и так далее

Сообщение отредактировал Cheshkin - 27.06.14, 20:35



Реп: (227)
Cheshkin, я так понял, это из-за измененных мэйкфайлов, *.mk и прочих.
Есть идея сравнить папки mediatek 6582 jb и кк и попробовать перенести изменения в свое дерево.



Реп: (657)
* rex_xxx, возможно. Только каких мейкфайлов. По идее виновата папка платформ. там я думаю проблема с конфигом. В 6592 есть файл в конфиге platform. Раньше его не было совсем. А 6582 он есть.?
Сравнивать медиатек? драйвера? зачем? тут я думаю надо сравнивать платформ..

Сообщение отредактировал Cheshkin - 28.06.14, 06:54



Реп: (227)
Cheshkin, у меня в исходниках jb описание платформы в mediatek/kernel/Kconfig лежало, сейчас его в Platform перенесли

Куратор: Leo1703

Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 19.03.24, 13:43