Rip it all out and see what happens! There are two ways to go on this.
You can rip everything out and roll with static devs. This means compiling the automatic devtmpfs feature out of the kernel.
You can keep the devtmpfs feature and make your own symlinks, set permissions, etc., through scripts. This isn't a bad way to go: There's not much memory or speed savings for devtmpfs vs. static devs, and it saves a lot of hassle.
You might not run udevd. Should you rip out udev entirely, you'll have to rebuild or rip out the programs that depend on it, such as cryptsetup, lvm2, lilo, maybe mdadm as well. It's easier to just leave the udev libraries in there.
If you rip the *kits out, it usually means fewer permissions for ordinary users, such as the ability for an ordinary user to click pretty buttons to suspend, reboot, or shut down the system. I keep ConsoleKit and get rid of the other *kits.
If you rip out udisks*, it means GUI programs are at a disadvantage to find disks automatically for you. For me, it means that my unopened partitions (including crypts) don't pop up on every user's Xfce desktop by default. Long gone.
For any of this device stuff, you might reference Documentation/devices.txt from the kernel source. It will show you what devices should be there, and devtmpfs doesn't create all of them. In particular, you should be sure that if /dev/pts and /dev/shm are mounted before you rip everything out, they should be mounted after you rip everything out as well.
If you rip out dbus, though, that's asking for trouble. X11 programs don't work as well when they can't run dbus. When rebuilding programs, you're at the mercy of the developer to include --disable-dbus or --without-dbus in their ./configure scripts, and not all developers do that. Still, you can use it as a metric to determine which programs stay and which ones go.
I think that the kernel devtmpfs runs better now than the script I'm about to provide. This was from a year ago, as reference:
Code:
#!/bin/bash
# Sun Oct 14 23:20:07 EDT 2012 - I'm trying to get missing device nodes
# worked in to work with the kernel devtmpfs way of working with nodes. What
# to load has been gleaned from Documentation/devices.txt.
if [ ! -d /dev/pts ]; then
echo "Making /dev/pts directory..."
/bin/mkdir /dev/pts
fi
if [ ! -d /dev/shm ]; then
echo "Making /dev/shm directory..."
/bin/mkdir /dev/shm
fi
if [ ! -e /dev/fd ]; then
echo "Making link to /proc/self/fd..."
/bin/ln -sf /proc/self/fd /dev/fd
fi
if [ -h /dev/fd ]; then
if [ ! -e /dev/stdin ]; then
/bin/ln -sf fd/0 /dev/stdin
fi
if [ ! -e /dev/stdout ]; then
/bin/ln -sf fd/1 /dev/stdout
fi
if [ ! -e /dev/stderr ]; then
/bin/ln -sf fd/2 /dev/stderr
fi
fi
if [ ! -e /dev/mouse ]; then
if [ -e /dev/psaux ]; then
/bin/ln -s /dev/psaux /dev/mouse
elif [ -e /dev/input/mouse0 ]; then
/bin/ln -s /dev/input/mouse0 /dev/mouse
elif [ -e /dev/input/mice ]; then
/bin/ln -s /dev/input/mice /dev/mouse
fi
fi
if [ ! -e /dev/X0R ]; then
ln -sf null /dev/X0R
fi
if [ ! -e /dev/core ]; then
if [ -e /proc/kcore ]; then
/bin/ln -s /proc/kcore /dev/core
fi
fi
if [ -e /dev/ram0 ]; then
/bin/ln -sf ram0 /dev/ramdisk
fi
# Specific to this PC...
for a in 0 1
do
if [ -e /dev/sr$a ]; then
/bin/ln /dev/sr$a /dev/scd$a
fi
done
# MLS - Specific to this PC...
if [ -e /dev/scd0 ] ; then
/bin/ln -sf scd0 /dev/cdrom
fi
if [ -e /dev/sr1 ] ; then
/bin/ln -sf sr1 /dev/cdwriter
fi
Note that this doesn't cover some of the crazy things you have to do when hotplugging USB devices, especially things like my Garmin GPS, which will be ttyUSB0 when first plugged in, but after unplugging and plugging back in, decides it wants to be on ttyUSB1. It doesn't cover reworking permissions for USB devices like printers when they are unplugged and plugged back in. udev does have a place where it's at a great advantage. It's a matter of whether you want to deal with its nonsense on static devs in order to deal with the dynamic devs.
Note, however, that there's a matter of udev rules, too. If you go rummaging through /lib/udev/rules.d/ you'll see hundreds of lines for media players, webcams, printers, scanners, and phones that you'll never own. You'd be bankrupt if you owned all of them, and you'd have no room in your house after storing all of them. There's also hundreds of lines of gphoto2 nonsense that seems to exist to classify things as "not free enough." The fewer rules you have, the faster udev runs, and the less memory and boot time udev wastes.
And if this is all about having a grudge against Lennart Poettering, don't forget to rip out PulseAudio. Funny that you mention butt monkeys. "Pulse" is the name of the male-homosexual nightclub in my area, though I haven't set foot in there to know for sure what kind of PulseAudio is played there. BTW, I won't know what you'd do if you have a systemd-based system...that's for someone else to figure out...