After a recent thread, about udev developers wanting /usr on the same partition as / (or else requiring initramfs), it was pretty obvious that 90%+ of the users here strongly disliked the idea. I went around asking on various lists if it was possible to run Gentoo without udev. After some research, and various unrelated delays, I've come up with a working Gentoo without udev. It turns out that busybox's mdev implementation is sufficient for my needs. I do the usual email, web surfing, including Youtube. I'm listening to Live365.com as I type this email, so Flash works just fine. Contrary to the FUD I've heard, X works just fine, thank you, without an xorg.conf. Modern flatscreens with EDID info are set up automatically. I suppose that old CRT monitors without EDID info might require xorg.conf, but that's "exotic hardware" nowadays. The only change I notice is somewhat faster bootup.
The purpose of this email is to ask adventurous people here to beta test my approach to a udev-less Gentoo. If we don't find any showstopper problems, we can think about requesting Gentoo developers to support an mdev-based profile. It would help the cause if a large number of testers can report that it works for them. The instructions for a udev-ectomy follow below. Thanks to Zac Medico and others on the Gentoo developers' list for their helpful hints and pointers on how to do this. I couldn't have figured this out by myself. The usual warnings apply... * this is a beta * use a spare test machine * if you don't follow the instructions correctly, the result might be an unbootable linux * even if you do follow instructions, the result might be an unbootable linux 1) Set up your kernel to support and automount a devtmpfs filesystem at /dev * If you prefer to edit .config directly, set CONFIG_DEVTMPFS=y and CONFIG_DEVTMPFS_MOUNT=y * If you prefer "make menuconfig", the route is as shown below. Note that the "Autount devtmpfs..." option won't appear until you enable "Maintain a devtmpf..." option. make menuconfig Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs Once you've made the changes, rebuild the kernel. 2) Set up for emerging busybox, there are 2 items to change A) It appears that there may be an mdev bug in older versions of busybox. To avoid that bug, keyword busybox-1.19.2 in /etc/portage/package.keywords E.g. if you're using 32-bit Gentoo on Intel, the incantation is... =sys-apps/busybox-1.19.2 ~x86 Change the "~x86" to reflect your architecture, etc. B) busybox requires the "mdev" flag in this situation. The "static" flag is probably also a good idea. In file /etc/portage/package.use add the line sys-apps/busybox static mdev Now, "emerge busybox" 3) In the bootloader append line, include "init=/sbin/linuxrc" where the file /sbin/linuxrc consists of *AT LEAST*... #!/sbin/busybox ash mount -t proc proc /proc mount -t sysfs sysfs /sys exec /sbin/init This should be enough for most users. If you have an unusual setup, you may need additional stuff in there. If you're using lilo remember to re-run lilo to implement the changes. 4) Remove udev from the services list, and replace it with mdev. Type the following 2 commands at the command line rc-update del udev sysinit rc-update add mdev sysinit 5) reboot to your new kernel. You're now running without using udev. 6) ***THIS STEP IS OPTIONAL*** This is only to alay any suspicion that udev is still in use. udev is pulled in by virtual/dev-manager, which in turn is pulled in by the kernel. * cd /usr/portage/virtual/dev-manager * Make a backup copy of dev-manager-0.ebuild * Edit dev-manager-0.ebuild to include "sys-apps/busybox" as one option in RDEPEND, like so... RDEPEND="|| ( sys-fs/udev sys-fs/devfsd sys-apps/busybox sys-fs/static-dev sys-freebsd/freebsd-sbin )" I had really wanted to use "sys-apps/busybox[mdev]", but an EAPI-0 ebuild can't handle that syntax. * execute the following 3 commands at the commandline ebuild dev-manager-0.ebuild digest emerge -1 dev-manager emerge --unmerge sys-fs/udev * In file /atc/portage/package.mask, append the line sys-fs/udev Create the file if it doesn't already exist. You now have a totally udev-free machine -- Walter Dnes <waltd...@waltdnes.org>