Corrected "#!/sbin/busybox ash" to "#!/bin/busybox ash" in step 3.  The
weird part is that my system actually booted and ran fine even with this
typo in the script.
 
  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*...

#!/bin/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.

* If you don't already have an overlay, create one, and implement it in
  /etc/make.conf.  In the following example, I'll use my setup, which has
  the overlay in /usr/local/portage

* copy the contents of /usr/portage/virtual/dev-manager/ to
  /usr/local/portage/virtual/dev-manager/

* cd /usr/local/portage/virtual/dev-manager/

* Edit the dev-manager-0.ebuild in the overlay to include
  "sys-apps/busybox[mdev]" as one option in RDEPEND.  And also include
  "EAPI=2" at the top of the ebuild, which is required for this syntax.
  The revised ebuild is shown below.

############################################
EAPI=2

DESCRIPTION="Virtual for the device filesystem manager"
HOMEPAGE=""
SRC_URI=""

LICENSE=""
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~spar
c-fbsd ~x86-fbsd"
IUSE=""

DEPEND=""
RDEPEND="|| ( sys-fs/udev
                sys-apps/busybox[mdev]
                sys-fs/devfsd
                sys-fs/static-dev
                sys-freebsd/freebsd-sbin )"
############################################

* 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>

Reply via email to