Как собрать RPM ядра CentOS с пакетом kernel-firmware?

Вопрос или проблема

Я пытаюсь создать пользовательский RPM ядра для CentOS 6.10. Обычно я могу собрать ядро с помощью rpmbuild -ba file.spec, что действительно приводит к созданию ядра в данном случае, но оно собирается с отсутствующей зависимостью для kernel-firmware, которую, как я думаю, также должно собирать этот SPEC файл.

В SPEC файле есть опция сборки --with firmware, но это не предоставляет необходимую зависимость RPM.

rpmbuild -ba --with firmware kernel.spec

Как мне собрать эту зависимость RPM?

Вот точное сообщение об ошибке, когда я пытаюсь собрать:

rpm -ivh kernel-2.6.32-754.35.1.el6.local.i686.rpm
error: Failed dependencies:
        kernel-firmware >= 2.6.32-754.35.1.el6.local is needed by kernel-2.6.32-754.35.1.el6.local.i686

Ответ или решение

Для сборки RPM пакета ядра для CentOS 6.10 с зависимостью от пакета kernel-firmware, необходимо следовать нескольким последовательным шагам. В данном случае предполагается, что вы уже имеете доступ к исходным кодам ядра и к .spec файлу соответствующей версии.

Шаги по сборке ядра с пакетом kernel-firmware

  1. Проверка наличия необходимых пакетов:
    Убедитесь, что у вас установлены все зависимости для сборки пакета, включая rpm-build, gcc, make и другие необходимые инструменты.

    sudo yum groupinstall "Development Tools"
    sudo yum install rpm-build rpmdevtools
  2. Получение исходного кода ядра:
    Скачайте исходный код ядра и его зависимости, включая kernel-firmware.

  3. Изменение SPEC файла:
    В файле .spec, который вы используете для сборки ядра, убедитесь, что секция Requires содержит kernel-firmware. Обычно это делается путем добавления следующей строки в секцию Requires:

    Requires: kernel-firmware >= 2.6.32-754.35.1.el6.local
  4. Включение сборки прошивки:
    Убедитесь, что ваши опции сборки включают поддержку прошивки:

    В самом начале .spec файла добавьте флаг:

    %define firmware 1
  5. Запуск сборки:
    Выполните команду сборки с указанной опцией:

    rpmbuild -ba --with firmware kernel.spec

    Обратите внимание на правильность написания опции, в вашем вопросе опечатка --with firmare должна быть --with firmware.

  6. Проверка и установка созданного RPM пакета:
    После успешной сборки, проверьте наличие созданного RPM пакета. Обычно он будет находиться в директории ~/rpmbuild/RPMS/x86_64/ (или аналогичной).

    Установите созданный пакет и проверьте наличие зависимости:

    rpm -ivh ~/rpmbuild/RPMS/x86_64/kernel-2.6.32-754.35.1.el6.local.i686.rpm

    Убедитесь, что пакет kernel-firmware доступен. Если он еще не установлен, вам нужно будет его установить:

    sudo yum install kernel-firmware

Заключение

Если вы все сделали правильно, ваш собранный RPM пакет должен корректно содержать зависимость для kernel-firmware, и установка не должна выдавать ошибок о недостающих зависимостях. Если проблема все еще сохраняется, проверьте логи сборки и убедитесь в наличии всех необходимых файлов и конфигураций.

Оцените материал
Добавить комментарий

Капча загружается...