Как скомпилировать ядро ​​​​Linux для настоящего телефона Android?

Я успешно скомпилировал и загрузил пользовательское ядро ​​Linux в эмулятор Android (Eclair). Теперь я хочу скомпилировать ядро ​​​​для реального устройства Android (Samsung Galaxy 5, Android 2.1 (Eclair)).

Похоже, тот же образ ядра, который был скомпилирован для эмулятора, нельзя использовать с реальным устройством. Нет четкой информации о том, как это сделать.

Может кто-нибудь сказать, какие шаги нужно изменить, чтобы получить образ ядра для реального телефона Android.


person Preetam    schedule 03.04.2011    source источник


Ответы (1)


Вы, вероятно, используете дерево ядра MSM (для процессоров Qualcomm MSM), но Samsung Galaxy S имеет процессор Samsung Hummingbird и поэтому нуждается в дереве ядра Samsung, найденном здесь.

Я не знаю, включает ли дерево ядра defconfig специально для Galaxy S, но вы, вероятно, могли бы использовать «herring_defconfig» (make herring_defconfig). Селедка — это кодовое название Nexus S, но Galaxy S очень похож на него.

Если вы также создаете инфраструктуру Android (а не только ядро), вам, вероятно, потребуется извлечь двоичные драйверы (для камеры, Bluetooth, Wi-Fi, радио и т. д.) из существующих изображений телефона и добавить их в вашу систему. строить.

person David B.    schedule 03.04.2011
comment
Большое спасибо, Дэвид. На самом деле, я хочу включить полную поддержку iptables (Netfilter) в ядре. Теперь тот, который я скомпилировал для эмулятора, работает. По крайней мере, он блокирует URL. Но мне нужно вставлять iptables в /system/bin каждый раз, когда я запускаю эмулятор. Я не знаю, сохранится ли та же проблема с телефоном. Поэтому я хотел, чтобы /system/bin по умолчанию содержал двоичный файл iptables. - person Preetam; 04.04.2011
comment
Я скопировал бинарный файл iptables из ~/myandroid/out/target/product/generic/system/bin и загрузил его в эмулятор. И я скомпилировал ядро ​​с полной поддержкой Netfilter и iptables в файле .config. А опции netfilter и iptables так же вероятны, как и в ПК Linux с xtables. Я также включил поддержку загрузки модулей в конфигурации ядра. - person Preetam; 04.04.2011
comment
Но когда я пытаюсь сохранить iptables, я получаю сообщение об ошибке: iptables-save не найден. iptables-save — это модуль, который загружается при необходимости (я думаю). Итак, как я могу включить это. Кажется, что файл Android.mk из ~/myandroid/external/iptables нужно изменить, так как файлы iptables-save.c, iptables-restore.c они существуют в папке iptables, но у них нет записи в make-файле. Что я должен сделать, чтобы включить полную функциональность iptables как в эмуляторе, так и на телефоне. - person Preetam; 04.04.2011
comment
Это действительно другой вопрос. Вы должны добавить его как новый вопрос, чтобы другие люди с такой же проблемой могли узнать его по названию. Но чтобы дать ответ, да, похоже, что make-файл Android.mk по умолчанию просто создает двоичный файл iptables, а не двоичные файлы iptables-save или iptables-restore. Вам нужно будет добавить правила в make-файл для них. - person David B.; 04.04.2011