トップ «前の日記(2022/03/25(Fri)) 最新 次の日記(2022/03/27(Sun))» RSS

titletitle


2022/03/26(Sat) [長年日記]

uk-icon [hard] PINE A64壊れた

使っていないPINE A64をなにかに使えないかなぁと思い、Buildrootしてみたのだが、デフォルト設定で起動せず。

しばらく更新などしてなかったので、パッケージ更新して、カーネル更新して、ブートローダーも更新したら、見事に立ち上がらなくなって文字通り、文鎮化した。おそらくブートローダーの書き換えで失敗したのだろう。起動時のメッセージが何も出なくなったので。

uk-icon [kernel] KernelをClang+LTOでビルド

LTO付きでビルドしたカーネルの起動の速さは、ラズパイのBuildrootで体験済みなので、x86_64のもやってみるか、と思ってGentooでやってみた。

まず、clangとllvmを入れる。

emerge clang lld

そして、make.confへ、以下を書き込む

LD="/usr/bin/ld.lld"

ビルド時は、

make CC=clang LLVM=1 LLVM_IAS=1 -j17 menuconfig
make CC=clang LLVM=1 LLVM_IAS=1 -j17

のようにする。カーネルオプションとしては、以下が必要。

CONFIG_LTO=y
CONFIG_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_HAS_LTO_CLANG=y
CONFIG_LTO_CLANG_THIN=y

結果を計ったところ、6秒の短縮となった。なお、カーネルの機能は必要最小限とまではしていないのであしからず。

Startup finished in 11.301s (firmware) + 3.135s (loader) + 762ms (kernel) + 2min 5.561s (userspace) = 2min 20.761s 
 
[    0.000000] Linux version 5.17.0 (kai@pinga) (clang version 13.0.1, LLD 13.0.1) #1 SMP PREEMPT Sat Mar 26 21:35:41 JST 2022