Вопрос или проблема
Я работаю над petalinux, Linux для FPGAs от Xilinx. Исходный код находится здесь. Linux имеет ядро версии 3.x, и мне было поручено изменить ядро на более раннюю версию.
Каковы общие шаги для замены ядра? Я скачал более раннюю версию с kernel.org. Каков следующий шаг?
make defconfig
или make menuconfig
— опция menuconfig займет много времени, так как вам нужно будет настроить все.
make
sudo make install
используйте sudo только для части установки. Grub (или llvm) должен автоматически обновиться во время установки, но если этого не произойдет, возможно, вам потребуется выполнить sudo grub-mkconfig > grub.cfg
и mv grub.cfg /boot/grub/grub.cfg
и проверить, что ваше ядро находится в /boot, и если вы выполните grep по новому grub.cfg для вашего ядра, оно появится. При загрузке вам может потребоваться удерживать shift (опять же это для grub), чтобы иметь возможность выбрать, с какого ядра вы хотите загрузиться.
Тулчейн поставляется со своим собственным ядром версии Linux 3.x в вашем случае, и патчить это ядро — не лучшая идея, так как оно может использоваться в нескольких проектах, использующих Petalinux.
Как сказано в вашем вопросе, вам нужно заменить ядро на более старое:
Xilinx поддерживает свое репо ядра, где вы можете найти соответствующие теги. Обратитесь к Linux-xlnx.
Чтобы добавить любое конкретное ядро в проект Petalinux, обратитесь к Zynq TRD Раздел 5.3: Добавление поддержки ядра Linux версии 3.14.
ИЛИ вы можете выбрать
petalinux-config :: “Выбор компонента Linux” > “Удаленный” >
(Заполните путь к вашему репо Linux-xlnx GIT с тегом)
Но будьте осторожны, последнее будет загружать ядро каждый раз, когда вы удаляете директорию ‘build’.
Удачи!!
Ответ или решение
Вам необходимо заменить стандартное ядро в PetaLinux на более раннюю версию. Ваша работа связана с PetaLinux для FPGA от Xilinx, и было задано использование более старого ядра. Вы уже скачали требуемую версию с kernel.org, и следующий шаг — интеграция её в проект. Следуя указанным процессам и пунктам, вы сможете успешно завершить задачу.
Алгоритм по замене ядра
1. Подготовка
-
Проверка текущих ресурсов: Убедитесь, что текущее ядро не используется другими проектами, так как обновление или изменение может повлиять на другие разрабатываемые системы.
-
Клонирование источников: Для доступа к ранее использовавшимся версиям ядра откройте репозиторий Xilinx и выберите соответствующую ветку или метку.
2. Построение и конфигурация ядра
-
Конфигурация ядра:
- Выполните
make defconfig
, чтобы установить настройки по умолчанию. - Для более гибкой настройки используйте
make menuconfig
, однако будьте готовы к более длительному процессу, требующему внимания ко всем параметрам конфигурации.
- Выполните
-
Сборка ядра:
- Используйте команду
make
, чтобы собрать ядро. Это обеспечит корректную интеграцию всех модулей и драйверов.
- Используйте команду
3. Установка и обновление загрузчика
-
Установка:
- Выполните
sudo make install
, чтобы установить свежее собранное ядро. Задействование суперпользователя необходимо исключительно на этапе установки.
- Выполните
-
Конфигурация GRUB:
- Если конфигурация GRUB не была обновлена автоматически, выполните:
sudo grub-mkconfig -o /boot/grub/grub.cfg
- После этого убедитесь, что новое ядро присутствует в каталоге
/boot
, и проверьте обновлённыйgrub.cfg
на наличие записи о новом ядре.
- Если конфигурация GRUB не была обновлена автоматически, выполните:
4. Выбор ядра при загрузке
- При загрузке системы, удерживайте клавишу Shift для отображения доступных версий ядер, и выберите новое для загрузки.
Настройка в PetaLinux
-
В конфигурации PetaLinux выберите:
petalinux-config -> "Linux Component Selection" -> "Remote"
и укажите путь до GIT репозитория с нужной меткой. -
Будьте осторожны: при чистке каталога
build
, ядро будет скачиваться заново, что важно учесть для оптимальной работы инструментов сборки.
Заключение
Замена ядра может стать основой стабильной работы на текущих платформах Xilinx с минимизацией внешних изменений. Уделите внимание каждой стадии процесса, и успех вам гарантирован. Удачи!