Я хотів би дізнатися більше про те, як працює ядро. Частина цього полягає в тому, щоб скласти його сам. Як перехрестити компіляцію ядра на хості Ubuntu?
Я хотів би дізнатися більше про те, як працює ядро. Частина цього полягає в тому, щоб скласти його сам. Як перехрестити компіляцію ядра на хості Ubuntu?
Відповіді:
Спочатку нам потрібно встановити необхідні передумови. Я припускаю, що у вас є 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
Список літератури
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Я думаю, що Алекс правий, але gcc-arm-linux-gnueabi складено для arm cpus без апаратного блоку з плаваючою точкою. Ви можете знайти крос-компілятор із підтримкою armhf на веб- сайті: https://github.com/raspberrypi/tools та хороший підручник для початку тут: http://hertaville.com/2012/09/28/development-environment- малиновий-пі-крос-компілятор /
Офіційна документація
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Я рекомендую вам просто виконати вказані нижче дії або надіслати запит на витяг, якщо щось застаріло або недостатньо зрозуміло: ці інструкції, найімовірніше, є правильними та актуальними, оскільки вони є частиною офіційної документації проект.