カーネル/Arch build system
Arch Build System を使うことで、公式の linux パッケージをベースにカスタムカーネルを作成することができます。このコンパイル方法は全体のプロセスを自動化でき、よくテストされたパッケージに基づいています。PKGBUILD を編集することでカスタムカーネルの設定やパッチの追加が可能です。
材料の入手
公式リポジトリから abs パッケージと base-devel パッケージグループをインストールしてください。
まず最初に、カスタマイズの起点になる綺麗なカーネルが必要になります。ABS からカーネルパッケージファイルを取得してください:
$ ABSROOT=. abs core/linux
ファイアウォールによって rsync ポートがブロックされる場合は、-t オプションで tarball を使って同期することができます。
$ ABSROOT=. abs core/linux -t
その後に、必要なファイル (例: カスタム設定ファイル, パッチ, etc.) を各自のソースから手に入れて下さい。
PKGBUILD の修正
pkgbase
をあなたのカスタムパッケージの名前に変えて下さい、例えば:
pkgbase=linux-custom
build() の変更
変更するコンフィグオプションが少ない時は、デフォルトのオプションを使ってあなたのオプションを設定ファイルに追加することができます:
$ echo ' CONFIG_DEBUG_INFO=y CONFIG_FOO=n ' >> config.x86_64
また GUI ツールを使ってオプションを設定することも可能です。PKGBUILD の prepare() 関数内にある候補のどれかをアンコメントしてください、例えば:
PKGBUILD
... # load configuration # Configure the kernel. Replace the line below with one of your choice. #make menuconfig # CLI menu for configuration make nconfig # new CLI menu for configuration #make xconfig # X-based configuration #make oldconfig # using old config from previous kernel version # ... or manually edit .config ...
カーネルの .config
ファイルをすでに持っている場合は、nconfig
などのインタラクティブな設定ツールをアンコメントして、ツールを使って .config
をロードできます。こうすれば他の方法で発生するカーネルの名前付けの問題を避けられます。
新しいチェックサムを生成
コンフィグを修正したら、次を実行して新しいチェックサムを生成する必要があります:
$ updpkgsums
コンパイル
通常のコマンドを使ってカーネルをコンパイルします:
makepkg
カーネルパラメータの設定に (menuconfig などの) インタラクティブなプログラムを選んだ場合は、コンパイル中に行ってください。
インストール
makepkg が終わったら linux.install ファイルの変数が変わっているのが見て取れるはずです。後は、pacman (もしくは pacman に代わるプログラム) で通常通りにパッケージをインストールするだけです:
# pacman -U <kernel-headers_package> # pacman -U <kernel_package>
ブートローダー
これであなたのカスタムカーネルのフォルダとファイルが作成されました、例: /boot/vmlinuz-linux-test
。あなたのカーネルをテストするには、ブートローダーを更新して (GRUB では grub-mkconfig) カスタムカーネルに対応する新しいエントリ ('default' や 'fallback') を追加してください。そうすれば標準のカーネルとカスタムカーネルを選択できるようになります。