8.72. Eudev-3.2.12

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

Approximate build time: 0.1 SBU
Required disk space: 83 MB

8.72.1. Installation of Eudev

Remove an unneeded group sgx, from the default udev rules:

sed -i -e 's/GROUP="sgx", //' rules/50-udev-default.rules

Prepare Eudev for compilation:

./configure --prefix=/usr           \
            --bindir=/usr/sbin      \
            --sysconfdir=/etc       \
            --enable-manpages       \
            --disable-static

Compile the package:

make

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

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

To test the results, issue:

make check

Install the package:

make install

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

tar -xvf ../udev-lfs-20171102.tar.xz
make -f udev-lfs-20171102/Makefile.lfs install

8.72.2. Installation of Eudev - 32bit

Clean previous build:

make distclean

Prepare Eudev for compilation:

CC="gcc -m32" \
./configure --host=i686-pc-linux-gnu       \
            --prefix=/usr                  \
            --bindir=/usr/sbin             \
            --libdir=/usr/lib32            \
            --sysconfdir=/etc              \
            --disable-manpages             \
            --disable-static

Compile the package:

make

Install the package:

make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR

8.72.3. Installation of Eudev - x32bit

Clean previous build:

make distclean

Prepare Eudev for compilation:

CC="gcc -mx32" \
./configure --host=x86_64-lfs-linux-gnux32 \
            --prefix=/usr                  \
            --bindir=/usr/sbin             \
            --libdir=/usr/libx32           \
            --sysconfdir=/etc              \
            --disable-manpages             \
            --disable-static

Compile the package:

make

Install the package:

make DESTDIR=$PWD/DESTDIR install
cp -Rv DESTDIR/usr/libx32/* /usr/libx32
rm -rf DESTDIR

8.72.4. Configuring Eudev

The default udev rule installed by Eudev would allow all users to access /dev/kvm. The editors consider it dangerous. Create a configuration file to override it:

cat > /etc/udev/rules.d/65-kvm.rules << "EOF"
KERNEL=="kvm", GROUP="kvm", MODE="0660", TAG+="uaccess"
EOF

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:

udevadm hwdb --update

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

8.72.5. Contents of Eudev

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

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