我有一个在树莓派上运行的 ubuntu。 SD 卡读卡器通过 USB 连接。当 GUI (gnome) 运行时,SD 卡会自动/media/ubuntu/{label}
适当地安装和卸载。因此,该系统在技术上能够检测 SD 卡的插入和拔出。
在生产中,rasp pi 无法连接监视器,kde 未运行。我可以使用 udev 规则检测插入的 USB 记忆棒(取自https://gist.github.com/juancarlospaco/7f4eab1b6899c55ea90dc0ef5eea965d,归结为:
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/usr/bin/systemd-mount --no-block --automount=yes --collect /dev/%k '/media/ubuntu/%E{dir_name}'"
# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/usr/bin/systemd-umount -l '/media/ubuntu/%E{dir_name}'", RUN+="/bin/rmdir '/media/ubuntu/%E{dir_name}'"
它适用于 USB 记忆棒。但不适用于 SD 卡。这并不奇怪,因为 udev 不会触发添加或删除,只是更改。在下面的会话中,SD 卡被移除并再次插入。
ubuntu@ubuntu:/$ udevadm monitor
KERNEL[6751.389160] change /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdc (block)
UDEV [6751.599761] change /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdc (block)
KERNEL[6754.242775] change /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdc (block)
UDEV [6754.391038] change /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdc (block)
块设备轮询设置正确。
ubuntu@ubuntu:~$ cat /sys/module/block/parameters/events_dfl_poll_msecs
2000
我在这里能做什么?我想重申一下:使用 gnome,可以自动安装/卸载。