Назад | Перейти на главную страницу

Сборка ядра CentOS из RPM с исправлениями (но отсутствующие файлы в SRPM)

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

Я нашел Репозиторий Git для ядра CentOS, который, кажется, содержит почти все файлы, необходимые для сборки. Эти файлы представляют собой RPM-файлы ядра RHEL (.spec и другие), к которым применена дебрейдинг CentOS.

Мой план состоит в том, чтобы поддерживать параллельную ветвь на клоне этого репозитория с моими аппаратными исправлениями, которые затем можно объединить с c7 всякий раз, когда я хочу сгенерировать новый RPM ядра. Это по сути то, что c7-i686 ветка в репозитории CentOS.

Однако до сих пор мне не удавалось использовать это репозиторий Git напрямую для создания RPM ядра, потому что в нем отсутствуют некоторые файлы.

Например, попытка просто сгенерировать SRPM дает такую ​​ошибку:

$ rpmbuild -bs SPECS/kernel.spec

RPM build errors:                                                                                      
    Bad file: /home/user/rpmbuild/SOURCES/kernel-abi-whitelists-327.tar.bz2: No such file or directory
    Bad file: /home/user/rpmbuild/SOURCES/centos-kpatch.x509: No such file or directory               
    Bad file: /home/user/rpmbuild/SOURCES/centos-ldup.x509: No such file or directory                 
    Bad file: /home/user/rpmbuild/SOURCES/centos.cer: No such file or directory                       

Эти файлы являются доступны в распространяемой CentOS SRPM.

Эти файлы перечислены в .kernel.metadata файл в репозитории Gitвместе с числами, которые выглядят как своего рода хеш (но я не уверен, что это контрольная сумма или идентифицирующий хеш, например, фиксация Git):

39566b205b3d6870a6224a07b9757807bc2ff407 SOURCES/kernel-abi-whitelists-327.tar.bz2
55fb67d010de128c721b8b4ef224af02e49e7514 SOURCES/linux-3.10.0-327.18.2.el7.tar.xz
95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509
d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509
5a7d05a8298cf38d43689470e8e43230d8add0f9 SOURCES/centos-kpatch.x509
c61172887746663d3bdd9acaa263cbfacf99e8b3 SOURCES/centos-ldup.x509
6e9105eb51e55a46761838f289a917611cad8091 SOURCES/centos.cer

Однако это не коммиты или объекты в репозитории Git ядра CentOS (и я бы не ожидал, что они будут такими для тарболов). Поиск этих хэшей также, похоже, не дает особо поучительных результатов: в основном это сообщения в списках рассылки с патчем, который их вставил.

Тогда мои вопросы таковы: