6.60. Udev-208 (systemd-208 から抽出)

Udev パッケージはデバイスノードの動的生成を行うプログラムを提供します。 Udev は systemd にマージされ開発されていますが、systemd の大半は LFS との互換性がありません。 ここでは必要最小限の udev ファイルをビルドしインストールするものとします。

概算ビルド時間: 0.1 SBU
必要ディスク容量: 29 MB

6.60.1. Udev のインストール

[注記]

注記

本パッケージは他に比べると多少異なっています。 はじめに systemd-208.tar.xz からパッケージのソースを取り出しますが、インストールするのは udev です。 systemd ディレクトリに移動してから、これ以降に示す手順に従ってください。

udev-lfs という Tar アーカイブファイルには Udev パッケージをビルドする際の LFS 独自のファイルが含まれています。 以下のようにしてこのファイルを systemd ソースディレクトリに展開します。

tar -xvf ../udev-lfs-208-3.tar.bz2

ヘッダーファイルへのシンボリックリンクを二つ生成します。 そして 5.33.「Util-linux-2.24.1」 を適切に利用するように環境変数を設定します。

ln -svf /tools/include/blkid /usr/include
ln -svf /tools/include/uuid  /usr/include
export LD_LIBRARY_PATH=/tools/lib

パッケージをコンパイルします。

make -f udev-lfs-208-3/Makefile.lfs

パッケージをインストールします。

make -f udev-lfs-208-3/Makefile.lfs install
[注意]

注意

systemd のソースコード内には、明示的にディレクトリ名を含めたコードがいくつかあります。 例えばバイナリ版のハードウェアデータベースファイル /etc/udev/hwdb.bin は実行時に利用されますが、ソースコードを書き換えない限りそのパスを変更することはできません。

ハードウェアデータベースを初期化します。

build/udevadm hwdb --update

最後に恒常的なネットワーク udev ルールを設定します。 この作業の詳細は7.2.1.「 ネットワークインターフェースに対する固定名称の作成 」にて説明しています。 本章のはじめにて説明しているように、/sys/proc は chroot 環境にてマウントされている必要があります。 これは以下のスクリプトを実行する際に必要となります。

bash udev-lfs-208-3/init-net-rules.sh

不要なものを消去します。

rm -fv /usr/include/{uuid,blkid}
unset LD_LIBRARY_PATH

6.60.2. Udev の構成

インストールプログラム: accelerometer, ata_id, cdrom_id, collect, mtd_probe, scsi_id, v4l_id, udevadm, udevd
インストールライブラリ: libudev.so
インストールディレクトリ: /etc/udev, /lib/udev, /lib/firmware, /usr/share/doc/udev

概略説明

ata_id

ATA ドライブに対するユニークな文字列と追加情報 (uuid、ラベル) を Udev に提供します。

cdrom_id

CD-ROM ドライブや DVD-ROM ドライブの情報を Udev に提供します。

collect

現在の uevent の ID と (すべての対象 uevent に対する) ID のリストを与えることで、現在の ID を登録し、すべての対象 ID が既に登録済みであるかどうかを示します。

scsi_id

特定のデバイスに対する SCSI INQUIRY コマンド送信の結果として得られるデータに基づく、ユニークな SCSI 識別子を Udev に対して提供します。

udevadm

汎用的な Udev 管理ツール。 udevd デーモンの制御、Udev データベースデータの提供、uevent の監視、uevent の完了までの待機、Udev 設定のテスト、指定デバイスに対する uevent の起動、といったことを行います。

udevd

ネットワークソケット上の uevent を待ち受けるデーモン。 デバイスを生成し、その uevent に対応する外部プログラムを起動します。

libudev

Udev デバイス情報のインターフェースライブラリ。

/etc/udev

Udev 設定ファイル、デバイスのパーミッション、デバイス命名規則を定めます。