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 binary blobs
Some ATI/AMD Radeon cards require binary blobs. The Gentoo package pulls in all the binary blobs available at http://people.freedesktop.org/~ag5f/radeon_ucode/ to support many different models.

With all the binary blobs in the library directory, the kernel needs udev to figure out which one of the many binary blobs to load. If all but one of the binary blobs are removed, leaving only the correct one in the library directory, the binary blob is loaded automatically.

Setting up the kernel for devtmpfs
Set up the kernel to support and automount a devtmpfs filesystem at :

Once the changes have been made, rebuild the kernel. Do NOT reboot yet.

Emerging busybox
Make sure that the  USE flag is set for. The  USE flag is probably also a good idea. In the file, add the follwoing line:

Now, (re)install busybox:

Mounting devpts
The devpts filesystem exhibits non-standard behavior. It does not automount, at bootup, or with. An explicit command is required. The standard solution for udev-based systems is to run as root, and have the udev-mount script do the mounting at startup. An mdev-based system will probably not have udev installed. An alternative way to do this at bootup is to include the command in a shell script in. In this example, the file will be named

Another side-effect of not using udev-mount is that is only writable by root. The command is required to restore the standard behavior. This command will also be run from the script at startup.

Replace the udev service
Remove udev from the services list and replace it with mdev:

Reboot
Reboot to the new kernel. The system should now be running using mdev.

Cleanup
Remove udev from the system:

In the file (or a file in this directory), add.

This now results in a completely udev-free machine.

Rebuild the kernel
For libusb (and hence CUPS) to see the USB ports, set  and   in the kernel configuration. Also enable, despite the injunction in the cups-1.5.2 ebuild to disable it. When using, these items are found here:

Verify the presence of the new device nodes
A hierarchy of device nodes should be present under. When switching on the printer, a node for it should occur at. should run successfully, and this should display the printer's details.

Configure the printer in CUPS
Configure CUPS in the usual way. CUPS should find the printer, and will give it a URI like.

Linux modules missing at boot sequence
If Linux modules are required and not loaded on boot after migration, execute one or more of the following solutions:


 * Add Linux modules to  files in


 * Compile modules into the Linux kernel, without the need of loading them on demand.


 * Write a custom module loader:

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).

Miscellaneous

 * 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.

External resources

 * mdev like a boss project.