Оглавление:

Компиляция 64-битного ядра RT для Raspberry Pi 4B .: 5 шагов
Компиляция 64-битного ядра RT для Raspberry Pi 4B .: 5 шагов

Видео: Компиляция 64-битного ядра RT для Raspberry Pi 4B .: 5 шагов

Видео: Компиляция 64-битного ядра RT для Raspberry Pi 4B .: 5 шагов
Видео: ПК НА ЛАДОНИ | RASPBERRY PI 4B С ALIEXPRESS | ПЕРВЫЙ ЗАПУСК И НАСТРОЙКА 🍓🍓🍓 2024, Ноябрь
Anonim
64-битная компиляция ядра RT для Raspberry Pi 4B
64-битная компиляция ядра RT для Raspberry Pi 4B

В этом руководстве будет рассмотрен процесс сборки и установки 64-разрядного ядра реального времени на Raspberry Pi. RT Kernel имеет решающее значение для полной функциональности ROS2 и других решений IOT в реальном времени.

Ядро было установлено на Raspbian на базе x64, который можно получить здесь

Примечание. Этот простой учебник требует базовых знаний об операционной системе Linux.

Также из-за ограничений этой платформы во всех http-ссылках отсутствует h. Чтобы исправить их, просто добавьте букву "h" перед ссылкой

Запасы

ПК на базе x64 под управлением Linux

Raspberry Pi 4B с уже установленным Raspbian 64

Подключение к Интернету.

Шаг 1. Получение необходимых инструментов

Сначала нам нужно выбрать необходимые инструменты для разработки.

Их можно получить, выполнив следующие команды в терминале Linux

sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev

Шаг 2. Компиляция собственных инструментов сборки для кросс-компиляции

Следующим шагом является подготовка и компиляция инструментов для кросс-компиляции нашего ядра.

Первый инструмент, который мы будем устанавливать, это Binutils, этот учебник был протестирован с binutils версии 2.35.

cd ~ / Downloadswget ttps: //ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2tar xf binutils-2.35.tar.bz2cd binutils-2.35 /./ configure --prefix = / opt / aarch64 - цель = aarch64-linux-gnu --disable-nls

После завершения настройки нам нужно скомпилировать программу, используя следующие команды

сделать -jx

sudo make install

где -jx означает, сколько заданий вы хотите запустить i parrarell. Практическое правило - ставить не больше, чем количество потоков в вашей системе. (например make -j16)

и наконец нам нужно экспортировать путь

экспорт ПУТЬ = $ ПУТЬ: / opt / aarch64 / bin /

Затем приступаем к сборке и установке GCC.

cd..wget ttps: //ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xztar xf gcc-8.4.0.tar.xzcd gcc-8.4.0 /. /contrib/download_prerequisites./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages = c --disable-Multilib

Чем так же, как и раньше, делаем и устанавливаем наш компилятор

сделать all-gcc -jx

sudo make install-gcc

Если все прошло гладко, выполните команду

/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v

должен привести к ответу, подобному этому.

ux-gnu-gcc -v Использование встроенных спецификаций. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Цель: aarch64-linux-gnu Настроено с помощью:./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-Multilib Модель потока: одиночный gcc версии 8.4.0 (GCC)

Шаг 3. Установка исправлений и настройка ядра

Теперь пришло время получить наше ядро и патч RT.

В этом руководстве будет использоваться ядро rpi v 5.4 и исправление RT RT32. Эта комбинация мне понравилась. Однако с разными версиями все должно работать нормально.

mkdir ~ / rpi-ядро

cd ~ / rpi-kernel git clone ttps: //github.com/raspberrypi/linux.git -b rpi-5.4.y wget ttps: //mirrors.edge.kernel.org/pub/linux/kernel/projects/rt /5.4/older/patch-5.4.54-rt32.patch.gz mkdir компакт-диск с выходным файлом ядра linux

потом распаковать патч.

gzip -cd../patch-5.4.54-rt32.patch.gz | патч -p1 --verbose

И инициализировать конфигурацию для Rpi 4B

сделать O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig

После этого нам нужно войти в menuconfig

сделать O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig

Когда он запускается, нам нужна существующая конфигурация, затем перейдите к

Общие -> Модель вытеснения и выберите вариант в реальном времени.

чем сохраняем новую конфигурацию и выходим из меню.

Шаг 4: создание ядра RT

Теперь пришло время компиляции. Учтите, что это может занять много времени в зависимости от возможностей вашего ПК.

сделать -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-

Как и раньше, -jx означает количество заданий. После успешной компиляции нам нужно упаковать наше ядро и отправить его в Raspberry Pi. Для этого выполняем следующие команды.

экспорт INSTALL_MOD_PATH = ~ / rpi-kernel / rt-kernelexport INSTALL_DTBS_PATH = ~ / rpi-kernel / rt-kernelmake O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- modules_install dtbs_install-cp../ out / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..

Теперь наше ядро должно быть внутри архива rt-kernel.tgz и готово к отправке и установке.

Шаг 5: Установка нового ядра

Самый простой способ отправить ядро в raspbperry - использовать scp.

Мы просто выполняем команду follwing.

scp rt-kernel.tgz pi @: / tmp

Теперь нам нужно войти в систему через ssh и распаковать ядро.

ssh pi @

При входе в систему мы копируем наши файлы, используя следующие команды.

cd / tmptar xzf rt-kernel.tgz cd boot sudo cp -rd * / boot / cd../lib sudo cp -dr * / lib / cd../overlays sudo cp -dr * / boot / overlays cd../ Broadcom sudo cp -dr bcm * / boot /

После этого остается отредактировать файл /boot/config.txt и добавить следующую строку.

ядро = kernel8.img

После перезагрузки пи все должно работать нормально.

Чтобы проверить, успешно ли было установлено новое ядро, вы можете выполнить

uname -a

команда

Рекомендуемые: