标签: udev

我可以从 /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
Run Code Online (Sandbox Code Playgroud)

此后我尝试将文件移动到/dev/null

$ mv test_file /dev/null
mv: inter-device move failed: ‘test_file’ to ‘/dev/null’; unable to remove target: Permission denied
Run Code Online (Sandbox Code Playgroud)

因为,这给了我一个Permission denied错误;sudo每当我遇到Permission denied错误时,我都会像往常一样继续使用。

$ sudo mv test_file /dev/null
Run Code Online (Sandbox Code Playgroud)

命令成功并且test_file不再存在于目录中。

但是,维基百科文章说无法恢复移动到的任何内容,/dev/null并且它为EOF任何尝试从中读取的进程提供了一个。但是,我可以阅读/dev/null

$ cat /dev/null
This is written by …
Run Code Online (Sandbox Code Playgroud)

udev

81
推荐指数
4
解决办法
3万
查看次数

更新到 15.10 后网络接口名称更改 - udev 更改

我将运行 Ubuntu 服务器 15.04 的虚拟机更新为刚刚发布的新稳定版 15.10。

没有明显的问题,但重启后机器失去了网络连接。lspci显示正确的卡并lsmod证明驱动程序已加载。

关于编辑或删除的提示/etc/udev/rules.d/70-persistent-net.rules没有成功(仍然没有网络,没有新文件),著名的/lib/udev/write_net_rules甚至不存在。

我对 udev 和 systemd 没有太多线索,所以我花了一些时间在 /sys/class/net 中发现网络接口名称发生了变化。它变成了ens32,从eth0. 在我更改/etc/network/interfaces网络通信后再次启用。

但是 - 为什么会发生这种情况?如果发生这种情况,接口文件不应该自动更新吗?

现在我把虚拟网卡删了又新建了,eth0就变成了eno16777728,不是这样,嗯,不错。

是否应将此行为(至少是升级过程的行为)报告为错误?

此外,现在/etc/udev/rules.d/70-persistent-net.rules已经过时了吗?而且(虽然只是部分相关)呢/etc/udev/rules.d/70-persistent-cd.rules?)

编辑 - 附加问题(在接受答案后)/etc/network/interfaces从实际接口名称 的依赖困扰着我。我在另一台虚拟机中尝试了 *ubuntu 的新安装。令我惊讶的是,仅/etc/network/interfaces包含对环回设备的引用。但是,对于我的原始 VM,此更改阻止了网络启动。那么我还需要改变什么?

编辑 好吧,从另一个测试中我发现一个新的 Ubuntu服务器在 中 具有网络接口卡/etc/network/interfaces,而 XUbuntu 没有。也许它正在使用network-manager或其他东西。

networking udev

56
推荐指数
4
解决办法
15万
查看次数

重启udev的正确方法是什么?

我已将eth1界面名称更改为eth0. udev现在如何要求重新读取配置?

service udev restart
Run Code Online (Sandbox Code Playgroud)

udevadm control --reload-rules
Run Code Online (Sandbox Code Playgroud)

不要帮忙。那么除了重新启动之外还有其他有效的方法吗?(是的,重启有助于解决这个问题)

  • 是的,我知道我应该在命令前面加上sudo,但是我上面发布的任何一个都不会改变ifconfig -a输出:我仍然看到eth1,而不是eth0

  • 我刚刚更改了NAMEudev-rule 行的属性。不知道有什么原因使这无效。

执行我上面发布的两个命令都没有任何错误,但它们只是不会更改ifconfig -a输出中的实际接口名称。如果我执行重新启动 - 则接口名称会按预期更改。

出于开发目的,我编写了一些脚本来克隆虚拟机(VirtualBox 驱动)并以某种方式预先设置它们。

所以我执行一个命令来克隆 VM,启动它,只要网络接口 MAC 发生变化 -udev将第二个规则添加到网络持久性规则中。机器第一次启动后,有两条规则:

  • eth0,不存在,只要存在于原始VM镜像MAC中
  • eth1,它存在,但所有文件中的所有配置都指向eth0,所以对我来说不是那么好

所以我sed删除了行eth0(它在克隆图像中已经过时且无用)并替换eth1eth0. 所以目前我有有效的持久规则,但仍然eth1存在/dev.

问题:我不想重新启动机器(这需要另外的时间,这在构建虚拟机阶段不是一件好事),只想/dev用一些命令重建我的机器,这样我就有了随时可用的虚拟机没有任何重启。

networking udev

51
推荐指数
6
解决办法
16万
查看次数

配置 Thinkpad TrackPoint 的最佳方法是什么?

以前有用的ThinkWiki 页面似乎已经过时了。我正在尝试永久更改我的 TrackPoint 灵敏度和速度设置并启用鼠标中键滚动。我过去尝试过 configure-trackpoint,但设置没有永久保存(重启后它们会丢失)。

我试过了gpointing-device-settings。使用它,我可以让鼠标中键滚动工作,但我无法更改轨迹点的速度或灵敏度设置。我尝试过的 ThinkWiki 页面上的所有方法都无法按照 Ubuntu 11.04 中的指示工作。有人可以解释如何永久编辑 TrackPoint 设置以便我可以正确使用它吗?

mouse hardware input-devices thinkpad udev

