Linux KernelをBuildしようとしたら詰まったところ
こんにちは。
今回は kernel.org にある Kernel を Build しようとしたところ Error になり詰まったので、改善方法をメモがてら残しておきます。
Error 内容
make を実行してしばらくすると以下のようなエラーになります。
CC [M] arch/x86/kvm/svm/avic.o
CC [M] arch/x86/kvm/svm/sev.o
CC kernel/context_tracking.o
CC kernel/iomem.o
CC [M] arch/x86/kvm/svm/hyperv.o
CC [M] arch/x86/kvm/svm/svm_onhyperv.o
CC kernel/rseq.o
CC kernel/watch_queue.o
LD [M] arch/x86/kvm/kvm.o
AS [M] arch/x86/kvm/vmx/vmenter.o
CHK kernel/kheaders_data.tar.xz
CC [M] kernel/torture.o
AS [M] arch/x86/kvm/svm/vmenter.o
GEN kernel/kheaders_data.tar.xz
LD [M] arch/x86/kvm/kvm-intel.o
LD [M] arch/x86/kvm/kvm-amd.o
AR kernel/built-in.a
CC [M] kernel/kheaders.o
make[2]: *** [/home/alicey/work/alicey-kernel/6.13.8/BUILD/linux-6.13.8/Makefile:1989: .] Error 2
make[1]: *** [Makefile:251: __sub-make] Error 2
make[1]: Leaving directory '/home/alicey/work/alicey-kernel/6.13.8/BUILD/linux-6.13.8'
error: Bad exit status from /var/tmp/rpm-tmp.CINzKf (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.CINzKf (%build)
make: *** [Makefile:12: build] Error 1
はじめは、kheaders.o の Build に失敗でもしているのかと思い単独 Build しても問題なく、-V オプションを付けて make を実行してもなぜ失敗しているのかよくわかりませんでした。
.config を作る際に、defconfig で作るとうまくいき (kernel module が足りないので、起動には失敗して emergency mode になる)、Build に利用していた RockyLinux の /boot 配下から Copy したものに対して olddefconfig すると Build に失敗する状況でした。
改善方法
CONFIG_SYSTEM_TRUSTED_KEYS の指定を空にすることで改善しました。
SecureBoot などで利用する署名用の鍵なのでしょうか。(適当にググると皆さん無効にしているようには見えますが…)
asis
$ cat /boot/config-5.14.0-503.26.1.el9_5.x86_64 |grep certs/rhel.pem
CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"
tobe
$ cat SOURCES/config |grep CONFIG_SYSTEM_TRUSTED_KEYS
CONFIG_SYSTEM_TRUSTED_KEYS=""
(余談ですが、このオプションみつけるまで menuconfig → build を繰り返したので辛かった….)
修正後
修正して Build したところ問題なく Install できました!
余談ですが、defconfig で Build した RPM と、olddefconfig で Build した RPM の容量はそれぞれ
- defconfig: 14MB
- olddefconfig: 76MB
程度になりました。
出来上がったものはこの辺に置いておきます。
https://yumrepo.alicey.dev/alicey-kernel/
それでは、ばいち。

コメント