Linux-pf
Linux-pf は標準の -ARCH カーネルをベースに、以下のパッチを適用したカーネルパッケージです:
- Con Kolivas の最新の -ck パッチセット、BFS を含む
- TuxOnIce
- BFQ (デフォルトの I/O スケジューラとして設定)
- UKSM
- AUFS3
目次
インストール
AUR から linux-pfAUR をインストールしてください。linux-pf の長期サポート版は linux-pf-ltsAUR でインストールできます。
非公式リポジトリからインストール (推奨)
非公式リポジトリの pfkernel, Linux-pf, archlinuxcn からコンパイル済みのパッケージをインストールすることができます (汎用、または特定の CPU ファミリに最適化されています)。リポジトリの設定方法は非公式ユーザーリポジトリを見て下さい。
アップグレード後、pacman -Sl repo_name
を実行するとリポジトリに含まれているパッケージが表示されます。その後、linux-pf と linux-pf-headers パッケージをインストールしてください (汎用のバイナリ - リポジトリによっては特定のプラットフォーム用のバイナリも存在します、先の pacman コマンドの出力で確認できます)。#設定セクションを見て追加設定を行って下さい。
手動コンパイル
PKGBUILD からコンパイルする場合、ユーザーが選択する選択肢が大量にあります:
==> Hit <Y> to use your running kernel's config (needs IKCONFIG and IKCONFIG_PROC) ==> Hit <L> to run 'make localmodconfig' ==> Hit <N> (or just <ENTER>) to build an all-inclusive kernel like stock -ARCH (warning: it can take a looong time)
既にカスタムカーネルをコンパイル・実行しているユーザーは <Y> オプションを使って下さい。PKBGUILD は現在のカーネルの設定を読み込んで後のコンパイルで使用します。<L> オプションはユーザーのハードウェアを自動検出します: まず modprobed-db モジュールデータベースが使えるか試行して、それが出来なかった場合、linux カーネルの make localmodconfig
機能を使います。最後のオプションは文字通りそのままです。
==> Kernel configuration options before build: <M> make menuconfig (console menu) <N> make nconfig (newer alternative to menuconfig) <G> make gconfig (needs gtk) <X> make xconfig (needs qt) <O> make oldconfig <ENTER> to skip configuration and start compiling
カーネルを設定するユーザーインターフェイスの中から使いたいものを選択してください。前のステップで <Y> や <L> を選択した場合、最後の選択肢は未解決・新規の設定オプションの警告が表示されます。
==> An non-generic CPU was selected for this kernel. ==> Hit <G> : to create a generic package named linux-pf ==> Hit <ENTER> : to create a package named after the selected CPU (e.g. linux-pf-core2 - recommended) ==> This option affects ONLY the package name. Whether or not the ==> kernel is optimized was determined at the previous config step.
前のステップで特定の CPU 最適化をすることを選択した場合、デフォルトで CPU がパッケージの名前に付けられます。この場合、後でリポジトリからパッケージを更新したときは汎用のパッケージではなく最適化されたパッケージが使われます。最適化した linux-pf カーネルでロードした場合に動作しなくなる可能性がある、サードパーティ製のコンパイル済みモジュール (例: nvidia-pf) との互換性が向上します。
コンパイルしたパッケージのインストール
コンパイルが完了すると、linux-pf-headers[-cpu] パッケージが作成されます。NVIDIA や VirtualBox などの追加モジュールを使う場合は、インストールしてください。
# pacman -U linux-pf-core2-3.3.2-1-$CPUTYPE.pkg.tar.xz linux-pf-headers-core2-3.3.2-1-$CPUTYPE.pkg.tar.xz
カーネルのインストール時、mkinitcpio がインストールスクリプトから呼び出されて initramfs が再生成されます。
設定
次に、ブートローダーに linux-pf のブートエントリを追加する必要があります (以下はメンテナのコンピュータにおける例です):
title Linux-pf 3.2 root (hd0,4) kernel (hd0,0)/vmlinuz-linux-pf root=/dev/disk/by-label/ROOT ro vga=0x318 lapic resume=/dev/disk/by-label/SWAP video=vesafb:ywrap,mtrr:3 fastboot quiet initrd (hd0,0)/initramfs-linux-pf.img
TuxOnIce を使ってハイバネーションを行う場合、/etc/mkinitcpio.conf
の MODULES 行に必要なモジュールを追加してください。そして (最低でも) resume フックを HOOKS 行に追加します:
MODULES="... lzo tuxonice_compress tuxonice_swap tuxonice_userui ..." HOOKS="... block userui resume filesystems ..."
上記の例では、サスペンドしたイメージを保存するためにスワップパーティションを使うように TuxOnIce を設定しています。resume フックは filesystems の前に追加してください。また、userui でプログレスインジケータを表示しています。詳しい説明は TuxOnIce の wiki ページを読んで下さい。
最後に、pm-utils と hibernate-script のどちらを使ってサスペンドするか選択します。詳しくは、それぞれの wiki ページを参照してください。TuxOnIce はテキストモードのオプションと、フレームバッファスプラッシュのプログレスインジケータのオプションを提供しています。
ヒントとテクニック
- ディスクの性能に問題が発生したり一時的に停止してしまう場合、I/O スケジューラが問題です。linux-pf のデフォルトのスケジューラ (BFQ) 以外のスケジューラを試してみて下さい。
/sys/block/sda/queue/scheduler
を cfq, noop, deadline のどれかに設定します:# echo noop >
。このコマンドは1番目のハードドライブの I/O スケジューラしか設定しないので注意してください。他にもドライブがある場合、同じように echo を実行する必要があります。コマンドを実行することで問題が解消する場合、"elevator=cfq" (noop, deadline) を/boot/grub/menu.lst
の linux-pf コマンドラインに追加することで、変更を永続化できます。 - カーネルを自分で設定してビルドしたときに、"missing include/config/dvb/*.h files" というエラーでコンパイルが中止されてしまう場合、Device Drivers / <M> Multimedia support で [*] Digital TV support を設定してください (他のオプションはオフのままにしておいてください)。必要な dvb.h が作成され、コンパイルが続行できるようになります。
linux-pf のフォーラムスレッド
エラーを報告したり、感想やアイデア、リクエストを投稿するための 議論スレッド が BBS にあります。