如何编写在启动时应用于 PCI 设备的 udev 规则?

如何编写在启动时应用于 PCI 设备的 udev 规则?

我在 CentOS 7.6 系统上有一个 PCI 设备,需要应用一些特殊配置setpci才能使其正常运行。我想创建一个 udev 规则,当在启动时检测到设备时,它将自动运行脚本来应用这些设置。

我创建了一个如下所示的规则:

ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1234", ATTR{device}=="0x5678", RUN+="/bin/sh -c 'KERNEL=$kernel /usr/sbin/device-pci-setup.sh'"

但是,我发现添加设备时该规则似乎不会在启动时执行。如果我将 更改ACTIONchange,然后运行udevadm trigger​​,则规则将正确运行并调用脚本;它只是不在启动时运行(我猜测是因为 PCI 设备检测得太早,并且它可能还没有完整的文件系统访问权限)。

看来我不是第一个遇到这个问题的人,但是这里没有提供解决方案。有没有办法让它在启动时按预期工作?

相关内容