「Kbuilder」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎See also: 飜訳)
(一部飜訳)
1行目: 1行目:
 
[[Category:カーネル]]
 
[[Category:カーネル]]
  +
kbuilder は、公式にサポートされている 4 つのカーネルのうちの 1 つを、独自のオプションのパッチや設定を加えて、別のパッケージ名でローカルにビルドすることができる bash スクリプトです。
kbuilder is a bash script that allows you to build one of the four officially supported kernels locally with your own optional patches and configuration, under a different package name.
 
   
  +
例えば、{{Pkg|linux-lts}} カーネルのソースを取得し、カーネルをインテルプロセッサに最適化するパッチを適用し、そのカーネルを '''linux-lts-intel-optimized''' としてインストールすることができます。
For example, you could fetch the sources of the {{Pkg|linux-lts}} kernel, apply a patch that optimizes the kernel for intel processors, and install that kernel as '''linux-lts-intel-optimized'''.
 
   
== Installation ==
+
== インストール ==
   
  +
kbuilder の取得には以下の方法があります:
The following methods can be used to get kbuilder:
 
* [[Install]] the {{AUR|kbuilder}} package.
+
* {{AUR|kbuilder}} パッケージを[[インストール]]する。
* Install the latest development version from the [https://github.com/AnnikaV9/kbuilder github repository].
+
* [https://github.com/AnnikaV9/kbuilder github リポジトリ]から最新の開発版をインストールする。
   
  +
== カーネルのビルド ==
== Building a kernel ==
 
   
To fetch the default vanilla {{Pkg|linux}} kernel sources and build the package with the default name '''linux-kbuilder-custom''':
+
デフォルトのバニラ {{Pkg|linux}} カーネルソースを取得し、デフォルトの名前 '''linux-kbuilder-custom''' でパッケージをビルドします:
   
 
$ kbuilder build
 
$ kbuilder build
   
{{Note|The build directory is {{ic|~/.kbuilder/cache}}.}}
+
{{Note|ビルドディレクトリは {{ic|~/.kbuilder/cache}} です。}}
   
  +
ビルドの過程で、kbuilder は PKGBUILD に bash シェルを注入します。このシェルは {{ic|build()}} が呼ばれる直前に実行され、パッチの追加やカーネル設定の変更をインタラクティブに行うことができます。シェルから抜けるとビルドは継続されます。
During the build process, kbuilder will inject a bash shell into the PKGBUILD. The shell will be run right before {{ic|build()}} is called, allowing you to add any patches or change the kernel config interactively. The build will continue once you exit from the shell.
 
   
  +
ビルドしたパッケージをインストールする:
To install the built packages:
 
   
 
$ kbuilder install
 
$ kbuilder install

2023年4月3日 (月) 17:42時点における版

kbuilder は、公式にサポートされている 4 つのカーネルのうちの 1 つを、独自のオプションのパッチや設定を加えて、別のパッケージ名でローカルにビルドすることができる bash スクリプトです。

例えば、linux-lts カーネルのソースを取得し、カーネルをインテルプロセッサに最適化するパッチを適用し、そのカーネルを linux-lts-intel-optimized としてインストールすることができます。

インストール

kbuilder の取得には以下の方法があります:

カーネルのビルド

デフォルトのバニラ linux カーネルソースを取得し、デフォルトの名前 linux-kbuilder-custom でパッケージをビルドします:

$ kbuilder build
ノート: ビルドディレクトリは ~/.kbuilder/cache です。

ビルドの過程で、kbuilder は PKGBUILD に bash シェルを注入します。このシェルは build() が呼ばれる直前に実行され、パッチの追加やカーネル設定の変更をインタラクティブに行うことができます。シェルから抜けるとビルドは継続されます。

ビルドしたパッケージをインストールする:

$ kbuilder install

Build variables

Although kbuilder does not have a configuration file, you can control the build process with environment variables.

  • KBUILDER_SOURCE_PKG should be set as 'linux', 'linux-lts', 'linux-zen' or 'linux-hardened'. kbuilder will fetch and build the kernel specified with this variable. Defaults to 'linux'. For more information about the official kernels, see kernel.
ノート: Patches that work on one kernel may not necessarily work on another.
  • KBUILDER_PKG_NAME_APPEND can be set as any string. It will be appended to the end of the kernel version and the kernel package. Defaults to 'kbuilder-custom'.
  • KBUILDER_BUILD_JOBS should be set as an integer. kbuilder will replace the make all line in the PKGBUILD with make -jX all, where X is the integer specified.

Example usage:

$ KBUILDER_BUILD_JOBS=4 KBUILDER_PKG_NAME_APPEND="my-custom-patch" KBUILDER_SOURCE_PKG="linux-zen" kbuilder build

Hooks

kbuilder looks for hooks in /etc/kbuilder/hooks/, and uses run-parts to execute them right before build() is called. The run-parts command is executed with the flag --regex "kbuilder-hook-*".

An example hook:

/etc/kbuilder/hooks/05-kbuilder-hook-cpu-optimize.sh
#!/bin/bash
#
# kbuilder hook for applying graysky2's kernel compiler patch:
# https://github.com/graysky2/kernel_compiler_patch
#

SOURCE="https://raw.githubusercontent.com/graysky2/kernel_compiler_patch/master"
PATCH="more-uarches-for-kernel-5.17+.patch"
HOOK_NAME="cpu-optimize-hook"

curl -o $PATCH $SOURCE/$PATCH || { echo "$HOOK_NAME failed when fetching $PATCH from $SOURCE" ; exit 1 ; }
patch -Np1 -i "$PATCH" || { echo "$HOOK_NAME failed when applying $PATCH" ; exit 1 ; }

To create a hook, create and make executable a file, with a name following the xx-kbuilder-hook-hookname form: they will be run in order according to the xx value.

参照