カーネルの再構築

テキストにある構築手順を演習するには前処理が必要です。

カーネルソースの入手

www.kernel.org からカーネルソース(tarball)をダウンロードします。
Web ブラウザから、ダウンロードしても良いですが、今回はは自動化を考え curl を用いました。
# curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.7.tar.xz > linux-5.10.7.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  111M  100  111M    0     0  5510k      0  0:00:20  0:00:20 --:--:-- 5309k
tarball を展開します。必要に応じ圧縮ツール xz パッケージを導入します。
tar の圧縮オプションは J です。
# yum -y install xz
# tar xJf linux-5.10.7.tar.xz
# cd linux-5.10.7
以下はテキストの手順をなぞっています。

Step 1

カーネル構築には、開発ツールのパッケージが必要です。
パッケージ概要
devtoolset-9開発ツール。標準のものはバージョンが古いため
scl-utils開発ツールの切り替えツール
sentos-release-sclSCL:Software Collection 上記に関連する別バージョンツール群
flex字句解析ツール(古くは lex)
bison構文解析(古くは yacc)

上記パッケージを追加。
# yum install -y devtoolset-9 scl-utils centos-release-scl
# scl -l
devtoolset-9
# scl enable devtoolset-9 'gcc -v'
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
	:
# source scl_source enable devtoolset-9

Step 2

以下はターゲット config の例です。他のターゲットの場合はさらに追加パッケージが必要となります。
例) gt-devel, ncurses-devel など
# make mrproperMr.Proper
# make config
  YACC	  scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/parser.tab.o
		:
Compile also drivers which will not load (COMPILE_TEST) [N/y/?] (NEW)
make config は対話が多いスクリプトなので、全てデフォルトで良いのであれば 以下のような裏技が利用できます。
(全て [Enter] 空うち、ちなみに応答数は5,600を超えます。)
# yes "" | make config

Step 3

make の実行 (Core i5 PC で149m9.903s≒2時間半)
# make
# make modules_install
# make install
カーネルビルド例

主なターゲット

ターゲット処理内容
config対話形式(逐一回答)で config を作成
menuconfigメニュー形式で config を作成。ncurses-develが必要
xconfigGUI で config を作成。gt-develが必要
cleanconfigを除く、生成されたファイル削除
mrproper生成されたファイル、config、バックアップの削除
distcleanmrproper + エディタのバックアップ、パッチを削除