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