Исходники MTK. Сборка. Обсуждение.

Прошивки и их моды\ Кухни\ Игры и приложения\ Различные настройки\ Различные вопросы по ОС Android и WM и т.п.

Модераторы: Lunat, pvsurkov, AlexG1, KSAT

Куратор темы: clarc

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#1 » linerty » 05 ноя 2012, 21:00

Здесь не бюро заказов. Советом помочь можем, если есть интерес... Не хочется заниматься самому - договаривайтесь...
Рекомендуется прочесть ВСЮ тему от корки до корки. Тогда у вас появится половина знании о сборке ядер на МТК


ПроцессорУстройствоИсходное сообщениеРезерв 1gitСостав
MT6516Alcatel OT890Наш форумЗеркало 1Только ядро, урезано.
MT6573Alcatel 918DНаш форум, XDA   Зеркало 1 Только ядро, урезано.
MT6575AcerНаш форумЗеркало 1Только ядро.
MT6577Huawei U8836DНаш форумЗеркало 1Зеркало 2Только ядро, урезано.
MT6589Fly IQ446 MagicНаш форумТолько ядро, полные

 Нормальные исходники, с огромным кол-вом драйверов

Инструкции:
Инструкция по сборке ядер для MTK(4pda)
Инструкция по сборке ANDROID из исходников (4pda)
Инструкции по сборке прошивки для MT65*3 (forum.china-iphone.ru)
Подробная инструкция по сборке boot.img для MT6575 (Philips W732). Читать от сообщения и дальше!!! + Набор готовых исходников https://github.com/Demeterp/w732_kernel_src (3.0.13)
Исходный код 3.4.67 (mt6577) можно скачать тут, выбирайте платформу поближе к своей.
Исходный код 3.4.5 (mt6577), полностью собираемый и полностью рабочий тут
Исходники ядра Philips Xenium W8510 (MT6589) от китайцев
 Полезное из обсуждения (обновлено 13 января 2015)

 Архив
Последний раз редактировалось clarc 14 июл 2015, 23:46, всего редактировалось 43 раз(а).
  • 40

Аватара пользователя
linerty

Суперкуратор
 
Сообщения: 3442
Зарегистрирован: 25 фев 2011, 09:39
Репутация: 4401

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#61 » Demeter » 18 дек 2012, 16:22

Обнаружен мегакосяк ;)

Мой модуль не принимает инфу о входящем звонке, соответственно если вы таки его загрузите, то принять/отбить звонок гарнитурой не получится...
Оригинальный accdet драйвер создает устройство /dev/accdet в которое кто-то пишет инфу о входящих звонках.

Кто этот кто-то?
Ну или как узнать состояние звонка из С-шного кода (входящий, в процесс и т.п.)?

Добавлено спустя 3 часа 6 минут 42 секунды:
Мдя. В общем для себя я этот косяк поправил написанием личного KeyTest, который говорит драйверу когда звенит звонок.
Да еще, чтоб оно работало после
insmod /sdcard/accfix.ko
надо сделать
chmod 777 /dev/accfix
Но это конечно порнография.... Пардон, если кто надеялся на рабочее решение...
Вложения
accfix.ko_v5_call.zip
(74.42 КБ) Скачиваний: 51
KeyTest.apk.zip
(172.97 КБ) Скачиваний: 42
  • 3

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#62 » michфуд » 18 дек 2012, 19:55

Demeter
не расстраивайся. 99% и я в том числе даже не поняли о чем ты :-) - но уверены что в следующий раз точно получится!
  • 1

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3325

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#63 » cure72 » 18 дек 2012, 20:36

Demeter
Ща потестю (всё исчо на 2.3.6 :-) )
Отпишу.

Добавлено спустя 9 минут 42 секунды:
Отписываю :-)
Результат тот-же ,+ кейтест ты откомпилил по ходу под четверку онли :-)
Lenovo A750
Прошивка - сток s150
«Не партии будут служить народу, а народ — партиям. Уже теперь… в деле народа упоминается одно лишь его имя, а вершат дела партии»© Н.И.Махно 1918 год
  • 0

Аватара пользователя
cure72
Гуру
 
Сообщения: 1402
Зарегистрирован: 18 мар 2012, 01:41
Откуда: SPb
Репутация: 253

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#64 » Demeter » 18 дек 2012, 22:41

cure72 писал(а) on 18 дек 2012, 20:46:Результат тот-же ,+ кейтест ты откомпилил по ходу под четверку онли :-)

