尽可能晚地在Linux启动时运行脚本

时间:2016-02-11 17:15:16

标签: linux linux-kernel linux-device-driver

我创建了一个简单的模块,用于控制USB在主机模式下是否为设备供电。加载后,该模块会切断所连接设备的电源,直到另有说明为止。

在启动时,系统还需要加载我的模块,并切断USB电源。为此,到目前为止,我已经尝试过:

  1. 将我的模块设置为内置内核:无效,稍后加载的模块会超出我的配置;
  2. 创建init.d脚本:创建脚本,并将其设置为在rc5上运行。没有运气,我遇到USB设备的多个问题(例如usb 2-1: device descriptor read/64, error -110);
  3. 我在自定义主板上运行内核3.12,并且我已经测试过,如果我在登录后手动(通过modprobe)将其加载到系统中,模块将按预期工作。

    理想情况下,我希望在启动过程中保持这些配置,而不需要登录等。

    所以,我的问题是:如何推迟模块加载直到最后一分钟,确保任何其他配置已经完成?另外,udev是一个很好的解决方案吗?从我读到的,我的印象是它不是最合适的......

    此致

    吉尔赫尔梅

1 个答案:

答案 0 :(得分:1)

所以,我已经弄清楚如何在使用init.d脚本时摆脱错误。所需的只是在加载模块之前取消绑定设备。 modprobe之前的下一行为我做了诀窍:

echo "2-1" > /sys/bus/usb/drivers/usb/unbind

此致

吉尔赫尔梅