Tag: 的udev

如何让Ubuntu Server识别并自动挂载热插拔SATA驱动器?

AHCI开启,我可以手动安装,但因为这个设备注定是一个无人设备使用的人没有关于终端的线索所以我需要一些尽可能耐用的东西。 我希望我需要制定一些udev规则,但我不知道如何开始。 我已经设法使用fstab使其自动挂载,但这不适合热插拔。 现在,我需要的是它能够识别具有一个主要NTFS分区的特定驱动器,但我会将其提升到包括一堆驱动器,甚至“驱动器之前从未见过”驱动器,所以如果有人也可以提供帮助然后我就更好了。

Usb udev规则从未为我工作过

我尝试将USB设备识别为我的用户组的一部分。 因此,当我调试访问这些设备的程序时,我不必在开发期间发出sudo 。 使用Netbean或Eclipse时尤其痛苦。 udev规则从未奏效: $ cat /etc/udev/rules.d/40-usbio.rules SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, MODE=”0664”, GROUP=”odroid”, ATTR{idVendor}==”04d8”, ATTR{idProduct}==”003f” 我也试过mod MODE=”0666”和MODE=”0777” 。 最奇怪的部分是我的USB摄像头具有相同的权限,并且是同一组(root)的一部分。 但是当我使用cheese和camorama时,它永远不需要sudo 。 ls -l /dev/bus/usb/001/013 —————> camera crw-rw-r– 1 root root 189, 12 Mar 16 21:25 /dev/bus/usb/001/013 ls -l /dev/bus/usb/002/007 —————-> usb device crw-rw-r– 1 root root 189, 134 Mar 16 21:32 /dev/bus/usb/002/007 我也想用arduino做同样的事情,但即使使用正确的规则文件,它也无法正常工作。 即使重新启动udev或计算机后。 如何解决这个问题?

udev rules.d – 热插拔HDMI监视器 – 脚本未运行

我试图让每次插入HDMI监视器时运行一个脚本,在读完之后我发现了这个并在其中要求我创建99-monitor-hotplug.rules并把它放在/etc/udev/rules.d并指定我想要运行的脚本。 该规则如下所示: ACTION==”change”, SUBSYSTEM==”drm”, ENV{HOTPLUG}==”1″, RUN+=”/root/hotplug.sh” 嗯,我做到了,但脚本没有运行。 我知道这是因为在脚本中我只有: #!/bin/bash opera 我故意制作剧本那么简单,所以我可以看到正在发生的事情。 当我从命令行调用脚本时,Opera会运行。 以下是当“ udevadm monitor –property ”运行时插入和拔出HDMI监视器时发生的情况: monitor will print the received events for: UDEV – the event which udev sends out after rule processing KERNEL – the kernel uevent KERNEL[730.834194] change /devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1 (drm) ACTION=change DEVNAME=/dev/dri/card1 DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1 DEVTYPE=drm_minor HOTPLUG=1 MAJOR=226 MINOR=1 SEQNUM=3245 SUBSYSTEM=drm UDEV [730.835499] […]

udev没有运行删除事件

我有两个规则,一个用于连接设备,我的手机,另一个用于断开时。 添加规则运行删除规则不会。 这是我的udev规则。 我简化了但是remove事件没有运行。 #RUNS: KERNEL==”sd?1″, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0ff9″, SYMLINK+=”phone”, ACTION==”add”, RUN+=”/usr/bin/touch /tmp/udev.add” #DOES NOT RUN: KERNEL==”sd?1″, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0ff9″, SYMLINK+=”phone”, ACTION==”remove”, RUN+=”/usr/bin/touch /tmp/udev.remove” 为什么一个人跑而另一个跑?

udev运行命令未运行

当我通过USB连接手机时,我正在尝试创建一个udev规则来解锁我的电脑。 我无法发现该规则正在运行,所以我尝试了一个更简单的规则。 这是规则(匿名): KERNEL==”sd?1″, ATTRS{idVendor}==”****”, ATTRS{idProduct}==”****”, SYMLINK+=”phone”, RUN+=”touch /home/user/udev.touch” 我知道该规则正在运行,因为正在创建链接phone -> sdc1创建该文件。 我是否必须启用安全设置才能使文件运行外部程序?

如何使udev规则有效?

我想学习udev规则。 这是我做的: victor@X301A1:~$ ls /etc/udev/rules.d/ 70-persistent-cd.rules 70-persistent-net.rules README 然后: victor@X301A1:~$ sudo gedit /etc/udev/rules.d/01-my-first-udev.rules 我的规则: ACTION==”add”, RUN+=”echo HELLO ! > /home/victor/udev_test_log.txt” 保存文件后: sudo udevadm control –reload-rules 我预计连接USB设备会在文件中写入但没有任何反应。 我哪里错了?

如果我使用udevadm触发器,为什么我的udev规则会运行,但不是在启动时?

我无法运行udev规则。 这是一个例子: 我有一个规则/etc/udev/rules.d/99-test.rules ,其中包含: ACTION==”add”, SUBSYSTEM==”pci”, ATTR{vendor}==”0x8086″, RUN+=”/sayhi” 而sayhi只有: #!/bin/bash date +”%Y-%m-%d %H:%M:%S,%3N” >> /saidhi 这是一台Intel机器,我显然有很多厂商的0x8086 PCI设备: root@imtrobot:~# lspci -n |grep 8086 00:00.0 0600: 8086:2770 (rev 02) 00:02.0 0300: 8086:2772 (rev 02) 00:1d.0 0c03: 8086:27c8 (rev 01) [ etc. 12 lines total ] 然而,当我启动时, /saidhi将根本不会被创建,或者将包含1或2个日期行。 如果,在启动后,我运行udevadm trigger –action=add –subsystem-match=pci 然后 /saidhi将获得完全正确的添加日期数。 为什么在启动过程中这不起作用?

我可以从/ dev / null读取; 怎么解决?

我阅读了/dev/null上的维基百科文章,并将文件移动到/dev/null 。 为此,我创建了一个test_file并在其中放入了一些内容: $ touch test_file $ echo “This is written by Aditya” > test_file $ cat test_file This is written by Aditya 此后我尝试将文件移动到/dev/null : $ mv test_file /dev/null mv: inter-device move failed: ‘test_file’ to ‘/dev/null’; unable to remove target: Permission denied 既然,这给了我一个Permission denied错误; 每当遇到Permission denied错误时,我就像往常一样使用sudo 。 $ sudo mv test_file /dev/null 命令成功, test_file中不再存在test_file 。 […]