Кейтест перекомпилить не проблема, а можешь какой-нибудь модуль *.ko из /system/lib/modules из твоего 2.3.6 телефона приаттачить, чтоб я его modinfo ткнул?

На моей старой мотороле что-то такое было
vermagic: 2.6.32.9 preempt mod_unload ARMv7
  • 0

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#65 » cure72 » 18 дек 2012, 23:08

Demeter
Не вопрос.
Вся папка modules (Lenovo A750 2.3.6 s150)
modules.zip
(746.46 КБ) Скачиваний: 21
Lenovo A750
Прошивка - сток s150
«Не партии будут служить народу, а народ — партиям. Уже теперь… в деле народа упоминается одно лишь его имя, а вершат дела партии»© Н.И.Махно 1918 год
  • 0

Аватара пользователя
cure72
Гуру
 
Сообщения: 1402
Зарегистрирован: 18 мар 2012, 01:41
Откуда: SPb
Репутация: 253

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#66 » Demeter » 18 дек 2012, 23:25

cure72 писал(а) on 18 дек 2012, 23:08:Demeter
Не вопрос.
Вся папка modules (Lenovo A750 2.3.6 s150)
Вложение modules.zip больше недоступно

Чудеса какие - 2.6.35.7. Версия.
Вложения
accfix.ko_v5_2635.zip
(74.41 КБ) Скачиваний: 15
KeyTest.apk_236.zip
(172.98 КБ) Скачиваний: 16
  • 1

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#67 » cure72 » 18 дек 2012, 23:59

Demeter
С утречка проверю :co_ol:
Lenovo A750
Прошивка - сток s150
«Не партии будут служить народу, а народ — партиям. Уже теперь… в деле народа упоминается одно лишь его имя, а вершат дела партии»© Н.И.Махно 1918 год
  • 0

Аватара пользователя
cure72
Гуру
 
Сообщения: 1402
Зарегистрирован: 18 мар 2012, 01:41
Откуда: SPb
Репутация: 253

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3325

Аватара пользователя
Go!
Пользователь
 
Сообщения: 291
Зарегистрирован: 20 фев 2012, 17:17
Откуда: Днепропетровск
Репутация: 281

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#70 » Demeter » 19 дек 2012, 19:08

Штатный к сожалению не выгрузить, я просто отобрал его подписку на прерывание и на замену иконки гарниутры на таскбаре.

Сегодня обнаружил, что в 12й Intelij Idea есть отличная поддержка андроида.

Посему написал прогу для инсталляции драйвера.

Инструкция:
Перезагрузить телефон если раньше одноименный драйвер ставился.
Распаковать архив в корень /sdcard - там 2 файла accfix.apk и accfix.ko
accfix.apk проинсталлировать и запустить.
accfix.ko_apk.zip
(84.03 КБ) Скачиваний: 421



Там 3 кнопки, среднюю можно не нажимать.

А правая должна сама загрузить драйвер.

Добавлено спустя 2 минуты 41 секунду:
ЗЫ работает только на MTK6575, андроид 4+, тестировано только на моем Philips 732

ЗЗЫ по ссылке 2мя постами выше какие-то исходники от MTK 6577, проекта я не нашел, надо б выкачать и спокойно покопаться.
Может тогда можно будет компилить модули под MTK6577.

Добавлено спустя 2 часа 14 минут 19 секунд:
Еще про https://github.com/leopesto/kernel_mediatek
Посмотрел исходники по ссылке - огрызок ядра MTK6577, с медиатек специфик драйверами.
Код: Выделить всё
accdet
ccci
cmmbdrv
devapc
devinfo
dum-char
g2d
gpu
hardwareinfo
hwe
i2c
jpeg
keypad
m4u
Makefile
masp
mau
mdrvb
mmc-host
mouse
nand
power
power-loss-test
rtc
sound
spc
spi
touchpanel
uart
usb11
usb20
vibrator
video
videocodec
wdt

Слегка похоже на папку Acer из шапки, только размер всего 40mb :(
Собственно там по ссылке написано "Huawei U8836D (G500 pro) mtk6577 kernel sources"

ЗЫ accdet драйвер в этих исходниках другой но тоже кривой,
#define KEY_HEADSETHOOK 248 //kaka_12_0116 add for Hook_Key
Комментарии доставляют, скажем kaka "Спасибо" за то что не 194, как в филипсе :)
Вложения
Последний раз редактировалось Demeter 20 дек 2012, 16:15, всего редактировалось 1 раз.
  • 10

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#71 » Череда Евгений » 20 дек 2012, 00:25

