Я хотел бы понять больше о том, как работает ядро. Часть этого состоит в том, чтобы собрать это непосредственно. Как я могу кросс-компилировать ядро на хосте Ubuntu?
Я хотел бы понять больше о том, как работает ядро. Часть этого состоит в том, чтобы собрать это непосредственно. Как я могу кросс-компилировать ядро на хосте Ubuntu?
Ответы:
Во-первых, нам нужно установить необходимые предпосылки. Я полагаю, у вас есть sudo
доступ.
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git
система контроля версий, используемая командой ядра Linuxncurses
библиотека для создания консольных меню Это необходимо для menuconfig
.make
запускает сборник для нас.gcc-arm-linux-gnueabi
это кросс-компиляторДалее нам нужно получить источник, запустив:
git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux
Это клонирует исходный код в каталог с именем raspberrypi-linux
и изменит его на него.
Сначала нам нужно переместить файл конфигурации, запустив
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
Затем настройте сборку ядра
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
Необязательно: Настройте сборку с помощью menuconfig
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
Затем запустите компиляцию
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Ссылки
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Я думаю, что Алекс прав, но gcc-arm-linux-gnueabi скомпилирован для процессора процессора без аппаратного модуля с плавающей запятой. Вы можете найти кросс-компилятор с поддержкой armhf по адресу : https://github.com/raspberrypi/tools и хорошим руководством, с которого можно начать здесь: http://hertaville.com/2012/09/28/development-environment- малина-пи-кросс-компилятор /
Официальная документация
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Я бы порекомендовал вам просто выполнить указанные там шаги или отправить запрос на извлечение, если что-то устарело или недостаточно ясно: эти инструкции, скорее всего, будут правильными и актуальными, поскольку они являются частью официальной документации проект.