LINUX.ORG.RU

Не запускается ядро на mt6735

 , ,


0

1

Собрал я значет ядро , исправил в нем ошибки(Были проблемы только с правами и хейдерами) и вот никак не могу найти что значит hw_status: 5 .

~ # cat /proc/last_kmg
ram console header, hw_status: 5, fiq step 0.
header may be corrupted, dump the raw buffer for reference only
DBGC@@

ну так разбирайтесь, исходники подрукой

anonymous
()

Когда-то я собирал ядро под старенький МТ6572. Так вот, ванильные сорцы от вендора собирались корректно ТОЛЬКО компилятором из AOSP. Так что бери AOSP и выкачивай компилятор, который использовался именно в версии Android на твоем устройстве.

Учитывая, что у тебя ещё /proc/last_kmsg есть, подозреваю Android 5.x и ниже.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

Это даже не весь last_kmsg. Я пролажался. Пересобрал ядро с дебагом и получил такую вот херь: https://pastebin.com/0j5Dtin6 Как я понял, драйвер какой-то не завелся.

nillerusr
() автор топика

Судя по листингу с pastebin...

У Вас непорядок с батареей. Т.е., прелоадер по какой-то причине считает что её нет (cable out) и на момент инициализации CPU 3 по wdt (не дождался) и по питалову начинает тормозить дисплей и всё прочее вплоть до полного отключения устройства.

Я бы всё-таки посмотрел на u-boot для начала. Если батарейка и кабель к ней на месте. Вдруг u-boot не по тем адресам ищет железо?

И да, я бы ещё посмотрел в сторону корректного драйвера MTK Preloader. Шьёте-то тело с компа же. Так что, SPFlashTool в помощь. Единственное, чтобы проверить наличие именно дров и именно для прелоадера, сделайте watch -n 1 ls /dev/ttyACM0, т.к. при подключении тела к компу, нужные нам записи в логе пролетят очень быстро. Мы должны увидеть что-то типа:

usb 3-2: Product: MT65xx Preloader

usb 3-2: Manufacturer: MediaTek cdc_acm 3-2:1.1: ttyACM0: USB ACM device

И да. Медиатек ни чем не лучше просто китайцев. А это наркоманы в тяжёлой форме.

anonymous
()
Ответ на: комментарий от nillerusr

Ага. Ясно.

Значит, стоит сравнить сток/не сток и обратите внимание на то, что там с питаловом-батарейкой. По логу получается что в этом проблема.

anonymous
()
Ответ на: Ага. Ясно. от anonymous

Скорее всего дело в dtb . Но я достал кое-как dtb, декомпилировал и вроде небольшие отличия. https://pastebin.com/TQhbNVR5 Кстати , до этого ядро вообще без dtb стояло , c dtb еще быстрее перезагружает и лог не получается достать.

nillerusr
() автор топика
Ответ на: комментарий от nillerusr

Ясно.

А dts от производителя железки не достать? И потом пересобрать бы их через dtc.

Да, подозрение на то, что в dtb не всё корректно вкомпилено. И u-boot, при попытке прогрузить тело, тупо не находит по известным ему адресам, нужного железа. После этого он сколько-то ждёт и помирает по wdt.

Что за железо, если не секрет? Может, что поконкретнее подскажу.

anonymous
()
Ответ на: Ясно. от anonymous

У, железо конечно да. Китайцы там постарались над ядром. Huawei Honor 4c Pro. Исходники брал на офф сайте. Ошибок не мало в исходниках, некоторые как везде на mtk(проблемы с хейдерами), некоторые из-за того, что упакованы в rar(права не сохранились).

P.S. Упаковывал в rar не я, а китайцы.

Ну я достал ведь и пересобрал в dtc , сейчас обратно в dts попробую

А dts от производителя железки не достать? И потом пересобрать бы их через dtc.

nillerusr
() автор топика
Ответ на: Ясно. от anonymous

Кстати была ошибка при пересборки dtb , хз повлиляла ли она на что-то. Поидее она безобидная

ERROR (explicit_phandles): /soc/vdecsys@0x16000000 has duplicated phandle 0xd (seen before at /soc/perisys@0x10002000)
ERROR (explicit_phandles): /soc/vdecsys@0x16000000 has duplicated phandle 0xd (seen before at /soc/perisys@0x10002000)
Такую же сейчас и при сборке поймал

