Изменение и загрузка ядра Linux на мобильном устройстве

Изменение и загрузка ядра Linux на мобильном устройстве

Во время обучения я разрабатывал приложения и веб-сайты Android iOS почти 18 месяцев. Сейчас, в качестве своего выпускного проекта, я работаю над исходным кодом Linux с целью загрузки его на мобильном устройстве – например, Android. Я успешно установил его в качестве пакета Debian, следуя руководствам в Интернете. В настоящее время я использую Ubuntu.

У меня есть стратегия, но я не уверен, что я на правильном пути. Она следующая:

А:

  1. Загрузите исходный код Linux. Удалите лишние драйверы, скомпилируйте и установите его на запущенную Ubuntu и используйте.

  2. Настройте код дальше и загрузите его как свой собственный дистрибутив. Для этого я следуюЛФС.

  3. Указать конкретное целевое мобильное устройство, изменить код для него, написать драйверы, если они мне нужны, не уверен, какие именно (вот почему я здесь :) ), и загрузить на него ядро.

Я не знаю, правильная ли у меня стратегия или нет. Буду очень признателен, если кто-нибудь мне скажет:

Б:

  1. На правильном ли я пути? Если нет, то какой может быть правильный?
  2. Нужно ли мне указывать мобильное устройство и настраивать код ядра для него?
  3. Что еще, помимо драйверов, мне нужно изменить в ядре?
  4. И последнее, но не менее важное: когда я загружу ядро ​​на мобильном устройстве, будет ли там какой-либо интерфейс или терминал?

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

Обновление: Я хочу подтвердить, верна ли моя стратегия или нет. Если нет, то просто назовите шаги, которым я должен следовать.

решение1

Не было бы намного проще сначала попробовать скомпилировать ядро ​​Android Linux, а не только ванильное ядро ​​с kernel.org? В принципе, это должно быть доступно для каждого устройства Android в дикой природе, поскольку ядро ​​распространяется по лицензии GPL. Если вы не можете получить исходный код ядра для вашего целевого устройства, потому что производитель либо не имеет представления, либо является известным нарушителем GPL, ваш следующий шаг — загрузить и скомпилировать исходный код для устройства с похожей SoC (Tegra 3, RK3188 и т. д.).

Обратите внимание, что загрузка на мобильном устройстве, работающем на множестве конструкций SoC, является гораздо более сомнительным предложением, чем загрузка с настольного компьютера или ноутбука с привычными процессорами AMD или Intel. На самом деле вы даже не уверены, сможете ли вы скопировать или прошить ядро ​​на мобильное устройство (если, конечно, мобильное устройство не является ноутбуком). Так что вам нужно изучить и это.

Итак, первое, что я бы исследовал, это целевое устройство. Хорошей идеей будет выбрать устройство, которое может загружаться с внешней SD-карты, поскольку теоретически вы можете запустить Linux, просто скопировав свое ядро ​​и другие материалы ОС на SD-карту. Помимо этого, выберите устройство с рабочим разделом восстановления, который позволит вам прошить ядро ​​в соответствующий загрузочный раздел. Такое устройство будет фактически иметь два загрузочных раздела: загрузочный раздел Android и раздел восстановления. Поэтому в случае, если что-то пойдет не так и ваше устройство не будет загружаться, вы можете нажать специальную комбинацию аппаратных кнопок на вашем устройстве, чтобы загрузиться с раздела восстановления и вернуть устройство в работоспособное состояние.

Связанный контент