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

hyperion70

#include <calmness.h>
16.12.2018
142
436
120
54
github.com
Сборка ядра Android для процессоров MediaTek и всё что с этим связано
2606
| |

  1. Компьютер с установленной Unix-подобной операционной системой и настроенным окружением
  2. Исходники своего ядра (отсутствие таковых может очень сильно затруднить процесс)
  3. Ваше желание добиться результата и наличие свободного времени
  4. Наличие хотя бы минимальных знаний в программировании
(mt6580)







Модератор
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам через кнопку Жалоба. Если в теме есть пользователь, желающий стать куратором, просьба оставить заявку в .
 
Последнее редактирование:

zhyk_magadan

Друг форума
15.01.2019
245
448
121
21
Магаданская область, пгт.Ола
Устройство
Sony Xperia XZ1 Compact
Народ, пожалуйста прошу совета. Хочу получить исходники ядра на Philips S327, скрин Device Info HW прилагаю:
Screenshot_20190903-174601.png
Идея получить исходники возникла в июне 2019 года. Но как видите до сих пор их не могу получить. Сейчас скину переписку с поддержкой филипс по адресу open.source@philips.com .
Внимание! Я перевёл все сообщения на русский. Переписка велась на английском.
Я: Здравствуйте! Я хочу получить исходный код официального программного обеспечения для Philips S327. Пожалуйста, дайте ответ в течение недели.
Постскриптум У меня плохой английский. Я из России, город Магадан.
С наилучшими пожеланиями, Артем!
ИСХИ: Спасибо за ваш запрос на исходный код. Я отвечу на ваш запрос. В связи с праздниками это может занять немного больше времени, чем обычно.
Что касается содержимого пакета с исходным кодом, оно ограничено программным обеспечением, которое выпущено по лицензии с открытым исходным кодом. Это позволит вам проверить исходный код, сценарии и, если применимо, любые изменения, но это не сопровождается инструментами компиляции. Пожалуйста, не ожидайте, что сможете восстановить и загрузить полный образ прошивки, используя этот исходный код. По ряду причин пакет не содержит всех данных и кода, необходимых для полной регенерации прошивки.
Пожалуйста, не стесняйтесь обращаться ко мне по адресу open.source@philips.com напрямую в случае любых оставшихся вопросов, связанных с аспектами лицензирования Open Source кода. По вопросам обслуживания клиентов, пожалуйста, свяжитесь с отделом обслуживания клиентов; контактные данные можно найти на .
С уважением, Арнольд Ниссен.
Я: Снова добрый день. Дело в том, что вам необходимо выпустить исходный код под лицензией GNU GPLv2 (v3). Эта лицензия означает, что я могу использовать и изменять бесплатное ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, то есть удостоверять, что ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ действительно является бесплатным программным обеспечением для всех его пользователей. Я цитирую: «Вы можете копировать и распространять дословные копии исходного кода программы на любом носителе при условии, что вы явно и надлежащим образом публикуете в каждой копии соответствующее уведомление об авторских правах и отказ от гарантии; сохраняйте в неприкосновенности все уведомления, которые относятся к на эту Лицензию и на отсутствие какой-либо гарантии, а также передайте любым другим получателям Программы копию этой Лицензии вместе с Программой.
Вы можете взимать плату за физический акт передачи копии и можете по своему усмотрению предоставлять гарантии за плату.... и там я расписывал цитаты из лицензии.
ИСХИ: Уважаемый господин Жуковский, Как указано ниже, наш ответ был задержан из-за выходных, извиняюсь за это.
Ссылаясь на ваши последующие электронные письма, мы полностью осознаем обязательства GPL и полностью выполняем эти обязательства.
Пожалуйста, направьте ваш запрос на исходный код напрямую г-ну Аллену Чжану в Sangfei по адресу Allen.Zhang@sangfei.com, который отвечает за обработку запросов клиентов на открытый исходный код для вашего продукта (который был распространен Sangfei).
Ну вот наконец нам дали контакт с главным по исходникам. Только компания другая. Ладно у меня есть и с ним переписка.
Я: Добрый день! Меня отправили сюда из службы поддержки Philips. Я прошу вас выдать исходный код для ядра Philips S327, но они просто не хотят его предоставлять. Но по лицензии GPLv2 (v3) вы должны предоставить мне исходный код ядра. С уважением Артём.
ИСХИ: Уважаемый Артем, Не могли бы вы проверить, можете ли вы загрузить пакет исходного кода для S327 по ссылке ниже:
Ура, ссылка получена, можно собирать. Но не тут-то было. Сборка вроде как проходит нормально, но телефон не загружается. Выбираю я конфиг tpv6737m_35g_n_s327_defconfig , но он полностью не соответствует моему устройству. LCM, touch не соответствуют. В начале сборки вылазят ошибки make mrproper. Мне пришлось удалять из правил mt2701 и tc1_interface и сборка продолжалась. Отправляю также следующую переписку с Алленом Чжан Чжан.
Я: Добрый день! И исправил ошибки и смог собрать ядро из исходников. Но это не загружается. Изучая источник, я не увидел правильный драйвер LCM, неправильное разрешение экрана и кривые драйверы. Можете ли вы предоставить действительный источник для Philips S327 версии 2/16 2 RAM 16 rom.
ИСХИ: Я думаю, что немного трудно повторить проблему после получения вашего письма. Не могли бы вы сообщить мне дату покупки вашего устройства и есть ли у вас гарантийный талон, где есть местные пункты обслуживания?
Не могли бы вы связаться с местным сервисным центром и показать, в чем проблема, которая может быть более полезной для решения проблемы.
Или, может быть, вы также скажете мне город, в котором вы живете, и в чем проблема вашего телефона (при использовании после того, как вы его купили), и я также проверю, какой ближайший пункт обслуживания.
Тут как видно идут отмазки, чтобы не давать исходники.
Я:
Добрый день! Почему вы заинтересованы в неисправности моего телефона? Телефон пришел от моего друга несколько месяцев назад.
Затем я начал разработку различного программного обеспечения на смартфоне, но были некоторые нюансы, например, нет исходников ядра.
В официальном ядре от 2017 года 3.18.35+ для Philips S327 есть проблемы, вроде плохой работы MTP. Я не буду перечислять дальше. Далее я начал предавать источник, и вы предоставили мне без проблем. Но после того, как я использую ядро из вашего источника, телефон не включается. Ядро тестирует на восстановление TWRP. Хотя работает на официальном ядре.
Я описал проблему источника с поддержкой Philips, а именно Арнольда Ниссена. Драйвер LCM неверен. Вместо ski550b30 есть hx8470. Также в defconfig написано другое разрешение экрана. Вместо 720x1280 написано 960x540. Сенсорный экран и другие драйверы также неверны. Собран на:
ОС: Ubuntu 18.04 x64
GCC: linaro arm-eabi 4.8
Ядро ver: 3.18.19+ для Philips S327.
Пожалуйста, предоставьте мне исправленные источники. С наилучшими пожеланиями, Артем!
ИСХИ: Спасибо за ваше разъяснение.
S327 - это старая модель смартфона, которая уже давно не стоит на полке, отправленный вам открытый исходный код - единственный пакет с исходным кодом, который у нас есть. Если при использовании устройства возникнут какие-либо проблемы, лучше всего обратиться за помощью в СЦ.
Ну а далее я просто скинул картинки из IDA и build.log(лежащий в единственном архиве с прошивкой).
скрин.pngida.png
Ну а далее он попросил меня скинуть видео как собирается ядро и запускается телефон.
, , .
Пока в ответ тишина уже 2 день. Хотел получить в июне, получил неправильные в июле, и жду уже в сентябре. Знатоки подскажите как быть в этом деле?
 

