Mdev/ja

この記事は、Article description::[[initramfsなしで、分離されたパーティションを作成できるよう、Linuxのudevをmdevに置換する方法に関する文書]]です. 記事の執筆者は、IceWMをウィンドウマネージャとして利用し、Gentoo Linuxを使用しています. ここにある設定方法は、少し調整をすることで他のディストリビューションでも適用できるはずです.

mdevは私のシステムで動作しますか？
アプリケーションは、システムが本格的なデスクトップ環境を使用していない限り、絶対適しています. デスクトップ環境がAbiWord、Firefox、GIMP、Gnumericなどの実行を必要としないことに注意してください. しかしながら、KMailのようなKOfficeアプリケーションは、ほとんどのKDEアプリケーションを依存関係として必要とするようです. 一般的には、KDEやGNOMEを使用する場合、は適していません. また、LVMを使用すると問題を引き起こすかもしれません.

デフォルトのGentooプロファイルを使用している場合、mdevは非常によく動作します:


 * default/linux/x86/13.0
 * default/linux/amd64/13.0

次のコマンドを使用して、現在使用されているプロファイルを一覧表示します:

udevの依存関係を確かめるためにGentooのユーザが実行できるサニティチェックがもう一つあります.

サニティチェック
どのパッケージがudevに依存しているかの概要を取得します. 出力は以下のような感じでしょう：

以下の行をファイルに追加してください（もしまだファイルが存在していなければ作成することが出来ます）：

で のUSEフラグをシステム全体で無効にします：

すべてのパッケージを USEフラグでリビルドします

もし発生する唯一のエラーが、がudevを必要とするためにPortageがudevを再インストール出来ないというものならば、次のステージに進んでください. そうでなければ、は、システムにインストールされているパッケージ（群）の、難しい依存関係に含まれているかもしれません.

ATI/AMD バイナリブロブ
ATI/AMD Radeonカードの中にはバイナリブロブを必要とするものがあります. Gentooのパッケージは、多くの異なったモデルに対応するため、http://people.freedesktop.org/~ag5f/radeon_ucode/で利用できるすべてのバイナリブロブを取得します.

libraryディレクトリにあるすべてのバイナリブロブに対し、カーネルは多くのバイナリブロブの中からどれをロードするかを決定するためにudevを必要とします. もし、libraryディレクトリにある正しいバイナリブロブを残し、それ以外をすべて削除すると、バイナリブロブは自動的にロードされます.

devtmpfs用にカーネルを設定する
カーネルがdevtmpfsファイルシステムをサポートし、またに自動的にマウントするように設定します：

変更したらカーネルを再ビルドします. 絶対に再起動しないでください.

busyboxのemerge
で、 USEフラグが設定されていることを確かめてください. USEフラグを設定することも多分良い考えでしょう. ファイルに以下の行を追加してください：

それでは、busyboxを（再）インストールしましょう：

devptsのマウント
devptsファイルシステムは普通ではない振る舞いをします. このファイルシステムは、起動時やでは自動的にマウントされません. 明示的にコマンドを実行することが必要です. udevベースのシステムの標準的な解決策は、をルートで実行し、開始時にudev-mountスクリプトにマウントを行わせることです. mdevベースのシステムでは、udevは多分インストールされていないでしょう. 起動時にマウントさせる他の方法は、コマンドを内のシェルスクリプトに含めることです. 以下の例では、ファイルの名前はです.

udev-mountを使用しない他の副作用は、がルートにのみ書き込み可能になるということです. 通常の振る舞いをさせるために、コマンドが必要です. このコマンドは開始時にスクリプトから実行させることが出来ます.

udevサービスの置換
サービス一覧からudevを削除し、mdevに置き換えます：

再起動
新しいカーネルを使用するために再起動します. これでシステムはmdevを使用し実行されているはずです.

後片付け
udevをシステムから削除します：

ファイル（あるいはこのディレクトリ内にあるファイル）に、 を追加します.

これで完全にudevを使用しないマシンが完成します.

カーネルの再ビルド
libusb（そしてCUPS）がUSBポートを確認するために、カーネル設定の と を設定してください. そして、cups-1.5.2のebuildが無効にしているのを無視して、 を有効にしてください. を使用しているなら、これらはここで見つかります：

新しいデバイスノードの存在を確かめる
デバイスノードの階層は以下にあるはずです. プリンタを起動すると、プリンタへのノードはに出現するはずです. の実行は成功し、そしてプリンタの詳細を表示するはずです.

CUPSでプリンタの設定をする
通常の方法でCUPSを設定してください. CUPSはプリンタを検出するはずで、のようなURIを与えるはずです.

起動シーケンスでLinuxモジュールが見つからない
もしLinuxモジュールが必要で、mdevへの移行後、起動時にロードされない場合、以下の解決策を実行してください：


 * Linuxモジュールをファイルの ファイルに追加する


 * モジュールをLinuxカーネルにコンパイルします. 必要に応じてロードする必要はありません.


 * カスタムモジュールローダを書きます：

Install it as the hotplug handler instead of mdev. Note that the earlier this gets executed, the better. Consider naming this script, since that is the default value of (or change the default value in the kernel configuration).

その他

 * mdev unlike udev does not support auto-modules loading. Create files ending with  in  and put all the modules there that should be loaded (nvidia, wl, etc.) one per line. Customize options via files ending with   in  (see  for syntax). It might be necessary to move the module configuration to this location.


 * does not create nodes. Either manually create them or use  from lvm2. It is a good idea to add it after  in the init script.


 * Use mouse and keyboard drivers for xorg inputs. Evdev needs udev to be built. Mousedrv (for the mouse driver) may conflict with the synaptic driver when both are loaded.


 * The Kernel configuration option CONFIG_INPUT_EVDEV not only provides the keyboard and mouse as input device events, it will provide lid and button events to acpid as well.

参考

 * Mdev/Automount USB‎

外部資料

 * mdev like a boss project.