Як перехрестити компіляцію ядра на хості Ubuntu?


16

Я хотів би дізнатися більше про те, як працює ядро. Частина цього полягає в тому, щоб скласти його сам. Як перехрестити компіляцію ядра на хості Ubuntu?

Відповіді:


24

Підготовка

Спочатку нам потрібно встановити необхідні передумови. Я припускаю, що у вас є sudoдоступ.

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git це система управління версіями, яка використовується командою Linux ядра.
  • ncursesце бібліотека для створення консольних меню. Це необхідно для 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

Необов’язково: налаштувати збірку за допомогою менюconfig

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

Потім запустіть компіляцію

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Список літератури

1
Дякую вам за надання альтернативи використанню crosstool-ng .
earthmeLon

У моєму випадку CROSS_COMPILE - це лише префікс, тому наступного має бути достатньо (без gcc наприкінці): make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
небезпека89

4

Я думаю, що Алекс правий, але gcc-arm-linux-gnueabi складено для arm cpus без апаратного блоку з плаваючою точкою. Ви можете знайти крос-компілятор із підтримкою armhf на веб- сайті: https://github.com/raspberrypi/tools та хороший підручник для початку тут: http://hertaville.com/2012/09/28/development-environment- малиновий-пі-крос-компілятор /


0

Офіційна документація

https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )

Я рекомендую вам просто виконати вказані нижче дії або надіслати запит на витяг, якщо щось застаріло або недостатньо зрозуміло: ці інструкції, найімовірніше, є правильними та актуальними, оскільки вони є частиною офіційної документації проект.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.