需要查看udev事件来编写规则。
我试过设置udev_log="debug"在/etc/udev/udev.conf.
我尝试编辑/usr/share/initramfs-tools/scripts/init-top/udev以设置log_level=debug在那里。还有--debug选项:
...
log_level=debug
SYSTEMD_LOG_LEVEL=$log_level /lib/systemd/systemd-udevd --daemon --debug --resolve-names=never 2>/dev/.udev.debug
...
Run Code Online (Sandbox Code Playgroud)
并每次都重建 initramfs:
update-initramfs -k all -u
Run Code Online (Sandbox Code Playgroud)
重新启动后,文件中不会记录任何内容,journalctl -u systemd-udevd也不显示事件。
我目前正在使用附加服务来查看事件:
[Unit]
Description=udev Monitoring
DefaultDependencies=no
Wants=systemd-udevd.service
After=systemd-udevd-control.socket systemd-udevd-kernel.socket
Before=sysinit.target systemd-udev-trigger.service
[Service]
Type=simple
ExecStart=/bin/sh -c "/sbin/udevadm monitor --udev --env > /dev/udev_monitor.log"
[Install]
WantedBy=sysinit.target
Run Code Online (Sandbox Code Playgroud)
有更容易的方法吗?
这对我在 VirtualBox 中使用 Ubuntu 18.04 有用。
quiet splash即可以文本模式启动。udev.log-priority=debug。然后Ctrl+X启动。您可以在启动时或使用后看到 udev 消息:
journalctl -u systemd-udevd
Run Code Online (Sandbox Code Playgroud)
对于永久设置,您可以udev.log-priority=debug设置GRUB_CMDLINE_LINUX
来源: - archlinux - Udev 调试输出