【问题标题】:What does udev need to startup properly in Linux?udev 需要什么才能在 Linux 中正确启动?
【发布时间】:2016-02-04 04:54:50
【问题描述】:

我的 i.MX6 板上的 udev 启动存在问题。 udev-182 是由 Yocto 1.8 BSP 为开发板交叉构建的。我在启动时看到以下输出:

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

我认为该错误是缺少 /run/udev/control 存在的结果。但我不确定是什么造成的。

我在调查触摸屏无法正常工作的问题时注意到了这一点。如果我从命令行手动重新启动 udev,一切似乎都可以正常工作,并且我的触摸屏开始工作。

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

当我重新启动时,会创建 /run/udev/control。

关于什么可能导致此失败的任何想法?

谢谢

【问题讨论】:

    标签: linux embedded-linux udev init.d


    【解决方案1】:

    我遇到了同样的问题,我设法通过在 u-boot 中将 rootwait rw 附加到我的 bootargs 来解决该问题。

    例如,如果您的引导参数是:

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

    改成:

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

    这是因为内核默认将 rootfs 挂载为 r/o,因此任何进程在启动时都无法创建新文件。

    【讨论】:

      【解决方案2】:

      比较“udev start by init”和“udev start from console”的 strace 输出可能会给你一些想法。

      【讨论】:

      • 也许是一个菜鸟问题...但是我将如何 strace init?
      • 取决于您的系统...如果您的 init 从 init.rc、rcS 或其他一些引导脚本启动程序,您可以从那里破解 strace。
      猜你喜欢
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      相关资源
      最近更新 更多