zoggn

Друг форума
18.12.2018
110
234
105
Z zhyk_magadan, да ясное дело что вы не получите ничего, берите общие под вашу платформу и делайте на основе них
 
  • Спасибо
Благодарности: hyperion70

zhyk_magadan

Друг форума
15.01.2019
245
448
121
21
Магаданская область, пгт.Ола
Устройство
Sony Xperia XZ1 Compact
zoggn zoggn, а где мне брать тот же драйвер лцм, тач. Искал везде а безтолку. В реверсе я ничего не понял, максимум строчки посмотреть. Пытался стартонуть лцм со вторым драйвером. Там написано li9881_hd720_dsi_vdo_tpv, а я нашёл ili9881_hd720_dsi_vdo. Но не стартует.
 

zoggn

Друг форума
18.12.2018
110
234
105
zoggn zoggn, а где мне брать тот же драйвер лцм, тач. Искал везде а безтолку. В реверсе я ничего не понял, максимум строчки посмотреть. Пытался стартонуть лцм со вторым драйвером. Там написано li9881_hd720_dsi_vdo_tpv, а я нашёл ili9881_hd720_dsi_vdo. Но не стартует.
Только реверс. В вашем экземпляре какой экран стоит?
 
Последнее редактирование:
  • Спасибо
Благодарности: hyperion70

zhyk_magadan

Друг форума
15.01.2019
245
448
121
21
Магаданская область, пгт.Ола
Устройство
Sony Xperia XZ1 Compact
zoggn zoggn, в Device info HW написано ski550b30_hd720_dsi_vdo_tpv . И ещё один драйвер прописан в LK - li9881_hd720_dsi_vdo_tpv.
Первый драйвер мне не удалось найти, он только у какого-то ZTE, и вообще процесор у негг qcom, и прописано всё в dtsi файлах в папке boot.
 

zhyk_magadan

