6.59. Udev-161

Udev パッケージはデバイスノードを動的に生成するプログラムを提供します。

概算ビルド時間: 0.2 SBU
必要ディスク容量: 9.3 MB 、また testfiles については 37 MB

6.59.1. Udev のインストール

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

tar -xvf ../udev-config-20100128.tar.bz2

udev-testfiles という Tar アーカイブファイルには Udev のテストに必要なファイルが含まれます。 このアーカイブファイル内には、見かけ上 37MB のファイルが含まれますが、実際に要するディスク容量は 7MB 以下です。

tar -xvf ../udev-161-testfiles.tar.bz2 --strip-components=1

デバイスやディレクトリのいくつかはシステム起動時に必要になりますが、起動処理の初期段階であるために Udev はそれらを認識できません。 そこでそれらのデバイスまたはディレクトリを生成します。

install -dv /lib/{firmware,udev/devices/{pts,shm}}
mknod -m0666 /lib/udev/devices/null c 1 3

パッケージをコンパイルするための準備をします。

./configure --prefix=/usr \
    --sysconfdir=/etc --sbindir=/sbin \
    --with-rootlibdir=/lib --libexecdir=/lib/udev \
    --disable-extras --disable-introspection

configure オプションの意味:

--with-rootlibdir=/lib

このオプションは libudev ライブラリのインストール先を指定します。 このライブラリは /lib ディレクトリにインストールする必要があります。 デフォルトでは --rootlibdir は /usr/lib ディレクトリとなっていますが、/usr ディレクトリが認識できるようになる前の、ブート起動時に Udev が認識できなければならないためです。

--libexecdir=/lib/udev

このオプションは Udev の内部ルールやヘルパープログラムのインストール先を指定します。

--disable-extras

このオプションは、ヘルパープログラムやその他の追加プログラムをインストールしないことを指定します。 追加プログラムには、さらに外部ライブラリが必要となり、それらは LFS ベースシステムでは取り扱っていません。 詳しくは Udev の README ファイルを参照してください。

--disable-introspection

このオプションは Udev のイントロスペクション (introspection) 機能を無効にします。 この機能は、LFS システムにてインストールするパッケージではなく、別のパッケージにて必要となるものです。 詳しくは Udev の README ファイルを参照してください。

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

make

本パッケージのテストを実行します。

make check

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

make install

空のドキュメントディレクトリを削除します。

rmdir -v /usr/share/doc/udev

LFS 固有のカスタムルールファイルをインストールします。

cd udev-config-20100128
make install

LFS 固有のカスタムルールファイルについて説明しているドキュメントをインストールします。

make install-doc

6.59.2. Udev の構成

インストールプログラム: ata_id, cdrom_id, collect, create_floppy_devices, edd_id, firmware.sh, fstab_import, path_id, scsi_id, udevadm, udevd, usb_id, write_cd_rules, write_net_rules
インストールライブラリ: libudev.{a,so}
インストールディレクトリ: /etc/udev, /lib/udev, /lib/firmware

概略説明

ata_id

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

cdrom_id

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

collect

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

create_floppy_devices

CMOS タイプに基づく、すべてのフロッピーデバイスを生成します。

edd_id

BIOS ディスクドライブに対する EDD ID を Udev に提供する。

firmware.sh

ファームウェアをデバイスにアップロードします。

fstab_import

/etc/fstab に記述された項目の中から現在のデバイスに合致するものを探し出し、その情報を Udev に提供します。

path_id

デバイスへのパスとして、可能な限り最も短くユニークなハードウェアパスを提供します。

scsi_id

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

udevadm

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

udevd

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

usb_id

USB デバイスに関する情報を Udev に対して提供します。

write_cd_rules

光学ドライブに対する固定的な名称を定めた Udev ルールを生成するためのスクリプト。 (7.10. 「デバイスへのシンボリックリンクの生成」 も参照のこと。)

write_net_rules

ネットワークインターフェースに対する固定的な名称を定めた Udev ルールを生成するためのスクリプト。 (7.13. 「ネットワークスクリプトの設定」 も参照のこと。)

libudev

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

/etc/udev

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