Оглавление:
- Запасы
- Шаг 1. Получение необходимых инструментов
- Шаг 2. Компиляция собственных инструментов сборки для кросс-компиляции
- Шаг 3. Установка исправлений и настройка ядра
- Шаг 4: создание ядра RT
- Шаг 5: Установка нового ядра
Видео: Компиляция 64-битного ядра RT для Raspberry Pi 4B .: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
В этом руководстве будет рассмотрен процесс сборки и установки 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
команда
Рекомендуемые:
Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: 6 шагов
Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: если, как и я, вы окажетесь в положении, когда вам нужно повторно скомпилировать биос QP / M для вашего MBC2 - тогда вы это сделаете следующим образом. Я задокументировал процесс перекомпиляции существующей версии. Вы должны вносить изменения в фактическую Bios
Как настроить отладчик ядра Windows по сети: 6 шагов
Как настроить отладчик ядра Windows по сети: Отладка - популярный инструмент, используемый для выяснения первопричины ошибки. Ошибка может проявляться по-разному. это может вызвать сбой системы (синий экран / BSOD), это может вызвать сбой приложения, это может привести к зависанию вашей системы, чтобы назвать fe
Orange PI HowTo: компиляция Sunxi Tool для Windows под Windows: 14 шагов (с изображениями)
Orange PI HowTo: Скомпилируйте Sunxi Tool для Windows под Windows: ОБЯЗАТЕЛЬСТВА: Вам понадобится (настольный) компьютер под управлением Windows. Интернет-соединение. Плата Orange PI Board. Последняя не обязательна, но я уверен, что она у вас уже есть. В противном случае Вы не прочитаете эту инструкцию. Когда вы покупаете Orange PI грех
Компиляция MadMAC: 4 шага
Компиляция MadMAC: краткое руководство для параноиков по компиляции MadMAC
Устранение неисправного IBook G4 с проблемами паники ядра аэропорта: 4 шага
Исправление сломанного IBook G4 с проблемами паники ядра аэропорта: Всем привет! Наконец-то я сделал кое-что, о чем стоит написать инструкцию :-) Вы, вероятно, здесь, потому что ваш good'ol iBook начал вести себя странно после обновления с Mac OS 10.4. 8 к 10.4.9. В том виде, в каком вы всегда