nillerusr
() автор топика
Ответ на: Ясно. от anonymous

Теперь логи говорят: ram console header, hw_status: 0, fiq step 0. header may be corrupted, dump the raw buffer for reference only DBGC@@ Заеюись

nillerusr
() автор топика
Ответ на: комментарий от nillerusr

Да, это поделия дядюшки Ляо.

Раньше был индусский код, теперь мы видели китайский. =) Там прошивки святым Духом работают. Не иначе.

Но ладно. К делу. Маленьких ошибок у китайцев не бывает. Если есть ошибка, то это значит что в дальнейшем либо не соберётся в принципе, либо соберётся с косяками. Так что, из говна конфетку клеить хочется или нет, но придётся. Примерно как в Вашем случае. Что-то поменяли, бац, а адреса в разные стороны поехали.

Я тут написал паре коллег, жду ответа. Но по-моему, нужно начинать с https://forum.xda-developers.com/honor-4c/development и, в частности, с https://forum.xda-developers.com/honor-4c/development/huawei-honor-4c-kernel-...

Понимаю, бомбануть может, но тут один только вариант — сперва собрать чисто рабочую прошивку, прошить её, убедиться что всё работает и только потом, по мере модификации, смотреть что правим в исходниках ядра и как это отразится на процессе загрузки. У меня blackview 8000 pro, так и делал кастом на него. Тоже МТК.

anonymous
()
Ответ на: комментарий от nillerusr

Ненене....

Я в тему не писал, я прямо чувакам знакомым написал, которые имели дело с таким телом. Я в курсе о разнице процов. Эти темы просто курить надо для чисто общего понимания.

anonymous
()
Ответ на: Ненене.... от anonymous

Хорошо, это я не умею читать просто\=

А кстати, у него есть другие названия: Huawei enjoy 5, Huawei y6 pro(tit-al00)

nillerusr
() автор топика
Ответ на: Хорошо, это я не умею читать просто\= от nillerusr

Всё нормально. Тут, просто, с МТК жопа в том, что надо типа вкурить их «техпроцесс». Грубо говоря, если сказано gcc 4.9, то 4.9 и надо юзать и именно в той последовательности, как у них написано. Т.е., собрали одно, собрали другое, собрали третье. Подготовили img, залили. И делать строго по мануалу. Либо самому раскуривать как и что там у них. Но это долго.

У МТК вообще всё на адреса завязано. Для любого мобильника вынь да положь scatter файл при прошивке через SPFlashTool. Карту распределения памяти. Не будет скаттера или он будет некорректный, то всё, считай приехал, глуши мотор. С загрузкой так же. U-boot чего-то не нашёл, повисел, вылетел по WDT (watch dog timer). Что, кстати, и происходит.

Блин. Тут, сколько я с этим трахаюсь, уже впору своё howto писать. Но этож я офигею.

anonymous
()
Ответ на: комментарий от anonymous

Мне выдали исходники, сказали что lcm драйвер не работал. Ну тогда сейчас начнется самая ебля потому что там куча отвалов

nillerusr
() автор топика
Ответ на: комментарий от nillerusr

ты в mem mapping лазил, делал переразбивку памяти?

sqq
()
Ответ на: комментарий от nillerusr

Да. Самое сладкое.

Короче, я сам задолбался. Видимо, надо написать howto по сборке под MTK, выложить сюда и поставить (для себя) точку.

Если про lcm, то там всё сравнительно просто. Если (вот это самое если, ага) ядро собирается, то просто скопируй исходник модуля в дерево ядра и поправь сборку. Желательно его включить в ядро как перекомпилированный модуль (=y), а не как модуль (=m). Потом надо смотреть что и по каким адресам сядет и уже тогда править dts. Переразбивку карты памяти (map) делать один хер придётся, но это уже после сборки ядра, когда всё что нужно включено, всё что не нужно выключено. Затеститься можно в qemu, если чё. Т.е., стартанёт виртуальная с твоим ядром в принципе или нет.

Потом собирай u-boot под своё тело и потом сам по себе андроид.

Но ебли будет выше крыши, да.

Короче, сел пейсать howto, ибо самого задолбало уже это народное казахское творчество до немогусеньки.

anonymous
()
Ответ на: Да. Самое сладкое. от anonymous

