「Linux-ck」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リダイレクトに修正)
タグ: 新規リダイレクト
 
(同じ利用者による、間の7版が非表示)
1行目: 1行目:
  +
#REDIRECT [[非公式ユーザーリポジトリ/Repo-ck]]
[[Category:カーネル]]
 
[[en:Linux-ck]]
 
[[ru:Linux-ck]]
 
[[zh-hans:Linux-ck]]
 
{{Related articles start}}
 
{{Related|Repo-ck}}
 
{{Related|カーネル}}
 
{{Related|Modprobed-db}}
 
{{Related articles end}}
 
 
== パッケージ ==
 
 
{{AUR|Linux-ck}} は [[AUR]] や [[#コンパイル済みのパッケージを使う|repo-ck の非公式リポジトリ]]にあるパッケージでインストールすることができ、それによって旧 Brain Fuck Scheduler (BFS) を置き換える MuQSS (Multiple Queue Skiplist Scheduler) などを含む Con Kolivas の ck パッチセットがあてられたカーネル/ヘッダーを動作させることが可能です。どんな負担がかかっているときも素晴らしいデスクトップの応答性とレスポンスを得ることができる MuQSS を求める多くの Archer はこのパッケージを使っています。
 
 
CK パッチセットはデスクトップ・ノートパソコンでの使用を想定して設計しておりサーバー向けではありません。CPU のコア数が16個以下の環境で低遅延システムを実現します。
 
 
=== リリースサイクル ===
 
 
Linux-ck は公式の ARCH カーネルのリリースサイクルにおおよそ従っています。リリースには以下が必要になります:
 
 
* 最新のカーネルバージョンに対応した CK パッチセット
 
* 対応する Arch カーネルが存在しないと nvidia など他のパッケージが壊れます。公式の {{Pkg|linux}} パッケージについては [https://git.archlinux.org/svntogit/packages.git/log/trunk?h=packages/linux git.archlinux.org] を参照。
 
 
=== パッケージのデフォルト ===
 
 
コンフィグファイルには3つの変更がされています:
 
# ck パッチセットを有効化/無効化するオプション。
 
# tickrate を 100 Hz に設定 (CK の推奨事項)。
 
# コンパイル時に追加の CPU 最適化を有効化する [https://github.com/graysky2/kernel_gcc_patch GCC パッチ]の適用 (このオプションは標準の linux-ck パッケージには含まれていないためユーザーがカスタムオプションでコンパイルするときだけ利用できます)。
 
 
他のオプションはすべてメインカーネルのコンフィグファイルにそって ARCH のデフォルトに設定されています。もちろん、ユーザーは自由にコンフィグを修正することが可能です。{{AUR|linux-ck}} パッケージには ''nconfig'' コンフィグエディタを使うオプションが含まれています (下のセクションを参照)。CK の [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt BFS configuration FAQ] に設定値の提案があります。
 
 
=== 長期サポート版 (LTS) の CK リリース ===
 
 
linux-ck パッケージの他に、上記のパッチセットがあてられた以下の LTS カーネルリリースが存在します。上述の通りコンフィグファイルに修正が加えられています:
 
 
* {{AUR|linux-lts-ck}} - CK パッチセットがあたった最新の Arch Linux LTS カーネル
 
 
{{Note|上記パッケージは vishwin によってメンテナンスされています。パッケージ済みのバージョンは非公式の ck リポジトリには存在しません。}}
 
 
== インストール ==
 
 
{{Note|カーネルを追加したら、ユーザーは手動で[[ブートローダー]]の設定ファイルを更新して新しいカーネルイメージが使われるようにする必要があります。}}
 
 
ユーザーがカーネルパッケージを入手する方法は2つあります。
 
 
=== ソースからパッケージをコンパイル ===
 
 
[[AUR]] には上述のパッケージのエントリが存在します。
 
 
PKGBUILD を修正することで linux-ck パッケージをカスタマイズすることが可能です:
 
 
* nconfig でユーザーにあわせた細かい調整。
 
* localmodconfig でモジュールを最小限にコンパイル。
 
* 標準の ARCH コンフィグオプションを迂回して最新のカーネルの .config ファイルを使用。
 
* [http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ I/O スケジューラ] をデフォルトに設定。
 
 
オプションに関する詳細は PKGBUILD のラインコメントを見て下さい。AUR からコンパイルするときは絶対に読むようにしましょう。
 
 
{{Note|AUR には linux-ck 専用のモジュールのための PKGBUILD が存在します。例えば {{AUR|nvidia-ck}}{{Broken package link|パッケージが存在しません}}, {{AUR|nvidia-340xx-ck}}{{Broken package link|パッケージが存在しません}}, {{AUR|broadcom-wl-ck}} などがあります。もしくは適切な [[DKMS]] パッケージを使ってください。例えば [[NVIDIA#カスタムカーネル]]に書かれている {{pkg|nvidia-dkms}} をインストールします。}}
 
 
=== コンパイル済みのパッケージを使う ===
 
 
カーネルのコンパイルに時間を割きたくないユーザーのために、[[en2:User:Graysky|graysky]] によってメンテナンスされている非公式リポジトリが存在します。詳しくは [[Repo-ck]] を見てください。
 
 
== BFQ I/O スケジューラを有効にする方法 ==
 
{{Note|BFQ (Budget Fair Queueing) と MuQSS (Multiple Queue Skiplist Scheduler) を混同してはいけません。MuQSS は CPU スケジューラでありデフォルトで有効にされますが、BFQ は I/O スケジューラであり使用するには明示的に有効にする必要があります。}}
 
 
Budget Fair Queueing は各プロセス/スレッドにディスクのスループットの一部を割り当てるディスクスケジューラです。開発者によって驚くようなレイテンシパフォーマンスを示す [https://www.youtube.com/watch?v=KhZl9LjCKuU ベンチマーク] が公開されています。
 
 
様々な I/O スケジューラの背景情報と "BFQ" を有効にする方法については[[パフォーマンスの最大化#I/O スケジューラの設定]]を参照してください。
 
 
== MuQSS についての簡単な説明 ==
 
 
MuQSS はデスクトップ指向の cpu プロセススケジューラであり、負担レベルが通常のときに極端な低レイテンシによって素晴らしい応答性を実現します。
 
 
=== MuQSS の設計目標 ===
 
 
MuQSS には2つの大きな設計目標があります:
 
#デスクトップの優れた応答性とレスポンスを達成すること。ヒューリスティックやチューニングパラメータは使わない。理解するのが難しいし、効果を予測するのが困難で、何か一つのワークロードに合わせて設定すると他のワークロードに多大なダメージを与えることがあるため。
 
#cpu プロセススケジューラの過去の複雑な設計を完全に廃止して、とてもシンプルな必要最小限の設計でスケジューラを実装すること。
 
 
=== 待ち行列理論に関する動画 ===
 
 
[http://www.youtube.com/watch?v=F5Ri_HhziI0 この動画] はスーパーのレジを使って待ち行列理論について説明しています。CK によれば、"BFS が単一の待ち行列を使っているのに対して、メインラインの Linux カーネルでは複数の待ち行列を使用する設計がされていることと動画には関連性があります。人々はタスクであり、レジは CPU です。もちろん単なる待ち行列の設計と CPU スケジューラを同じものとすることはできませんが、この動画は仕組みを上手く言い当てていると感じました。"
 
 
=== MuQSS が有効になっているか確認 ===
 
 
MuQSS が有効になっていればカーネルリングバッファに以下のスタートアップメッセージが表示されるはずです:
 
$ dmesg | grep -i muqss
 
...
 
MuQSS CPU scheduler v0.120 by Con Kolivas.
 
 
=== MuQSS パッチのあたったカーネルと systemd ===
 
 
MuQSS が cgroups をサポートしてないと思ってしまうのはよくある間違いです。MuQSS は cgroups をサポートしています、ただし cgroups の機能を全てはサポートしてません (例: CPU の制限は動作しません)。
 
 
== トラブルシューティング ==
 
 
=== ブートローダーと Linux-ck ===
 
(新しい) カーネルイメージが見つかるようにブートローダーを設定する必要があります。GRUB の場合、[[GRUB#メイン設定ファイルの生成]]を見て下さい。他のブートローダーの場合、カスタムエントリを追加する必要があります。
 
 
[[REFInd#カスタムメニューエントリ|REFInd]] を使っている場合にカスタムエントリを追加するときの例:
 
{{hc|refind.conf|<nowiki>
 
menuentry Linux {
 
icon EFI/refind/icons/os_linux.png
 
ostype Linux
 
volume boot
 
loader /vmlinuz-linux-ck
 
initrd /initramfs-linux-ck.img
 
options "root=/dev/mapper/root elevator=bfq"
 
}
 
</nowiki>}}
 
 
=== VirtualBox で Linux-ck を動作させる ===
 
 
VirtualBox は Linux-ck などのカスタムカーネルでも問題なく動作します。公式の ARCH カーネルヘッダのパッケージをインストールしておく必要はありません。
 
 
忘れずにユーザーを ''vboxusers '' グループに追加してください:
 
# gpasswd -a USERNAME vboxusers
 
 
==== 非公式リポジトリを使う (Repo-ck から linux-ck をインストールした場合に推奨) ====
 
 
{{Note|As of 17-Oct-2012, Repo-ck users can enjoy these modules as pre-compiled packages in the repo itself. If you built your linux-ck from the AUR you '''cannot use the repo''' as all packages in the repo are matched groups.}}
 
 
pacman で直接 http://repo-ck.com を使用する方法は [[Repo-ck]] の記事を見て下さい。
 
 
==== virtualbox-ck-host-modules パッケージ (AUR から linux-ck をビルドした場合に推奨) ====
 
 
{{AUR|virtualbox-ck-host-modules}} パッケージをインストールしてから {{Pkg|virtualbox}} パッケージをインストールしてください。
 
 
==== DKMS を使う (やや複雑、LTS リリースを使う場合に推奨) ====
 
 
{{Pkg|virtualbox-host-dkms}} パッケージで virtualbox をインストールしてください。それから以下のように dkms を設定します:
 
# pacman -S virtualbox virtualbox-host-dkms
 
# dkms install vboxhost/4.3.12
 
 
{{Note|2番目のコマンドの virtualbox のバージョン番号は適当に置き換えてください。執筆時点では、4.3.12 が最新です。}}
 
 
=== ダウングレード ===
 
 
前のバージョンの linux-ck にダウングレードしたい場合、複数の選択肢があります:
 
* linux-ck-3.3.7-1 までのソースアーカイブが [http://repo-ck.com/bench.htm 存在] します。
 
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] には linux-ck-2.6.39.3-1 までの linux-ck の git コミットが保存されています。
 
 
=== フォーラムのサポート ===
 
 
フォーラムにサポートのスレッドを作るときは、linux-ck パッケージに関連する投稿であることをわかるように題名に含めてください。
 
 
== 参照 ==
 
 
* [http://ck.kolivas.org/patches/ Con Kolivas のカーネルパッチリポジトリ]
 
* [http://ck-hack.blogspot.it/ Con Kolivas のブログ]
 
* [http://lkml.org/lkml/2009/9/6/136 Linux カーネルメーリングリストにおける Con Kolivas による BFS の最初のアナウンス]
 
* [[wikipedia:Con_Kolivas|Wikipedia の Con Kolivas についての記事]]
 
* [[wikipedia:ja:Brain_Fuck_Scheduler|Wikipedia の BFS 記事]]
 

2023年5月29日 (月) 10:35時点における最新版