Здrавстуйте, даrагия читацели!
Сиводня мы будем сабираць йадро..да ни прастойэ, а Анбрейкабле.
Пририквизитэ:
-el7 -rpmbuild
гинирируем клютчи длйа под_писи
openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \ -config x509.genkey -outform PEM -out kernel_key.pem \ -keyout kernel_key.pem
котчаем српм
https://yum.oracle.com/repo/OracleLinux/OL7/UEKR5/x86_64/getPackageSource/kernel-uek-4.14.35-1844.3.2.el7uek.src.rpm rpm -Uvh kernel-uek-4.14.35-1844.3.2.el7uek.src.rpm
Правим rpmbuild/SOURCES/config-x86_64
CONFIG_SYSTEM_TRUSTED_KEYS="certs/bookie.pem"
Правим rpmbuild/SPECS/kernel-uek.spec
%define with_debug 0 .... BuildKernel() { ... cp /root/kernel_key.pem certs/bookie.pem make -s mrproper
сабирайэм
rpmbuild -ba /root/rpmbuild/SPECS/kernel-uek.spec
устанавливайэм и рибутаимсо в новайэ йадро
ципэрь надабы сабраць zfs. Сабираць мы будзем 0.8.0-rc3, иба там йэсць шыфраванийэ и прочая хуйнйа. Правда придьоцца шлифаваць напильнегом. Ну да нам не привыкаць.
cd rpmbuild/SOURCES wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.8.0-rc3/zfs-0.8.0-rc3.tar.gz mv zfs-0.8.0-rc3.tar.gz zfs-0.8.0.tar.gz tar zxfv zfs-0.8.0.tar.gz cd zfs-0.8.0 ./configure --with-config=srpm rpmbuild -ba rpm/generic/zfs.spec
юзерспейс сабралса. типерь казалас бы дастатачна сдзелаць rpmbuild -ba rpm/generic/zfs-kmod.spec, но хуй там.
напильник1: /root/rpmbuild/SOURCES/kmodtool
меняем /usr/lib/modules на /lib/modules kernel-devel на kernel-uek-devel kernel-uname на kernel-uek-uname и удоляем Requires: ${kmodname}-kmod-common >= %{?epoch:%{epoch}:}%{version}
напильник2: rpm/generic/zfs-kmod.spec
# find-debuginfo.sh only considers executables chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* %{?akmod_install} rm -rf ${RPM_BUILD_ROOT}/usr/src cd /usr/src/kernels/4.14.35-1844.3.2.el7uek.x86_64 find ${RPM_BUILD_ROOT} -name '*.ko*' -print0 | xargs -0r -P 1 -n 1 '-I{}' /usr/bin/strip -g '{}' find ${RPM_BUILD_ROOT} -name '*.ko*' -print0 | xargs -0r -P 1 -n 1 '-I{}' scripts/sign-file sha512 /root/kernel_key.pem /root/kernel_key.pem '{}' %clean
циперь можна сабираць.