Друг форума
15.01.2019
245
448
121
21
Магаданская область, пгт.Ола
Устройство
Sony Xperia XZ1 Compact
zoggn zoggn, чего-то ошибка выглядывает.
Код:
  CC      drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.o
  CC      drivers/pinctrl/devicetree.o
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c: В функции «tps65132_write_bytes»:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:55:33: ошибка: «tps65132_i2c_client» не описан (первое использование в этой функции)
     struct i2c_client *client = tps65132_i2c_client;
                                 ^
  CC      drivers/of/platform.o
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:55:33: замечание: сообщение о каждом неописанном идентификаторе выдается один раз в каждой функции, где он встречается
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:60:5: ошибка: неявная декларация функции «i2c_master_send» [-Werror=implicit-function-declaration]
     ret = i2c_master_send(client, write_data, 2);
     ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c: В функции «lcm_suspend»:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:121:3: ошибка: неявная декларация функции «gpio_request» [-Werror=implicit-function-declaration]
   gpio_request(122, "lcd_bias_en");
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:122:3: ошибка: неявная декларация функции «gpio_to_desc» [-Werror=implicit-function-declaration]
   v1 = gpio_to_desc(122);
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:123:3: ошибка: неявная декларация функции «gpiod_direction_output_raw» [-Werror=implicit-function-declaration]
   gpiod_direction_output_raw(v1, 0);
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:125:3: ошибка: неявная декларация функции «gpiod_set_raw_value» [-Werror=implicit-function-declaration]
   gpiod_set_raw_value(v2, 0);
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:129:3: ошибка: неявная декларация функции «gpio_free» [-Werror=implicit-function-declaration]
   gpio_free(122);
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c: В функции «lcm_init»:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:153:3: ошибка: неявная декларация функции «gpio_free_» [-Werror=implicit-function-declaration]
   gpio_free_(122);
   ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:163:3: ошибка: неявная декларация функции «printk_» [-Werror=implicit-function-declaration]
   printk_(v4, 1);
   ^
cc1: все предупреждения считаются ошибками
make[6]: *** [../scripts/Makefile.build:258: drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.o] Ошибка 1
make[5]: *** [../scripts/Makefile.build:402: drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv] Ошибка 2
make[4]: *** [../scripts/Makefile.build:402: drivers/misc/mediatek/lcm] Ошибка 2
make[3]: *** [../scripts/Makefile.build:402: drivers/misc/mediatek] Ошибка 2
make[2]: *** [../scripts/Makefile.build:402: drivers/misc] Ошибка 2
make[2]: *** Ожидание завершения заданий…
 

zhyk_magadan

Друг форума
15.01.2019
245
448
121
21
Магаданская область, пгт.Ола
Устройство
Sony Xperia XZ1 Compact
zoggn zoggn, чего-то видать не хватает ему. Инклудов мож каких-то?
Код:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c: В функции «lcm_suspend»:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:125:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v1 = gpio_to_desc(122);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:126:30: ошибка: при передаче аргумента 1 «gpiod_direction_output_raw» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_direction_output_raw(v1, 0);
                              ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:72:5: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 int gpiod_direction_output_raw(struct gpio_desc *desc, int value);
     ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:127:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v2 = gpio_to_desc(122);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:128:23: ошибка: при передаче аргумента 1 «gpiod_set_raw_value» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_set_raw_value(v2, 0);
                       ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:78:6: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 void gpiod_set_raw_value(struct gpio_desc *desc, int value);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:130:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v3 = gpio_to_desc(122);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:131:23: ошибка: при передаче аргумента 1 «gpiod_set_raw_value» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_set_raw_value(v3, 0);
                       ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:78:6: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 void gpiod_set_raw_value(struct gpio_desc *desc, int value);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c: В функции «lcm_init»:
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:149:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v0 = gpio_to_desc(122);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:150:30: ошибка: при передаче аргумента 1 «gpiod_direction_output_raw» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_direction_output_raw(v0, 0);
                              ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:72:5: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 int gpiod_direction_output_raw(struct gpio_desc *desc, int value);
     ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:151:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v1 = gpio_to_desc(0x7A);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:152:23: ошибка: при передаче аргумента 1 «gpiod_set_raw_value» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_set_raw_value(v1, 1);
                       ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:78:6: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 void gpiod_set_raw_value(struct gpio_desc *desc, int value);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:154:6: ошибка: assignment makes integer from pointer without a cast [-Werror]
   v2 = gpio_to_desc(122);
      ^
../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:155:23: ошибка: при передаче аргумента 1 «gpiod_set_raw_value» целое преобразуется в указатель без приведения типа [-Werror]
   gpiod_set_raw_value(v2, 1);
                       ^
In file included from ../include/asm-generic/gpio.h:14:0,
                 from ../arch/arm/include/asm/gpio.h:9,
                 from ../include/linux/gpio.h:48,
                 from ../drivers/misc/mediatek/lcm/ski550b30_hd720_dsi_vdo_tpv/ski550b30_hd720_dsi_vdo_tpv.c:6:
../include/linux/gpio/consumer.h:78:6: замечание: ожидался тип «struct gpio_desc *», но аргумент имеет тип «int»
 void gpiod_set_raw_value(struct gpio_desc *desc, int value);
      ^