【问题标题】:How to stop automatic Linux device initialization如何停止自动 Linux 设备初始化
【发布时间】:2014-10-07 01:31:54
【问题描述】:

每当我将 USB 大容量存储设备插入系统时,我都会从内核中收到类似的 uevent。 (如 udevadm 监视器所示)

KERNEL[104397.739313] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6 (usb)
KERNEL[104397.740141] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0 (usb)
KERNEL[104397.740787] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48 (scsi)
KERNEL[104397.741362] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/scsi_host/host48 (scsi_host)
KERNEL[104399.210661] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0 (scsi)
KERNEL[104399.211095] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0 (scsi)
KERNEL[104399.211502] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/scsi_disk/48:0:0:0 (scsi_disk)
KERNEL[104399.211757] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/scsi_device/48:0:0:0 (scsi_device)
KERNEL[104399.212464] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[104399.212743] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/bsg/48:0:0:0 (bsg)
KERNEL[104399.215444] add      /devices/virtual/bdi/8:16 (bdi)
KERNEL[104399.220099] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/block/sdb (block)
KERNEL[104399.220181] add      /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host48/target48:0:0/48:0:0:0/block/sdb/sdb1 (block)

我需要尽快将 USB 设备连接到 KVM,虽然 udev 规则允许我调用执行连接的脚本,但内核处理仍会自动进行。我想防止这种情况发生。使用 udev 或其他一些机制可以做到这一点吗?

【问题讨论】:

  • 如果您愿意构建自定义内核,我们可以这样做吗?如果您有兴趣回复此评论,我可以尝试回答。
  • @Vality 当然,自定义内核是一个选项。
  • 我实际上意识到在重新发送的内核中您可以轻松地做到这一点,而无需修改内核。请看下文。如果您有较旧的内核,则可能需要修补其中的功能。

标签: linux usb udev


【解决方案1】:

我实际上记得这比我在新内核中记住的要简单得多,你只需要运行:

echo '0' > /sys/bus/usb/drivers_autoprobe

在启动时以 root 身份,这将阻止内核在 USB 设备连接时探测它们,因此只有当您通过向/sys/bus/usb/drivers_probe 写入内容手动选择这样做时才会枚举它们。

这应该或多或少做你想做的事,内核不会将任何驱动程序绑定到 USB 设备,然后你可以稍后将它们绑定到你的 VM。

【讨论】:

    猜你喜欢
    • 2016-08-02
    • 2016-11-25
    • 2015-08-18
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    相关资源
    最近更新 更多