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 できました!

Kernel 6.13.8 で起動した様子 (uname -a の出力)

余談ですが、defconfig で Build した RPM と、olddefconfig で Build した RPM の容量はそれぞれ

  • defconfig: 14MB
  • olddefconfig: 76MB

程度になりました。

出来上がったものはこの辺に置いておきます。

https://yumrepo.alicey.dev/alicey-kernel/

それでは、ばいち。

コメント