こんにちは。
今回は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を作る際に、defconifgで作るとうまくいき(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: 14MB
olddefconfig: 76MB
程度になりました。
それでは、ばいち。
コメント