[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: linux-2.6_2.6.38-5_m68k.changes ACCEPTED




On 15/05/2011, at 5:40 AM, Thorsten Glaser wrote:

Hi,

another thing – can we have CONFIG_DEVTMPFS_MOUNT=y on m68k?
While udev works, it doesn’t work pleasurably and delays booting
by several minutes on the fastest VMs, which end up having a load
of >20 when one can finally log in, and except for a symlink in
/dev/fd things work without it; waldi said that, normally, the
initramfs is supposed to mount devtmpfs, but as m68k doesn’t have
one (and klibc doesn’t work on it yet, although I’ve made some
progress with that too, but even then I’m not certain whether
all bootloaders used support initrd) I was wondering if we can’t
enable this in the kernel.

At the moment, precisely half of my VMs boot without udev and
with devtmpfs.mount=1 on the kernel command line.


Oddly I've had a similar conversation with Finn Thain. When we were working on Debugging the 2.6.37 kernels I had. Here's his solution to creating a static /dev from the devtmpfs.

On 21/03/2011, at 5:23 PM, Finn Thain wrote:

The other problem (as I mentioned) is that udev doesn't seem to be
running.

Now, you can compile a recent kernel so that the kernel automatically
mounts a devtmpfs pseudo filesystem on /dev. Or you can get udev working,
which is supposed to start at boot time and mount a tmpfs psuedo
filesystem on /dev and populate it with the necessary device nodes.

But it is much more robust if you don't depend on those mechanisms (and
that's why the installer populates /dev). For robustness, you need a
static /dev on the root filesystem (not just a dynamic one on a pseudo
filesystem mounted at /dev).

There's a number of solutions to this problem that don't involve new
kernels. One way to do it is to copy the device nodes from devtmpfs to the
root filesystem as follows.

First, make sure nothing is mounted on /dev; i.e. if you are going to
work on /dev, you need to know that /dev is the root filesystem and not
some pseudo fs.

# df / /dev

Once you've confirmed that / and /dev are the same fs, you can do this:

# mkdir /mnt
# mount -t devtmpfs none /mnt
# tar -C /mnt -c null console zero tty* sd* rtc* random urandom | tar -C /dev -x
# umount /mnt
# mkdir /dev/pts /dev/shm



--
Michael Tomkins
michft@gmail.com
+61 408 172 142


Reply to: