为了解决驱动程序问题,我决定重命名
/etc/udev/rules.d
进入
/etc/udev/rules.d.gold
这是一个绝妙的主意,因为现在我无法撤销我的更改:
mkdir: cannot create directory rules.d : file exists
原始状态
ls -la
total 32
drwxr-xr-x 4 root root 4096 Fev 8 12:50 .
drwxr-xr-x 150 root root 12288 Fev 8 11:15 ..
drwxr-xr-x 2 root root 4096 Abr 12 2016 hwdb.d
-rw-r--r-- 1 user user 435 Dez 14 2017 rules.d <- A FILE
drwxr-xr-x 2 root root 4096 Fev 5 18:59 rules.d <- A FOLDER
-rw-r--r-- 1 root root 153 Abr 12 2016 udev.conf
当前状态
ls -la
total 32
drwxr-xr-x 4 root root 4096 Fev 8 12:50 .
drwxr-xr-x 150 root root 12288 Fev 8 11:15 ..
drwxr-xr-x 2 root root 4096 Abr 12 2016 hwdb.d
-rw-r--r-- 1 user user 435 Dez 14 2017 rules.d <- A FILE
drwxr-xr-x 2 root root 4096 Fev 5 18:59 rules.d.gold <- A FOLDER
-rw-r--r-- 1 root root 153 Abr 12 2016 udev.conf
最初有一个同名的文件和文件夹。我无法重新创建它因为不可能创建同名的文件和文件夹。
现在怎么办?我的操作系统是 Ubuntu 16.04。
编辑:
查看我的 Ubuntu 18.4 虚拟安装,该文件rules.d
不存在。
我不确定这个文件在我的主机系统中起什么作用,也许它不应该在那里。文件的内容是:
# version 0002
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
答案1
在 /etc 文件夹中有一个命名约定 -.d
目录名称表示文件目录。
例如 - 将/etc/apt/sources.list
(文件) 与/etc/apt/sources.list.d/
(包含*.list
文件的目录) 进行比较。这种命名也用于 udev:
$ ls /etc/udev/ -d /etc/udev/ $ ls /etc/udev/rules.d/ -d /etc/udev/rules.d/
然后关于恢复 - 我们可以检查哪个包安装文件/etc/udev/rules*
:
$ dpkg -S /etc/udev/rules* udev: /etc/udev/rules.d
因此我们需要重新安装udev
指定特殊选项的软件包--force-confmiss
(请参阅man dpkg
):
--force-things
...
确认:如果缺少 conffile 并且软件包中的版本确实发生了变化,请始终在不提示的情况下安装缺少的 conffile。这很危险,因为这意味着不保留对文件所做的更改(删除)。
sudo mv /etc/udev /etc/udev.old
apt-get download udev
sudo dpkg --force-confmiss -i udev_*.deb
注意:你可以阅读有关 Udev 规则的更多信息ArchLinux 维基。