Linux-pf

提供: ArchWiki
2017年10月12日 (木) 23:16時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「Tips and tricks」を「ヒントとテクニック」に置換)
ナビゲーションに移動 検索に移動

Linux-pf は標準の -ARCH カーネルをベースに、以下のパッチを適用したカーネルパッケージです:

インストール

AUR から linux-pfAUR をインストールしてください。linux-pf の長期サポート版は linux-pf-ltsAUR でインストールできます。

非公式リポジトリからインストール (推奨)

非公式リポジトリの pfkernel, Linux-pf, archlinuxcn からコンパイル済みのパッケージをインストールすることができます (汎用、または特定の CPU ファミリに最適化されています)。リポジトリの設定方法は非公式ユーザーリポジトリを見て下さい。

アップグレード後、pacman -Sl repo_name を実行するとリポジトリに含まれているパッケージが表示されます。その後、linux-pflinux-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] パッケージが作成されます。NVIDIAVirtualBox などの追加モジュールを使う場合は、インストールしてください。

# 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 が再生成されます。

ノート: インストール後に /etc/mkinitcpio.conf に変更を加えたら、初期 RAM ディスクを再生成するために mkinitcpio -p linux-pf を実行してください。

設定

次に、ブートローダーに 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-utilshibernate-script のどちらを使ってサスペンドするか選択します。詳しくは、それぞれの wiki ページを参照してください。TuxOnIce はテキストモードのオプションと、フレームバッファスプラッシュのプログレスインジケータのオプションを提供しています。

ヒントとテクニック

  • ディスクの性能に問題が発生したり一時的に停止してしまう場合、I/O スケジューラが問題です。linux-pf のデフォルトのスケジューラ (BFQ) 以外のスケジューラを試してみて下さい。/sys/block/sda/queue/schedulercfq, 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 にあります。

参照