Demeter Скачай сорцы TCL S600 и соурцефога, они на мой взгляд наиболее полные для 6577
Star v1277 продан.
Huawei U8836D-1.
  • 0

Аватара пользователя
Череда Евгений
Пользователь
 
Сообщения: 215
Зарегистрирован: 20 авг 2012, 10:18
Откуда: Россия, Тверь
Репутация: 128

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#72 » Demeter » 20 дек 2012, 00:48

Череда Евгений писал(а) on 20 дек 2012, 00:25:Demeter Скачай сорцы TCL S600 и соурцефога, они на мой взгляд наиболее полные для 6577

Спасибо за идею.
Скачал.
Дык оно только под 6577, если в менюконфиге выбрать 6575. пропадает настройка всех драйверов от медиатек.
Где допиливать, чтоб они не выключались?

А и даже под 6577 оно не компилится так сразу, надо что-то делать
/data/TCL_S600/kernel/arch/arm/include/asm/smp_twd.h:28:22: error: inlining failed in call to always_inline 'localtimer_get_counter': function body not available
И проект я там нашел только PROJECT=jrd77_cu_ics2, а legale писал export PROJECT=jrd77_cu_ics7
Пойду перечитаю "его борьбу"

Добавлено спустя 7 минут 55 секунд:
Кстати у алкателя (с которого скачен почти компилящийся TCL_E928) есть еще куча файлов
http://sourceforge.net/projects/alcatel ... rce=navbar

Добавлено спустя 27 минут 40 секунд:
В общем 2 глобальных вопроса по Филипс W732
1) как сделать конфиг из девайса/прошивки
2) допустим при линковке не хватает функции
TCL_E928//mediatek/platform/mt6575/kernel/core/include/mach/mt_combo.h:39: undefined reference to `mt_combo_audio_ctrl_ex
Если она есть в модуле, допустим в mt6620_fm_drv.ko, как его превратить в .о и заюзать при линковке ?
  • 0

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#73 » dan-av » 21 дек 2012, 14:10

Demeter писал(а) on 20 дек 2012, 01:24:
Череда Евгений писал(а) on 20 дек 2012, 00:25:Demeter Скачай сорцы TCL S600 и соурцефога, они на мой взгляд наиболее полные для 6577



А и даже под 6577 оно не компилится так сразу, надо что-то делать
/data/TCL_S600/kernel/arch/arm/include/asm/smp_twd.h:28:22: error: inlining failed in call to always_inline 'localtimer_get_counter': function body not available
И проект я там нашел только PROJECT=jrd77_cu_ics2, а legale писал export PROJECT=jrd77_cu_ics7
Пойду перечитаю "его борьбу"



У меня компилится ядро под TCL_S600. Попробуй другой компилятор. На выходе - zImage. Конфиг дефолтный. Я не пойму как заставить собрать RamFS, чтобы потом собрать boot.
Еще нужно редактировать ProjectConfig.mk под конкретное железо + возможно сами драйвера.
  • 0

Аватара пользователя
dan-av
Интересующийся
 
Сообщения: 65
Зарегистрирован: 24 сен 2012, 00:01
Откуда: Украина
Репутация: 131

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#74 » Demeter » 21 дек 2012, 14:45

Сенькс. Я уж забыл, что линаро тулсетом компилю. Попробую тот что из NDK.

Апдейт: взял стандартный NDK и все заработало без изменений конфига TCL_S600 вообще!
export CROSS_COMPILE=/data/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-
Мое первое успешно собранное ядро линукса с 96го года :) :bra_vo:

А про рамдиск, скачал скприпты из forum.xda-developers.com/showthread.php?t=1587411
Они мой boot.img от филипса распаковали
Код: Выделить всё
dima@ubuntu:/data/W732_v27A$ ./unpack.pl boot.img
MTK-Tools by Bruno Martins
MT65xx unpack script (last update: 29-11-2012)

Valid Android signature found...

Kernel written to boot.img-kernel.img
Ramdisk written to boot.img-ramdisk.cpio.gz
Ramdisk size: 1699 blocks
Extracted ramdisk contents to directory boot.img-ramdisk

Successfully unpacked kernel and ramdisk.
Вложения
pack_boot_img_pl.zip
(3.54 КБ) Скачиваний: 18
Последний раз редактировалось Demeter 22 дек 2012, 00:02, всего редактировалось 2 раз(а).
  • 0

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#75 » dan-av » 21 дек 2012, 14:58

