С августа 2009 года ядро больше не является частью стандартного манифеста репозитория, который вы получаете, следуя инструкциям по загрузке исходного кода для проекта с открытым исходным кодом Android. Шаги, необходимые для успешной загрузки, сборки и запуска определенного ядра в эмуляторе, следующие:
- Получите ядро Android, добавив его в манифест репо или вручную, запустив:
git clone https://android.googlesource.com/kernel/goldfish.git
- Найдите правильную ветку для работы с эмулятором, например, золотую рыбку:
git checkout -t origin/android-goldfish-2.6.29 -b goldfish
- Generate the emulator configuration (qemu emulator runs arm code, i.e. an arm config):
make ARCH=arm goldfish_defconfig
- if that doesn't work, try
make ARCH=arm goldfish_armv7_defconfig
- Теперь соберите ядро, используя инструменты кросс-компиляции, распространяемые с проектом с открытым исходным кодом:
make ARCH=arm CROSS_COMPILE=mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
- Ядро, построенное таким образом, должно оказаться в папке arch / arm / boot вашего дерева ядра (куда вы помещаете код из git clone).
- Для запуска эмулятора с вашим ядром есть две альтернативы: либо скопировать его в предварительно созданную папку ядра проекта с открытым исходным кодом, чтобы заменить стандартное ядро. Другой вариант - запустить эмулятор с установленной опцией ядра:
emulator -kernel mydroid/kernel/common/arch/arm/boot/zImage
Обратите внимание, что в приведенном выше описании я использовал пути по умолчанию, вам нужно изменить их на то, что применимо к вашей настройке. Прошло некоторое время с тех пор, как я в последний раз тестировал это, но я думаю, что это должно сработать.
Некоторая дополнительная информация: В стандартном дистрибутиве Android с открытым исходным кодом ядро распространяется как предварительно созданный двоичный файл в папке mydroid/prebuilt/android-arm/kernel
, а исходный код не включен. Исходный код ядра был удален из манифеста по умолчанию по двум причинам, как я понимаю. Во-первых, для компонента платформы требуется много пропускной способности и дискового пространства, с которым большинство людей не будет работать много. Другая причина заключается в том, что, поскольку ядро построено с использованием системы сборки ядра, а не как часть системы сборки aosp, имеет смысл хранить его отдельно. Общая ветвь ядра - это ветвь, используемая эмулятором. Также есть ветки для экспериментальных, msm (платформы Qualcomm) и Omap (платформа TI) и, возможно, еще несколько. Если вы хотите использовать ядро Android с оборудованием, это может быть вам более интересно.
person
BMB
schedule
17.02.2010