48
推荐指数
4
解决办法
7万
查看次数

Android adb 无权限

我正在尝试从 Ubuntu(+Cinnamon) 机器上使用 adb。问题是我从adb devices收到以下消息:

List of devices attached
TA8830OIVO  no permissions
Run Code Online (Sandbox Code Playgroud)

TA8830OIVO 是我的摩托罗拉 G 设备。

我在/etc/udev/rules.d/51-android.rules 中更改了 android 规则

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="android_adb", OWNER="axel"
Run Code Online (Sandbox Code Playgroud)

我还重新启动了 udev 服务,并在我的个人笔记本电脑上安装了 adb 我是唯一拥有所需所有特权的用户(plugdev 组等)。

有没有办法在不调用sudo 的情况下运行 adb ?

android udev adb

39
推荐指数
3
解决办法
5万
查看次数

如何区分相同的USB转串口适配器?

我在我的笔记本电脑 (Ubuntu 9.10) 上使用了许多相同的 USB 转串口适配器。这些适配器由 Sabrent 制造,并围绕 Prolific PL2303 IC 构建,如下所示lsusb

Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port  
Bus 001 Device 007: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port  
Bus 001 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port  
Run Code Online (Sandbox Code Playgroud)

显示的所有属性udevadm似乎都不是特定适配器独有的:

foo@bar:~$ udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0

   looking at device
 '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.1/1-4.1:1.0/ttyUSB0':  
     KERNEL=="ttyUSB0"  
     SUBSYSTEM=="usb-serial"  
     DRIVER=="pl2303"   
     ATTR{port_number}=="0"  

   looking at parent device
 '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.1/1-4.1:1.0':
     KERNELS=="1-4.1:1.0"  
     SUBSYSTEMS=="usb"  
     DRIVERS=="pl2303"  
     ATTRS{bInterfaceNumber}=="00"  
     ATTRS{bAlternateSetting}==" 0"  
     ATTRS{bNumEndpoints}=="03"  
     ATTRS{bInterfaceClass}=="ff"  
     ATTRS{bInterfaceSubClass}=="00" …
Run Code Online (Sandbox Code Playgroud)

usb udev serial-port

35
推荐指数
4
解决办法
8万
查看次数

AdbCommandRejectedException:设备权限不足:plugdev 组中的用户;你的udev规则错了吗?

五天前,我在完全更新的 Ubuntu 2018.04 上安装了 Android Studio,使用向导创建了一个示例应用程序,按下“运行”按钮,它在我通过 USB 连接的 Android 设备上完美运行。

今天,在同一个 Ubuntu 上并插入同一个设备,我打开同一个项目并再次按“运行”。现在失败了:

Launching Application
$ adb push /home/nico/src/ActionBarCompat-Basic/Application/build/outputs/apk/debug/Application-debug.apk /data/local/tmp/com.example.android.actionbarcompat.basic
com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information
Error while Installing APK
Run Code Online (Sandbox Code Playgroud)

我没有故意修改任何 Ubuntu 配置,甚至没有更新操作系统。

可能是什么问题呢?
如何进一步调查?

android udev adb android-studio 18.04

30
推荐指数
3
解决办法
3万
查看次数

使 Microsoft Natural Ergonomic Keyboard 4000 和 7000 的缩放滑块在 14.04 中上下滚动(可信赖)

我尝试使用本教程使滚动开关在我的 Microsoft Natural Ergonomic Keyboard 4000 上工作。但我面临以下错误:

sudo: /lib/udev/keymap: command not found
Run Code Online (Sandbox Code Playgroud)

我有 udev 版本204-5ubuntu20.2(在 Trusty 中找到的版本)

我注意到这个版本不包括keymap工具。但我注意到更高udev版本(例如可用于 Debian)包含此工具。

有人可以为我解释这个差异吗?=) 在这种情况下我应该怎么做 - 从 Debian 仓库安装软件包?

keyboard udev 14.04

29
推荐指数
3
解决办法
1万
查看次数

配置 udev 以更改 USB HID 设备的权限?

我有一个 USB 秤,一个 USB HID。目前,当它插入时,权限只允许超级用户访问它。如何配置 udev 以允许任何人访问此设备?我有供应商和产品 ID,但我想根据 HID 类型来匹配它。

现在,我很难找到任何适用于此的现有规则(我在/lib/udev/rules.d和 中搜索了“hidraw” /etc/udev/rules.d,等等)。

input-devices usb udev

25
推荐指数
4
解决办法
8万
查看次数

如何更改单个设备的键盘映射(罗技演示器)?

我的 Logitech R400 演示器发送以下关键代码:

keycode 112 (keysym 0xff55,  Prior) [page up]
keycode 117 (keysym 0xff56,   Next) [page down]
keycode  60 (keysym   0x2e, period)
keycode  71 (keysym 0xffc2,     F5)
keycode   9 (keysym 0xff1b, Escape)
Run Code Online (Sandbox Code Playgroud)

基本上,我想用这个presenter远程控制Banshee,所以我想重新映射PriorBNextN,等等。

如何仅更改此设备的键盘映射(因为我当然不想全局重新映射这些键代码)?

remote-control udev

20
推荐指数
2
解决办法
2万
查看次数