6.58. Udev-151

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

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

6.58.1. Udev のインストール

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

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

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

install -dv /lib/{firmware,udev/devices/{pts,shm}}
mknod -m0666 /lib/udev/devices/null c 1 3
ln -sv /proc/self/fd /lib/udev/devices/fd
ln -sv /proc/self/fd/0 /lib/udev/devices/stdin
ln -sv /proc/self/fd/1 /lib/udev/devices/stdout
ln -sv /proc/self/fd/2 /lib/udev/devices/stderr
ln -sv /proc/kcore /lib/udev/devices/core

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

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

configure オプションの意味:

--with-rootlibdir=/lib

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

--libexecdir=/lib/udev

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

--docdir=/usr/share/doc/udev-151

このオプションは、Udev のドキュメントをインストールします。 インストールにあたっては、他のパッケージとの整合を保った名称が用いられます。

--disable-extras

このオプションは、特定のヘルパープログラムや他のプログラム類 (extras) をインストールしないようにします。 他のプログラム類は、さらに外部ライブラリを必要としており、それらは LFS システムには含まれていません。 詳しくは Udev が提供する README ファイルを参照してください。

--disable-introspection

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

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

make

このパッケージにテストスイートはありません。

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

make install

Udev を正しく作動させるためには正しい設定が必要です。 しかしデフォルトの設定ではすべてのデバイスを網羅できていません。 まずは Udev が提供する以下の特別な2つのルールをインストールします。 これらはデバイスマッパー (device-mapper) と RAID の設定をサポートします。

install -m644 -v rules/packages/64-*.rules \
    /lib/udev/rules.d/

特定のハンドヘルド (hand-held) デバイスへのシンボリックリンクを生成するファイルをインストールします。

install -m644 -v rules/packages/40-pilot-links.rules \
    /lib/udev/rules.d/

ISDN デバイスを取り扱うファイルをインストールします。

install -m644 -v rules/packages/40-isdn.rules \
    /lib/udev/rules.d/

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

cd udev-config-20100128
make install

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

make install-doc

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

概略説明

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 設定ファイル、デバイスのパーミッション、デバイス命名規則を定めます。