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を作る際に、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でBuildしたRPMと、olddefconfigでBuildしたRPMの容量はそれぞれ
defconfig: 14MB
olddefconfig: 76MB
程度になりました。



それでは、ばいち。

コメント