Компиляция ядра реального времени из источников MRH RHEL 6 в CentOS 6

Я пытаюсь скомпилировать kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm из RPM -пакетов RHEL6 MRG в системе Centos 6 x86_64.

Я впервые делаю это, поэтому я исследовал, как это сделать правильно. Из того, что я нашел, я сделал:

rpm -ihv kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm 
cd ~/rpmbuild/SPECS
nano kernel-rt.spec 
rpmbuild -bb kernel-rt.spec 2> build-err.log | tee build-out.log

в kernel-rt.spec я отключил компиляцию вариантов, которые мне не нужны - т.е. компилировал только rt и прошивку. Также определено не строить debuginfo.

После компиляции я попал в ~/rpmbuild/RPMS/x86_64/ два файла:

kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64.rpm
kernel-rt-devel-2.6.33.9-rt31.75.el6rt.x86_64.rpm

но когда я попытался установить ядро, я получил сообщение об ошибке: $ sudo rpm -ihv kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64.rpm error: Сбой зависимостей: kernel-rt-firmware >= 2.6.33.9-rt31.75.el6rt требуется для kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64

Там не было папки ~/rpmbuild/RPMS/noarch - где я ожидал, что она появится.

Также я попробовал rpmbuild --rebuild kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm, но получил те же результаты...

Что я делаю неправильно? Я видел этот вопрос, но он говорит о том, что я уже пробовал, и я хочу собрать ядро ​​самостоятельно, а не использовать предварительно собранные из SLC.

3 ответа

Решение

Я по-прежнему рекомендую использовать скомпилированные ядра реального времени, если вы не вносите какие-либо радикальные изменения драйверов или другие оптимизации, но если вам нужно собрать свои собственные, сделайте следующее, чтобы сгенерировать правильные пакеты.

rpmbuild -ba --without debug kernel.spec

Это строит ваше ядро.

rpmbuild -ba --target noarch --with firmware --without debug --without doc --without perftool --without perf kernel.spec 

Это создает пакет kernel-rt-firmware.

Я сам не пробовал, но в репозитории, на который есть ссылка в вопросе, есть SRTM rt-прошивки. Здание, которое может обеспечить зависимость.

cd ~/rpmbuild/SPECS
rpmbuild -bb --without debug kernel-rt.spec --clean

cd ~/rpmbuild/SPECS
rpmbuild -bb --target noarch --with firmware --without debug --without doc --without perftool --without perf kernel-rt.spec --clean
Другие вопросы по тегам