linsek
linsek

Reputation: 3480

What does udev need to startup properly in Linux?

I have an issue with udev startup on my i.MX6 board. udev-182 was cross-built by the Yocto 1.8 BSP for the board. I see the following output on startup:

INIT: version 2.88 booting
Starting udev
udevd[188]: bind failed: No such file or directory
error binding udev control socket
udevd[188]: error binding udev control socket

I believe the error is a result of the lack of /run/udev/control existing. But I am unsure what creates that.

I noticed this while I was looking into an issue with my touchscreen not working. If I manually restart udev from the command line, everything seems to work fine and my touchscreen begins functioning.

root@nitrogen6x:~# /etc/init.d/udev restart
Stopping udevd
Starting udev
udevd[451]: starting version 182
mxc_v4l_open: Mxc Camera no sensor ipu1/csi0
mxc_cam_select_input: input(0) CSI IC MEM
mxc_v4l_open: Mxc Camera no sensor ipu0/csi0
mxc_v4l_open: Mxc Camera no sensor ipu0/csi1

When I do a restart, /run/udev/control is created.

Any ideas on what could be causing this failure?

Thanks

Upvotes: 1

Views: 2520

Answers (2)

Yechiel
Yechiel

Reputation: 11

I had the same issue and I managed to resolve that by appending rootwait rw to my bootargs in u-boot.

For instance, if your bootargs were:

console=ttymxc3,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=spi0.0:512k(uboot),256k(ubootenv),6144k(kernel),256k(fdt),20m(rootfs),-(data)

Change it to:

console=ttymxc3,115200 root=/dev/mtdblock4 rootfstype=jffs2 rootwait rw mtdparts=spi0.0:512k(uboot),256k(ubootenv),6144k(kernel),256k(fdt),20m(rootfs),-(data)

That's because the kernel mounts the rootfs as r/o by default and thus new files cannot be created by any process at startup.

Upvotes: 1

tk.lee
tk.lee

Reputation: 305

Compare strace output of "udev start by init" and "udev start from console" might give you some idea.

Upvotes: 0

Related Questions