Если проблема действительно в ядре, ниже приведены инструкции по ее сборке из исходных кодов.
1.Получить исходные коды ядра
Прежде всего, вам необходимо выяснить устройство, для которого вы хотите собрать ядро.Зная имя устройства, вы можете клонировать для него правильные исходники ядра Android и собрать его.Например, для золотой рыбки вы должны использовать ядро из:
https://android.googlesource.com/kernel/goldfish/
Если вы не уверены, какое ядро использовать для вашего устройства, попробуйте использовать так называемое «общее ядро Android»:
https://android.googlesource.com/kernel/common/
В основном это работает так:
- Общее ядро Android основано на обычном ядре Linux, добавляя некоторые патчи для Android поверхit
- Ядра Android для определенных устройств основаны на общем ядре, добавляя к нему некоторые патчи для конкретных устройств.
Теперь, когда вы «клонировали» ядро, перейдите кВерсия ветки, которую вы хотите использовать:
$ git checkout android-4.14
2.Настроить цепочку инструментов
Я предполагаю, что вы хотите собрать ядро для архитектуры x86_64.Если это так, настройте свою цепочку инструментов следующим образом:
$ export PATH=$AOSP_DIR/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin:$PATH
$ export CROSS_COMPILE=x86_64-linux-androidkernel-
$ export ARCH=x86_64
где $AOSP_DIR
- путь к вашим источникам AOSP.Если у вас нет источников AOSP, вы можете получить набор инструментов отдельно (вне каталога исходных кодов ядра):
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9
3.Получить конфиги ядра Android
Скачать конфиги ядра Android (вне директории вашего ядра):
$ git clone https://android.googlesource.com/kernel/configs android-kernel-configs
4.Сконфигурируйте и соберите ядро
Теперь в вашем каталоге исходного кода ядра вы можете создать конфигурацию ядра (файл .config
), используя соответствующий файл defconfig и фрагменты конфигурации Android.Например, для золотой рыбки вы должны использовать эту команду:
$ ./scripts/kconfig/merge_config.sh \
arch/x86/configs/x86_64_ranchu_defconfig \
../android-kernel-configs/android-4.14/android-base.config \
../android-kernel-configs/android-4.14/android-recommended.config \
../android-kernel-configs/android-4.14/android-recommended-x86.config
Теперь генерируется .config
файл.На этом этапе вы можете запустить make menuconfig
и изменить конфигурацию ядра для своих нужд (например, включить некоторые параметры отладки и т. Д.).
Сборка ядра:
$ make -j4
Должно быть хорошо, но я не проверял (ни здание, ни работающий в эмуляторе).Поэтому, если вы можете проверить, работают ли эти инструкции, пожалуйста, оставьте свои комментарии.