需要查看 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
...
并且每次都重建 initramfs:
update-initramfs -k all -u
重新启动后,文件中没有任何记录,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
有更容易的方法吗?
答案1
这对我使用 VirtualBox 中的 Ubuntu 18.04 很有效。
- 在 Grub 菜单中,按下E进行编辑。删除
quiet splash
以在文本模式下启动。 - 添加
udev.log-priority=debug
。然后Ctrl+X启动。
您可以在启动时或使用后看到 udev 消息:
journalctl -u systemd-udevd
对于永久设置,您可以udev.log-priority=debug
设置GRUB_CMDLINE_LINUX
答案2
我刚刚遇到这个问题,重定向 udevd 的 stderr 时还需要设置 SYSTEMD_LOG_TARGET=console。我以为我疯了!