Demeter писал(а) on 21 дек 2012, 14:45:Сенькс. Я уж забыл, что линаро тулсетом компилю. Попробую тот что из NDK.

А про рамдиск, я тут полный чайник, но разве его не из твоей прошивки от телефона надо брать?
см http://whiteboard.ping.se/Android/Unmkbootimg
Код: Выделить всё
$ unmkbootimg boot.img
Kernel size 2419636
Kernel address 0x20008000
Ramdisk size 152656
Ramdisk address 0x21000000
Secondary size 0
Secondary address 0x20f00000
Kernel tags address 0x20000100
Flash page size 2048
Board name is ""
Command line "no_console_suspend=1"
Extracting kernel to file zImage ...
Extracting root filesystem to file initramfs.cpio.gz ...
All done.
---------------
To recompile this image, use:
  mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x20000000
            --cmdline 'no_console_suspend=1' -o new_boot.img
---------------
$ ls -l
totalt 5044
-rw-r--r-- 1 kuisma kuisma 2576384  9 sep 09.44 boot.img
-rw-r--r-- 1 kuisma kuisma  152656  9 sep 09.44 initramfs.cpio.gz
-rw-r--r-- 1 kuisma kuisma 2419636  9 sep 09.44 zImage

Или эта утилита не работает с вашим старым boot.img?

Разобрать Boot.img на zImage и ramFs не проблема. Скрипты из моего ядра и те. что в TCL S600 отличаются.
Также не пойму как скомпилить UBoot.
Случайно не вкурсе как из Image получить zImage? zImage состоит из кода, сжатого Image и таблицы.
И не мог бы ты подробнее описать как подменить драйвер тот что в ядре на модуль. Есть ядро с AMOI N821 говорят, что работает все кроме тача. Вот я и думаю скомпилить драйвер как модуль
  • 0

Аватара пользователя
dan-av
Интересующийся
 
Сообщения: 65
Зарегистрирован: 24 сен 2012, 00:01
Откуда: Украина
Репутация: 131

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#76 » Demeter » 21 дек 2012, 16:14

Эээ, мне надо самому пройти по этим граблям, чтоб ответить, а то я вопроса не понял, да и убунты под рукой нет.
Мне казалось что Image делается дефолтовым таргетом перед самым созданеим zImage.
т.е. если у тебя есть zImage, то и Image должен быть.
А если надо бут то вместо таргета 'make zImage' вызываешь 'make uImage' по моему при этом используется mkimage
Да, нагуглил http://gumstix.org/basic-cross-compilation.html
"sudo apt-get install uboot-mkimage" <-- вот оно
А можно спросить - зачем тебе бутлоадер менять, чем стандартный не нравится?
Апдейт после компиляйии ядра полез в Makefile:
Architecture specific targets (arm):
* zImage - Compressed kernel image (arch/arm/boot/zImage)
Image - Uncompressed kernel image (arch/arm/boot/Image)
* xipImage - XIP kernel image, if configured (arch/arm/boot/xipImage)
uImage - U-Boot wrapped zImage
bootpImage - Combined zImage and initial RAM disk
(supply initrd image via make variable INITRD=<path>)

Но при наличии вышеприведенных скриптов нам ничего кроме zImage не пригодится.
Почему вы думаете что есть скрипт, который генерит initramfs из сорцов ядра?




По поводу модуля же. Если у тебя есть полные исходники ядра, то почти любой драйвер из ядра можно исключить путем выставления буковки M в конфиге (даже если такой опции нет, похачить KConfig можно)
В результате получиться ядро отдельно и модуль отдельно. Модуль можно грузить из рамдиска или sysfs.

А вот если ядро уже есть, то имеем геморрой.
Так просто командой "rmmod" внутренний модуль из ядра обычно не выгрузить, от него куча других модулей может завсисеть как внутренних, так и внешних. Всю цепочку я правда не пробовал выгружить, но боюсь тоже ничего хорошего не выйдет.
Самое правильное решение:
Встроиться в цепочку загрузки модулей, чтоб грузить твой модуль, а не чужой, но я в эту сторону не копал.

Я для своей гарнитуры пошел кривым путем, полностью скопипастил функционал имеющегося в ядре модуля и переделал его загрузку, чтоб он отбирал все прерывания, на которых оригинальный модуль сидит.
Дальше - еще хуже, любой драйвер обычно создает класс дивайса и потом сам дивайс.
команды register_chrdev, class_create, device_create

