Hi. We have a system based on the poky-tiny distro and we use mdev as
our device manager, or at least we do not set it to something at all
in the distro .conf:

# Use tmpdevfs and the busybox runtime services
VIRTUAL-RUNTIME_dev_manager = ""
#VIRTUAL-RUNTIME_login_manager = "tinylogin"
#VIRTUAL-RUNTIME_init_manager = ""
VIRTUAL-RUNTIME_keymaps = ""

and busybox is configured for have CONFIG_MDEV support.
Other from this we have not added or installed any specific mdev packages.

Things looked ok for a while, /dev was populated properly after boot
and all necessary file systems / mount points were created.
We were using an ext2 fs in RAM for mounting /.
Now, we made a change to instead use a CPIO image compressed using xz
and enabled the support in kernel to handle this.
This is when our problems started :( Suddenly our system booted with
just a very minimalistic /dev folder, containing basically only a few
of the devices probed at boot time.
When checking /etc/init.d we discovered that the mdev script actually
is not part of our image at all? In fact, it never was, even when we
used the ext2 boot!
The only way I could see how this script may be added to the image was
to install busybox-mdev, but that resulted in even more problems.
Now our mtd partitions could no longer be accessed!? They were visible
in /dev but not found by tools like flashcp. If I reduced the mdev
script to only do 'mdev -s' it all seems to work, and /dev looks like
it did before the change of ram boot mode.
My guess here is that the re-mounting of /dev that is performed as
part of the mdev init script destroys something? Also, there seems to
be a mess among the scripts executed at boot time with respect to what
is mounted and not.
We have the mountall.sh script, devpts.sh, mdev and a few others that
all seems to think they need to mount core file systems, but nothing
besides mdev seems to mount /dev? How was this done before adding
mdev?
Obviously it worked well without it, but when moving to CPIO.xz it
seems to be mandatory, but requires changes to work as expected?

So, the questions now are:

- how was /dev populated before when there was no /etc/init.d/mdev?
- why does adding /etc/init.d/mdev corrupt our /dev filesystem and
render some of our devices unusable?
- should you really need to explicitly add busybox-mdev? And if so, is
it expected that we need to change the init script?

Anyone that could describe how this is supposed to work, and what we
probably did wrong?
Seems a little bit too "magical" right now, and it would really feel a
lot better if this could be explained.

Thanks.
Hans

Build Configuration:
BB_VERSION        = "1.20.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "SUSE-LINUX-11"
TARGET_SYS        = "arm-poky-linux-gnueabi"
DISTRO_VERSION    = "1.5"
TUNE_FEATURES     = "armv7a vfp cortexa9"
TARGET_FPU        = "vfp"
meta
meta-yocto
meta-yocto-bsp    = "dora:75bed4086eb83f1d24c31392f3dd54aa5c3679b1"
meta-oe           = "dora:513e7ca20ddd0a5c3b649bf292a67c3e0473d3a8"
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to