[gobolinux-users] InitRamFS and cpio format

Lucas C. Villa Real lucasvr at gobolinux.org
Fri May 18 01:39:07 UTC 2007


On 5/17/07, Aitor Pérez Iturri <aitor.iturri at gmail.com> wrote:
> Hi all,
>
> I make a initramfs cpio file that seems to run.
> Now i'm having problems with udev, when it boots my sda disk is nor
> present under /dev, so lvm doesn't run.
>
> I don't know very well how udev runs, i compiled a udev version with
> klibc, i run udevd --daemon, but seems not to work.
>
> Anyone can resume how udev works to integrate it in the initramfs.
> Is udev related anyway with hotplug?

Just ensure that the necessary drivers for your scsi controller are
loaded. I've been taking more care of that in the latest kernel
packages, but it's interesting to check if they're still available as
modules only.

I haven't worked with initramfs yet.. at which stage of the boot does
it run? Do you have a boot log available, just to check if your disk
was found? Is it possible to mount procfs or sysfs? If that's
possible, you could check /proc/partitions and /sys/block/ to see if
your device was detected by the kernel. If it's not, then you'll
probably need to forget about udev and just create a minimal/static
/dev in your initramfs with the necessary device nodes.

Anyway, udev doesn't use hotplug anymore. All you need to do is to
call 'udevtrigger' and then 'udevsettle', which checks for the kernel
events and waits until all events are handled, respectively. The
following calls are enough to create a functional udev task:

udevd --daemon
echo "" > /proc/sys/kernel/hotplug
mkdir -p /dev/.udev/queue
udevtrigger
udevsettle --timeout=10

Prior to the call to udevd you have to have some basic devices in
/dev, as well as sysfs mounted (procfs is probably needed as well).
These steps are described in the Udev task, stored in
/System/Links/Tasks.

-- 
Lucas
powered by /dev/dsp


More information about the gobolinux-users mailing list