udev additions/tidying

Don't override exec_prefix= and use --with-rootlibdir to copy
runtime libs to /lib while keeping most of the stuff in /usr.
With this change, we don't have to override pkgconfig, or manually
setup .so symlink. It's also friendlier towards builds with
enable-extras (which would require more additional fixes).

Enable build of static library, which will enable us to add explicit
udev support to static builds of dm/lvm.

Adjust start_udev:

- remount /dev if it's already mounted (due to initramfs or
  CONFIG_DEVTMPFS_MOUNT), which allows us to set mount options
- add inodes limit safeguard
- verify udevd is not running before starting it
- remove 'settle' between subsystems/devices

Signed-off-by: Michal Soltys <soltys@ziu.info>
This commit is contained in:
Michal Soltys 2011-02-20 15:25:41 +01:00 committed by Juergen Daubert
parent d600bd6d5a
commit 112bff655d
4 changed files with 24 additions and 22 deletions

View File

@ -57,6 +57,7 @@ lrwxrwxrwx root/root usr/bin/udevinfo -> /sbin/udevadm
drwxr-xr-x root/root usr/include/
-rw-r--r-- root/root usr/include/libudev.h
drwxr-xr-x root/root usr/lib/
-rw-r--r-- root/root usr/lib/libudev.a
-rwxr-xr-x root/root usr/lib/libudev.la
lrwxrwxrwx root/root usr/lib/libudev.so -> ../../lib/libudev.so.0.10.0
drwxr-xr-x root/root usr/lib/pkgconfig/

View File

@ -1,2 +1,2 @@
572661c0c9cde672fa68250f9a55be94 start_udev
443d19ce3b54ef554fc7942a709936e2 start_udev
4db27d73fdbe94f47fd89fdd105c2dfb udev-166.tar.bz2

View File

@ -4,7 +4,7 @@
name=udev
version=166
release=1
release=2
source=(ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/$name-$version.tar.bz2 \
start_udev)
@ -12,24 +12,21 @@ build() {
cd udev-$version
./configure --prefix=/usr \
--exec-prefix= \
--sbindir=/sbin \
--sysconfdir=/etc \
--libdir=/usr/lib \
--with-rootlibdir=/lib \
--libexecdir=/lib/udev \
--mandir=/usr/man \
--disable-extras \
--disable-introspection
--disable-introspection \
--enable-static
make
make install DESTDIR=$PKG pkgconfigdir=/usr/lib/pkgconfig
make install DESTDIR=$PKG
mkdir -p $PKG/lib/{firmware,udev/devices/{pts,shm}}
mkdir -p $PKG/lib
# Fix location of libaries
mv $PKG/usr/lib/libudev.so.* $PKG/lib
ln -sf ../../lib/$(readlink $PKG/usr/lib/libudev.so) $PKG/usr/lib/libudev.so
# Populate nodes
mknod -m 600 $PKG/lib/udev/devices/console c 5 1
mknod -m 600 $PKG/lib/udev/devices/kmsg c 1 11

View File

@ -1,16 +1,21 @@
#!/bin/sh
# mount /dev as a devtmpfs or tmpfs, depending on current kernel capability
# mount only, if it's not already mounted (e.g. after handover from initramfs)
# note: some video drivers require exec access in /dev
if ! /bin/mountpoint -q /dev ; then
if ! /bin/sed -n '/devtmpfs/q1' /proc/filesystems ; then
UDEVFS=devtmpfs
else
# - if /dev is not mounted - mount as a devtmpfs (CONFIG_DEVTMPFS=y) or tmpfs
# - if /dev is mounted (e.g. due to handover from initramfs or
# CONFIG_DEVTMPFS_MOUNT=y), remount with specific options
# - some video drivers require exec access in /dev, thus it's set here
# - for completness, we add few sanity limits (2k non-empty files, 16k inodes)
UDEVOPTS="exec,nosuid,noatime,mode=0755,nr_blocks=2048,nr_inodes=16384"
if /bin/mountpoint -q /dev ; then
/bin/mount -n -o remount,${UDEVOPTS} dev /dev
else
if /bin/sed -n '/devtmpfs/q1' /proc/filesystems ; then
UDEVFS=tmpfs
else
UDEVFS=devtmpfs
fi
/bin/mount -n -t $UDEVFS udev /dev -o exec,nosuid,mode=0755,size=8M
/bin/mount -n -t $UDEVFS -o ${UDEVOPTS} dev /dev
fi
# make sure hotplugger is not set
@ -19,12 +24,11 @@ echo > /proc/sys/kernel/hotplug
# since v155, udevd automatically copies /lib/udev/devices
# and creates /proc/{kcore,self/fd/{0,1,2}} symlinks
# launch udev daemon
/sbin/udevd --daemon
# launch udev daemon, make sure it's not running first
test -z "$(/bin/pidof -s udevd)" && /sbin/udevd --daemon
# coldplug devices and wait for the queue to be processed
/sbin/udevadm trigger --type=subsystems --action=add
/sbin/udevadm settle
/sbin/udevadm trigger --type=devices --action=add
/sbin/udevadm settle