6.65. Eudev-3.2

The Eudev package contains programs for dynamic creation of device nodes.

Approximate build time: 0.4 SBU
Required disk space: 77 MB

6.65.1. Installation of Eudev

First, fix a test script:

sed -r -i 's|/usr(/bin/test)|\1|' test/udev-test.pl

Next, add a workaround to prevent the /tools directory from being hard coded into Eudev binary files library locations:

cat > config.cache << "EOF"
HAVE_BLKID=1
BLKID_LIBS="-lblkid"
BLKID_CFLAGS="-I/tools/include"
EOF

Prepare Eudev for compilation:

./configure --prefix=/usr           \
            --bindir=/sbin          \
            --sbindir=/sbin         \
            --libdir=/usr/lib       \
            --sysconfdir=/etc       \
            --libexecdir=/lib       \
            --with-rootprefix=      \
            --with-rootlibdir=/lib  \
            --enable-manpages       \
            --disable-static        \
            --config-cache

Compile the package:

LIBRARY_PATH=/tools/lib make

Create some directories now that are needed for tests, but will also be used as a part of installation:

mkdir -pv /lib/udev/rules.d
mkdir -pv /etc/udev/rules.d

To test the results, issue:

make LD_LIBRARY_PATH=/tools/lib check

Install the package:

make LD_LIBRARY_PATH=/tools/lib install

Install some custom rules and support files useful in an LFS environment:

tar -xvf ../udev-lfs-20140408.tar.bz2
make -f udev-lfs-20140408/Makefile.lfs install

6.65.2. Configuring Eudev

Information about hardware devices is maintained in the /etc/udev/hwdb.d and /usr/lib/udev/hwdb.d directories. Eudev needs that information to be compiled into a binary database /etc/udev/hwdb.bin. Create the initial database:

LD_LIBRARY_PATH=/tools/lib udevadm hwdb --update

This command needs to be run each time the hardware information is updated.

6.65.3. Contents of Eudev

Installed programs: udevadm and udevd
Installed libraries: libudev.so
Installed directories: /etc/udev, /lib/udev, and /usr/share/doc/udev-20140408

Short Descriptions

udevadm

Generic udev administration tool: controls the udevd daemon, provides info from the Udev database, monitors uevents, waits for uevents to finish, tests Udev configuration, and triggers uevents for a given device

udevd

A daemon that listens for uevents on the netlink socket, creates devices and runs the configured external programs in response to these uevents

libudev

A library interface to udev device information

/etc/udev

Contains Udev configuration files, device permissions, and rules for device naming