Опять же правильное решение анрегистрировать все это хозяйство.
Но, все попытки разрегистрировать device и class у меня приводили к перезагрузке телефона. Я затупил и сдался.
Вместо этого сделал свой дивайс с другим именем, и свой сервис который этот дивайс использует вместо встроенного в прошивку.

Еще раз, я почти всё сделал не правильно, пример с меня брать не надо. Как сделать правильно я знаю чисто теоретически.
ЗЫ но исходники на гитхаб я выложил https://github.com/Demeterp/w732_accfix/
Последний раз редактировалось Demeter 22 дек 2012, 00:14, всего редактировалось 1 раз.
  • 0

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#77 » dan-av » 21 дек 2012, 17:47

Demeter писал(а) on 21 дек 2012, 16:14:Самое правильное решение:
Встроиться в цепочку загрузки модулей, чтоб грузить твой модуль, а не чужой, но я в эту сторону не копал.

Ты имеешь введу в скрипте init.rc изменить
Код: Выделить всё
......
    # Touch Panel
    chmod 0664 /dev/touch
    chown root diag /sys/module/tpd_setting/parameters/tpd_calmat
......

заменить на
Код: Выделить всё
......
    # Touch Panel
    insmod /system/lib/modules/tpd_setting.ko
    mknod /dev/touch c 188 0
    chmod 0664 /dev/touch
    chown root diag /sys/module/tpd_setting/parameters/tpd_calmat
......
?
  • 0

Аватара пользователя
dan-av
Интересующийся
 
Сообщения: 65
Зарегистрирован: 24 сен 2012, 00:01
Откуда: Украина
Репутация: 131

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#78 » Demeter » 21 дек 2012, 18:36

Нет, в этом месте поздно, оригинальный драйвер уже инициализирован, дивайс уже создан оригинальным драйвером и модуль не загрузится.
Надо раньше где-то, может в скриптах рамфс покопаться.
Поищите в ней файлы 'modules.conf' or 'rc.local', если в них есть инициализация вашего заклятого драйвера то есть шанс сделать своему модулю insmod и инициализировать уже его
  • 0

Аватара пользователя
Demeter
Интересующийся
 
Сообщения: 42
Зарегистрирован: 15 дек 2012, 02:12
Репутация: 75

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#79 » back37 » 21 дек 2012, 19:42

Demeter
Все упоминания тача, что я нашёл в хз чьём ядре :-) Может чем поможет :mi_ga_et: (в чём я сомневаюсь)
 

А случайно модуль alps с тачем не связан?...
MTK FirmwareAdapter Tool | Newman N1 FullRusReborn и другие | Куча прошивок для Fly IQ446

Siemens C75 - Siemens S75 - Ginza ms100 - Asus P750 - Star A5000 - Hero H7300 - Star B79 - freelander i10 - Fly IQ446 (Gionee GN708W) - Sony Xperia ZL
Планшет: Asus T100TA 64Gb
  • 0

Аватара пользователя
back37

Разработчик
 
Сообщения: 2301
Зарегистрирован: 28 авг 2011, 14:56
Откуда: Zаводоуковск/Tюменb
Репутация: 1448

Исходники MTK. Сборка. Обсуждение.

Сообщение Ответ:#80 » cure72 » 21 дек 2012, 21:10

Demeter
Для разнообразия .Проверил кейтест с кучкой разных гарнитур под 3.5.
Большая часть из них не воспринимается нормально телом ,(аля стандатные ,типа под огрызок\нокиа\ и т.п. )подлежит перепайке .Тем не менее проверял ас из .
Кейтест ни на одну не реагирует.Но по сообщениям из ветки - тело вполне адекватно работает с блютуз-гарнитурами .Т.е. плеера переключают треки\паузят\и т.п. с безпроводными гарнитурами .А с проводными голяк.
Lenovo A750
Прошивка - сток s150
«Не партии будут служить народу, а народ — партиям. Уже теперь… в деле народа упоминается одно лишь его имя, а вершат дела партии»© Н.И.Махно 1918 год
  • 0

Аватара пользователя
cure72
Гуру
 
Сообщения: 1402
Зарегистрирован: 18 мар 2012, 01:41
Откуда: SPb
Репутация: 253

Пред.След.

Вернуться в Программная часть КПК

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

x

#{title}

#{text}