Как сделать кастомное ядро
Как сделать кастомное ядро
В: Могу ли я собрать ядро если производитель не выложил исходники для моего девайса?
O: Ответ на ваш вопрос неоднократно обсуждался, например «Сборка ядра не имея исходников», вы сможете собрать ядро, но придется приложить больше усилий.
В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума.
А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что.
В теме нет куратора. Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).
До назначения куратора, по вопросам наполнения шапки, обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Как это сделать (Мое мнение, на правильность не претендую) Перенести папки /mediatek/custom/mtxxxx, /mediatek/custom/проект, mediatek/config/mtxxxx, /mediatek/config/проект и /mediatek/platform/mtxxxx из исходников своего аппарата в исходники из которых будем собирать новое ядро, исправить все ошибки возникающие при компиляции и запустить ядро на телефоне.
Собранное мной по такому алгоритму ядро запускаться категорически отказалось, теперь надеюсь решить вопрос коллегиально.
именно так и планировал начинать перенос исхов. Сегодня будет первая попытка.
вопрос:
Очень важным являются настройки видеоускорителя. У меня он
В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума.
А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что.
Как сделать кастомное ядро
В: Могу ли я собрать ядро если производитель не выложил исходники для моего девайса?
O: Ответ на ваш вопрос неоднократно обсуждался, например «Сборка ядра не имея исходников», вы сможете собрать ядро, но придется приложить больше усилий.
В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума.
А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что.
В теме нет куратора. Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).
До назначения куратора, по вопросам наполнения шапки, обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Как это сделать (Мое мнение, на правильность не претендую) Перенести папки /mediatek/custom/mtxxxx, /mediatek/custom/проект, mediatek/config/mtxxxx, /mediatek/config/проект и /mediatek/platform/mtxxxx из исходников своего аппарата в исходники из которых будем собирать новое ядро, исправить все ошибки возникающие при компиляции и запустить ядро на телефоне.
Собранное мной по такому алгоритму ядро запускаться категорически отказалось, теперь надеюсь решить вопрос коллегиально.
именно так и планировал начинать перенос исхов. Сегодня будет первая попытка.
вопрос:
Очень важным являются настройки видеоускорителя. У меня он
В: Слышал, что в данной ветке присутствуют телепаты, гадалки, медиумы и ясновидцы, которые могут дать полный и адекватный ответ на не полностью сформулированный вопрос?
O: Эх, к нашему большому сожалению, все вышеперечисленные товарищи ушли на ТНТ и ТВ3. И мы, как и вы, тоже будем надеяться на их скорейшее возвращение в ряды пользователей нашего форума.
А пока, будьте добры: если вы хотите получить адекватный ответ на ваш вопрос, то формулируйте его соответственно.
Например: устройство + платформа + версия ядра / андроид + описание проблемы + действия которые к ней привели (изменение конфигурации, изменение в исходниках, лог терминала и/или logcat) + ой, нечаянно удалил + ой, а не помню что.
Как сделать кастомное ядро
Это определенный код OC Linux 2.6.x, который был перенесен на платформу ARM вашего телефона и который отвечает за базовую работу вашего аппарата и выполнение простейших функций: управляет процессами, устройствами, памятью, процессорами, очередями, доступом к накопителям, сетевым интерфейсам и содержит или подгружает модули, в т.ч. драйверы устройств. Это тот базовый кирпич, на котором держится вся система. При этом, ядро организовано по модульному принципу: сначала загружается основное ядро, содержащее лишь необходимые функции, а если в ходе работы понадобятся дополнительные функции или будут подключены дополнительные устройства, ядро «чудесным образом» подключит необходимый код в виде отдельного модуля и также удалит его при исчезновении необходимости. Безусловно, модуль должен присутствовать.
Более общие и мудреные определения, детально о видах ядер можете посмотреть в Википедии.
Существуют и другие ядра. Но к нашей теме они отношения не имеют. 🙂
Ядро не настолько влияет на энергопотребление аппарата, как возможно, вы полагаете. Поэтому читайте инструкции по энергопотреблению, настраивайте аппарат, приложения и всю экосистему Андроид. Только после этого можно выиграть еще несколько процентов за счет ядра.
Необходимо заметить, что некоторые версии ядер действительнно вызывают повышенный расход аккумулятора. Это можно отнести к ошибкам автора, который собирал ядро.
Список загруженных модулей доступен в телефоне по команде lsmod в adb shell или терминале. Некоторые модули включаются на этапе сборки прямо в состав ядра (например, модуль для программы Tegrak Overclock Ultimate в ядре Lulz/Tegrak).
Различные авторы применяют разные параметры сборки ядра, добавляют различные модули и дополнительные функции.
Структура Андроид. На первом этаже (ядро Linux) вы видите ядро и его ответственность.
Имя архива в котором находится ядро может быть абсолютно любое.
Если вам нужен рут, нужно прошить кастомное ядро с рутом.
Обратите внимание, что после прошивки ядер CF-Root и PhilZ отображаемая в настройках версия ядра не изменится.
Этот же способ надо использовать, если вы прошили ядро не для своей прошивки/телефона и телефон не грузится.
После окончания прошивки телефон перезагрузится.
При таком способе прошивки ядра вы получаете желтый треугольник, счетчик прошивок
PS. Наш любимый Odin
2. Следующие 2 способа подходят, если у вас есть рут и CWM.
2. Первый способ (ядро в *.zip)
2. Второй способ (ядро в исходном файле zImage или архиве tarball (tar))
* Прошивка любого не родного ядра Самсунг вызывает увеличение счетчика кастомных прошивок и появление желтого треугольника при прошивке через Один. При прошивке через CWM этого не происходит.
* При прошивке ядра данные пользователя не затрагиваются.
Bootloader Загрузчик операционной системы. Существуем огромное количество разных загрузчиков. Когда включается любое устройство, процессору необходимо сразу передать управление в какую-то точку в соответствии с начальными значениями регистров. В итоге выполнение переходит к загрузчику или загрузчикам, которые уже передают определенные параметры ядру ОС и загружают его в память с передачей управления. В SGSII таким загрузчиком ядра служит вторичный бутлоадер (Secondary Bootloader), который прошивается файлом sbl.bin.
Краткое описание регуляторов:
cpu work load еще один ресурс с описанием говерноров (англ): http://forum.xda-developers.com/showthread.php?t=1369817
Initrd (сокращение от англ. Initial RAM Disk, диск в оперативной памяти для начальной инициализации) — временная файловая система, используемая ядром Linux при начальной загрузке. Initrd обычно используется для начальной инициализации перед монтированием «настоящих» файловых систем. В Linux Kernel HOWTO (руководстве о сборке ядра) пишут, что initrd призван решить проблему курицы и яйца для модульного ядра: для монтирования файловой системы необходим модуль для работы с диском и файловой системой, а для чтения модуля необходима файловая система, с которой этот модуль читается.
Initramfs
В ядре Linux 2.6 появилась новая концепция загрузочного диска Initrd — он представляет собой сжатый gzip’ом cpio-архив.
Извлечение initramfs из ядра:
Сборка ядра для Android-устройств на примере Solid Kernel для LG e975
Подготовка
Что нам потребуется
Подготовка системы
Установим необходимые пакеты. Набирем в терминале:
Нажимаем Enter и пишем далее:
Качаем исходники
Идем на GitHub и скачиваем исходники (исходники для каждого девайса разные, поэтому ссылок давать не буду) архивом (в правой части экрана должна находиться кнопочка «Download ZIP»). Распаковываем архив в любое удобное место (у меня это папка /home/system-exe/Solid).
Качаем тулчейн. Переходим по ссылке, отмечаем галочкой нужный тулчейн (для меня это cortex-a15, зависит от ядер процессора) и нажимаем «скачать». Распаковываем скачанный архив в папку /home/%USERNAME%/Toolchain/Linaro-4.9.3 (вместо %USERNAME% подставляем имя учетки).
Выдираем файл конфигурации из девайса
Идем по пути /proc (на телефоне) и копируем файл config.gz на комп, распаковываем и получаем файл config, которые переименовываем по шаблону %устройство%_defconfig (у меня это e975_defconfig). Кладем получившийся файл по пути /home/%USERNAME%/Solid/arch/arm/configs
С подготовкой окончили.
Сборка ядра
Заходим в терминал и набираем команду:
(таким образом мы перешли в папку с нашими исходниками)
(у меня надо так: make e975_defconfig)
После завершения пишем:
(здесь правим нужные значения конфигурации. Тут все предельно просто, думаю разберетесь.)
После завершения начинаем сборку:
В конце должна появиться надпись «zImage is ready».
Идем по пути /home/%USERNAME%/Solid/arch/arm/boot и видим там наше ядро — zImage.
Тестирование
Теперь нам осталось заставить работать этот самый zImage на нашем устройстве.
А вот теперь трижды подумайте надо ли вам это? Уверены ли вы в своих силах и в том, что правильно собрали ядро?
Подумали? Уверены? Точно уверены? Тогда продолжаем.
Извлекаем boot.img из нашего девайса. Набираем в терминале на телефоне:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Переносим boot.img, который лежит на карте памяти, на комп. Распаковываем его (в интернете есть множество описаний распаковки и запаковки boot.img), меняем оригинальный zImage на наш и собираем boot.img.
Закидываем наш собранный образ на карту памяти под именем new_boot.img
В терминале набираем:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Перезагружаем девайс. Если телефон загрузился, то все сделано правильно, если — нет, то читаем инструкцию внимательней и пробуем снова.
Для отката в случае неудачи используем наш оригинальный boot.img, который надо было оставить на карте памяти. Для отката в терминале набираем:
Вместо… подставляем путь до папки by-name (у меня надо подставить msm_sdcc.1).
Эпилог
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Как сделать кастомное ядро
Для Windows 8 x64, Windows 7 x64 отключить проверку цифровой подписи драйверов и загрузиться в тестовом режиме. Иначе Windows не даёт ставить неподписанные драйвера.
Отключаем проверку цифровой подписи драйверов в Windows 7 с помощью bcdedit
Откройте командную строку с правами администратора и последовательно наберите следующие две команды:
После выполнения каждой из команд должно появиться сообщение о том, что команда выполнена успешно.
Перезагрузите компьютер и попробуйте установить не подписанный драйвер.
Если вам нужно отменить этот режим работы и вновь включить проверку цифровой подписи в win 7, выполните следующие команды:
После прошивки девайс сам перегрузится в обычный Андроид.
AnTuTu CPU Master (Free), показывает max и min частоту процессора. Если те ядра что в шапке встали, то он покажет мин 1200 макс 1704Mhz.
Добавлено 21.12.2013, 05:59:
Да здесь пока что чисто идет разгон планшета на производительность.
Добавлено 21.12.2013, 06:02:
CPU
MHz V
312 0.900
504 0.925
816 1.000
1008 1.075
1200 1.200
1416 1.250
1608 1.300
GPU
MHz V
133 0.975
199 1.000
265 1.025
364 1.100
497 1.150
600 1,250
630 1.275
DDR
MHz V
665 1.300
698 1.325
kernel_cpu1608_gpu600_ddr665.img ( 9,24 МБ )
kernel_cpu1608_gpu600_ddr698.img ( 9,24 МБ )
kernel_cpu1608_gpu630_ddr665.img ( 9,24 МБ )
kernel_cpu1608_gpu630_ddr698.img ( 9,24 МБ )
Пробую прошить ядро. Что я делаю не так.
ядро(Частоты: проц-от 1200Mhz до 1704 Mhz, видео от 400 до 600Mhz, память DDR 720Mhz при напряжении 1,3В)
Проверяю в antutu и вижу что ничего не поменялось или может так и должно быть.
Вот смотри красным я выделил на твоем скрине: У тебя видно что мин 312MHz а макс 1608Mhz. А ты ставил кернел, где частота cpu мин 1200Mhz, а макс 1704Mhz отсюда следует, что ядро не встало. Иначе на скрине было бы мин 1200Mhz, а макс 1704Mhz. И еще здесь скорее мое допущения, я в шапку добавил, на официальную прошивку модифицированое ядро не встанет.
CPU
MHz V
312 0.900
504 0.925
816 1.000
1008 1.075
1200 1.200
1416 1.250
1608 1.300
GPU
MHz V
133 0.975
199 1.000
265 1.025
364 1.100
497 1.150
600 1,250
630 1.275
DDR
MHz V
665 1.300
698 1.325
Прикрепленные файлы
kernel_cpu1608_gpu600_ddr665.img ( 9.24 МБ )
kernel_cpu1608_gpu600_ddr698.img ( 9.24 МБ )
kernel_cpu1608_gpu630_ddr665.img ( 9.24 МБ )
kernel_cpu1608_gpu630_ddr698.img ( 9.24 МБ )
А смысл делать cpu1608, если можно просто оставить cpustock он по моему в том же диапазоне работает.( Или я не прав?)
И точно так же про gpu600, ИМХО вроде как тоже самое что и gpustock. на нашем планшете. (Если я не прав, прошу меня поправить).
Вот посты где про это было сказано:
1014
1017
1163
Я в курсе, бабушка писала;) Как просили так и сделал. Кому не надо проходит мимо. ничего личного.
Память. С памятью тут у кого как. У кого-то тянет 720МГц, у кого-только 660-680. Вроде как от ее разгона планшет отзывается шустрее, но тут не совсем ясно.
Hellarion
Всё верно. У племяша сток в цитадели 40 фипсов (я отсоветовал, что либо делать), а вот его друзья захотели «гнать». Я им рекомендоал повышать частоту только памяти (сам радиоинженер, сейчас это электронник. руковожу теперь ;)) т.к. уже известно, что проц свою задачу выполняет на ура и больше, граф. проц. уже работает выше, чем положено. Память. ну она и в Африке память, чтобы её погнать. усё.
. а классно когда 52 года и всё «ребят» 🙂
да, железо вроде одинаковое, но работает по разному, поэтому те варианты ядра, что я «сваял», думаю, актуальны. Чем больше выбор, тем лучше.
19000 и опять что и на стоке)
На kernel_cpu1608_gpu630_ddr665.img полёт нормальный, но ускорения в тестах ПОЛНЫЙ НОЛЬ (цитадель = 33 что и на стоке, антуту
19000 и опять что и на стоке).
Так что сток ядро самое оптимальное.