Крч dtb полостью подходит, ядро запустилось , lcm работает. Отвал модема, камеры, led драйвера(не работает изменение яркости и из wakelock хуй он просыпается), отвал фонарика, повороты не работают. Самое забавное - gps,bluetooth и wifi не отвалились. Драйвер батаерии тоже работает. Прошивку модуля связи не определило - наверное какой-то параметр в ядре надо подрубать. Мне бы для начала с leds разобраться и с модемом

nillerusr
() автор топика
Ответ на: Да. Самое сладкое. от anonymous

Забавно, ориентация как-то работает по аксельрометору. А сенсоров ориентации вообще нету

nillerusr
() автор топика
Ответ на: комментарий от anonymous

Помоги с leds

Не работает wakeup.

Logcat после вызова wakeup https://pastebin.com/9d3C3PWS

Kmsg после вызова wakeup https://pastebin.com/AccRfJKN

Догадываюсь, что отвалы в leds драйвере, ни через андроид , ни через sysfs не получается контролировать яркость

nillerusr
() автор топика
Ответ на: комментарий от nillerusr

Хорошо что ядро стартануло.

Значит, с dts/dtd можно не трахаться, работы меньше.

Мопед скорее всего на usb должен болтаться. Там ещё прошивка под него должна быть. Модуль связи так называемый. Тебе сюда -> https://www.google.ru/url?sa=t&source=web&rct=j&url=https://www.p...

Камера и фонарик это одно и то же. Все варианты софта для фонарика в Андроиде используют Camera (и разрешение для неё в manifest.xml).

Чуть позже отпишусь подробнее. Сейчас чёт привалило...

anonymous
()
Ответ на: Помоги с leds от nillerusr

Смотри ссыль выше. Там показан правильный конфиг ядра для хуавеев. У китайцев просто так сделано что дёрнул в одном месте, завелось в другом. Да и вообще в андроид, там всё примерно так, через жопу. Функционал wakeup тот же может быть размазан.

anonymous
()
Ответ на: комментарий от nillerusr

Дык да!

В /etc/firmware прошивка модема лежать должна как blob. И, вообще говоря, шиться она должна непосредственно а модуль, отдельно. Это если в тонкости вникать. И собирать ещё и эту часть, чего нам не надо.

Всё взаимодействие смартфона с этой прошивкой должно идти через /dev/ttyUSB*. Т.е., сам андроид видит этот девайс как usb-устройство. Ну и cdc ethernet там ещё болтаться будет. РРР и вот это вот всё через него и работают. Чтобы хоть как-то стек tcp через этот можем ходил.

Если модуль не поднимается, значит, сам андроид его не видит. Можешь на самом теле ls /dev/tty* выполнить?

anonymous
()
Ответ на: Дык да! от anonymous

Да! Точно! Wakeup так и не заведётся без поддержки модема. Это же логично. Главная-то функция смарта это звонки и sms, всё остальное это крем сверху пирожка. Значит, устройство, которое будет самым важным для энергосбережения это мопед. Хотя, вайфай в реале жрёт батарейку куда как больше чем модем.

Почему всё так с модемом? Да потому что этих модемов хоть жопой жуй. От того же sim900 какого-нить и до вот этих хуавеевских. А андроид он один на всех. И функционал у модема может включать, а может и не включать кроме поддержки голосового трафика и sms, свой стек tcp/ip, glonass, gps (ту же реализацию протокола nmea), короче, считай, в смарте у тебя не один процессор с несколькими ядрами и андроидом, а ещё как минимум один проц в модуле связи. Со своей прошивкой. Рулить им получится только через usb, командами из набора esti 07.05, 07.07, т.н. hayes команды, они же ат-команды. Без этого ни как. Софт писать изведёшься под каждый модуль. Окосеешь как китаец. Вот и используют типа общий интерфейс usb. Модули могут быть разные, а методы работы с ними одинаковые.

Вайфай у тебя сразу завёлся, из прошивки, ну да. Так и должно быть. Это частная хуавеевская поддержка этих модулей. Вафли и синезуба.

anonymous
()
Ответ на: Дык да! от anonymous

Ну-ну

Никаких отличий в tty между стоковым и моим ядром нету. ttyUSB никаких нету. И вообще я сказал почему wakeup не работает - leds драйвер дает сбои, я же кидал логи выше, лул

nillerusr
() автор топика
Ответ на: комментарий от anonymous

Вообще хуле я тут еще не закрыл тему? Ядро-то я запустил.

nillerusr
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.