トップ > 最小システムの構築 > 新システムの作成(後半) >
eudev

  

eudevのビルド

eudevは、動的に生成されるデバイスファイルを管理するデーモンおよびコマンド群です。 udevd デーモン、udevadm コマンドなどが含まれます。

以前のLinux系OSでは、デバイスファイルはあらかじめ用意されていました。 OSのインストール時に、一般的なデバイス構成を想定したデバイスファイルが作成されるようになっていたのです。 用意されているデバイスファイルでは足りなくなった場合には、管理者が手作業で追加の作業を行っていました

現在のLinux系OSでは、デバイスファイルはカーネルによって自動的に生成されるようになっています。 カーネルにより起動時にデバイスが検知され、対応するデバイスファイルが作られます。 もちろん、システム稼働中にUSB接続やPCカード接続の機器が挿し込まれたり、取り外されたことも検出されます。

udevd デーモンは、カーネルからの通知を受け取ることでデバイスの変化を知り、必要な処理を行います。

  
udevd デーモンは、仮想ファイルシステム sysfs を通じてカーネルからデバイスの情報を取得しています。
  
仮想ファイルシステム sysfs は、カーネルが検知したデバイスの情報をユーザ空間からアクセスできるようにするための仮想ファイルシステムです。
  
一時期は、udevd デーモンがデバイスファイルの生成を行っていた時期もありましたが、現在はカーネルの役割になっています。
  
ただし、カーネルからの通知を受け取ったudevd デーモンが、カーネルが作成したデバイスファイルにシンボリックリンクで別名のデバイスファイル名を与えることはあります。

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

ソースファイルの展開

ソースファイルを展開します。


cd /sources
tar xvf eudev-2.1.1.tar.gz
cd eudev-2.1.1

 

ソースファイルの修正

展開したソースファイルを修正します。


sed -i -e '/SUBSYSTEMS=="scsi", KERNEL=="sda"/s,/usr/bin/test,/bin/test,' test/udev-test.pl

 

configure

configureを実行します。


BLKID_CFLAGS=-I/tools/include BLKID_LIBS='-L/tools/lib -lblkid' ./configure \
  --prefix=/usr \
  --sysconfdir=/etc \
  --sbindir=/sbin \
  --bindir=/sbin \
  --libdir=/usr/lib \
  --libexecdir=/lib \
  --enable-split-usr \
  --enable-libkmod \
  --enable-rule_generator \
  --enable-keymap \
  --disable-introspection \
  --disable-gudev \
  --disable-gtk-doc-html \
  --with-rootprefix= \
  --with-rootlibdir=/lib > ../../logs/configurelog.eudev 2>&1

 

configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


cat ../../logs/configurelog.eudev

 

ビルド

ビルドを実行します。


make

 

ビルドが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。

テスト

テストを行います。


mkdir -vp /lib/udev/rules.d
mkdir -vp /etc/udev/rules.d
make check 2>&1 | tee ../../logs/checklog.eudev

 

テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


grep '^#.*:' ../../logs/checklog.eudev

 

なお、筆者の環境(仮想マシン)では以下のように1件のエラーが発生します

# TOTAL: 2
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

インストール

インストールを行います。


make install

 

インストールが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。

インストール後の追加作業

インストール後の追加作業を行います。 ハードウェアデータベースを初期化します。


udevadm hwdb --update

 

ソースファイル付属文書のインストール

ソースファイルに付属している文書のインストールを行います。


mkdir -vp /usr/share/doc/eudev-2.1.1
cp -va COPYING /usr/share/doc/eudev-2.1.1
cp -va README  /usr/share/doc/eudev-2.1.1

 

後始末

ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。


cd ..
rm -fr eudev-2.1.1

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh eudev

 
  
  

まとめ

eudevは、動的に生成されるデバイスファイルを管理するデーモンおよびコマンド群です。

 
メニュー