Questions tagged «udev»

2
udev实际解决了哪些问题?
为此,一堆静态文件到底有什么问题/dev?对于开发人员来说,按我的观点重新发明这个轮子显然不够令人满意(devfs-> udev + HAL-> udev),现在看来,它也已经进入了Grand Unified Init计划了四次。 我记得几年前刚开始使用Linux时感到惊讶的是,尽管声称“一切都是文件”,但是没有/dev/eth0(后来才有意义,因为它不是char或block设备-尽管是“ packet”设备类型会很有趣...)。既然如此,为什么处理char和block设备文件树的程序也负责网络设备?我看到过模糊的对“灵活性”的引用,但是如果仅仅看一下,这会增加ifconfig(8)的作用/proc/net/dev?我知道,例如NetworkManager不会很快出现在Net或OpenBSD中,因为它依赖于udev,两个团队都不愿编写。我不/dev内核已经以多种方式公开了这些代码(并且在/dev!中都没有)。 仅仅是因为热插拔吗?内核仅侦听物理总线并在“添加设备”消息上加载适当的模块是否存在问题?或者,上帝禁止,实际的管理员这样做吗?我确实记得在2000年代初期,我的服务器有时会以意想不到的顺序初始化其网卡,并且我认为在用户名中确定命名是很有意义的(尽管那时并不难解决),但是这似乎是蟑螂的大锤。(或者这个问题对用例而言,我没有想过比机架式服务器或PC难得多,这是我的经验。) 因此,要明确地说出我的问题:udev实际解决了哪些问题,而devfs,HAL和/或普通的旧文件是如何解决不了的呢?是否有一个特殊的原因会使许多不同的事物(热插拔,常规设备管理,网络设备管理,设备命名,驱动程序优先级等)全部成为一个程序?
28 linux  udev 

8
udev规则可在插入USB键盘时自动加载键盘布局
我在尝试插入USB键盘时尝试加载新的键盘布局,但我的udev规则不起作用。 SUBSYSTEM ==“ input”,ATTR {idVendor} ==“ 062a”,ATTR {idProduct} ==“ 0201”,GOTO =“ usb_xmodmap_auto” LABEL =“ usb_xmodmap_auto” ACTION ==“ add”,RUN + =“ / usr / bin / xmodmap〜/ .usbXmodmap” ACTION ==“ remove”,RUN + =“ / usr / bin / xmodmap〜/ .pndXmodmap” 我使用以下方法重新加载了规则: > sudo udevadm控制-重新加载规则 并通过重新启动系统,但是当我插入USB键盘时,原始xmodmap仍然加载,因此键盘布局错误,但是如果我在终端中运行命令 > / usr / bin / …
24 linux  usb  udev 

6
使用udev规则在USB插入上运行脚本
我试图设置一个脚本,使其在每次插入USB设备时都能运行。我创建了文件/etc/udev/rules.d/90-local.rules并添加了以下规则: ACTION=="add", SUBSYSTEM=="usb", KERNEL=="sd*", SYSFS{model}=="Cruzer*", RUN+="sh /home/jesse/Documents/Scripts/cruzer.sh" 问题在于,连接驱动器后,什么也不会发生。出于调试目的,脚本被操纵为发送带有notify-send的通知,该脚本已安装并且可以在终端上正常运行。 脚本的路径是正确的,因为我已经在终端中运行了该确切命令而没有任何麻烦。
17 linux  autorun  udev 

6
如何检查udev规则是否被触发?
我正在尝试在Ubuntu 13.10下熟悉udev。 这是我的第一个简单的95.usbbackup.rules规则: ACTION=="add", SUBSYSTEMS="usb", RUN+="/usr/local/bin/my_backup.sh" 这是脚本(已被+ x修改)my_backup.sh: #!/bin/bash touch /tmp/test 当我插入外部驱动器时,什么都没有发生。如果规则被触发,如何检查(日志,命令等)? 非常感谢
16 linux  ubuntu  udev 

1
将USB集线器分配给多座配置中的特定座位
在基于debian的计算机上,我有一个可以正常工作的multiseat配置。 到目前为止,我无法解决的一个令人烦恼的细节是,我连接的任何USB硬件始终分配给主要座位。 搜寻互联网时,似乎可以解决此问题的方法是将USB集线器连接到计算机,并将其“所有权”分配给辅助座椅。这样,连接到集线器的任何设备都将被控制到辅助座椅。但是,我对如何分配所有权有些困惑。 lsusb 让我跟踪了枢纽的公交车位置: Bus 002 Device 004: ID 1a40:0201 Terminus Technology Inc. Hub 如果有人从这里引导我,我将不胜感激。 PS:最初,我认为我必须调整xorg.conf设置,但是在阅读conf.xorg文档时,我找不到任何相关内容。在其他一些文章中,我也阅读了有关使用的信息udev,但是再次……我没有找到明确的方法来实现这一目标。
13 usb  debian  xorg  udev  multiseat 


2
systemd-udevd [381]:无法执行'/ lib / udev / socket:@ / org / fre edesktop / hal / udev_event'
升级到Ubuntu 14.04之后,我在dmesg中看到了 [ 1.538887] systemd-udevd[105]: starting version 204 [ 19.074098] systemd-udevd[310]: starting version 204 [ 19.271342] systemd-udevd[381]: failed to execute '/lib/udev/socket:@/org/freedesktop/hal/udev_event' 'socket:@/org/freedesktop/hal/udev_event': No such file or directory [ 19.279385] systemd-udevd[395]: failed to execute '/lib/udev/socket:@/org/freedesktop/hal/udev_event' 'socket:@/org/freedesktop/hal/udev_event': No such file or directory [...] 如何解决这个问题?

1
系统未检测到热插拔的显示端口(通过雷电连接器)
如果在启动之前连接了外接显示器(通过雷电连接到笔记本电脑),则可以正常工作。但是,一旦以任何方式将其拔下或断开连接,xrandr将不再检测到重新连接的显示器。 我正在运行Arch Linux,bumblebee用于图形卡处理。外部卡通过雷电连接器连接。有人可以告诉我机器出了什么问题,如何使热插拔正常工作?谢谢。 [调试细节] 在bumblebee和上跟踪了多个线程udevadm,我进行了一些测试并制作了一个热插拔脚本。但是问题仍然没有解决。结果发布如下。 对于大黄蜂,我没有做太多调整,因为第二个显示器在未热插拔时可以正常检测。 有关热插拔的问题。我做了以下事情: 当显示器正常工作时,xrandr --query返回 Screen 0: minimum 8 x 8, current 2944 x 1080, maximum 32767 x 32767 eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm 1920x1080 60.02*+ ... DP1 connected 1024x768+1920+0 (normal left inverted right x axis …


3
udev规则中的脚本未运行
我正在笔记本电脑上运行Ubuntu 9.10(Karmic Koala),并希望NumLock根据我的USB键盘是插入(数字锁定打开)还是拔出(数字锁定关闭)自动切换。 为此,我首先安装了“ numlockx”软件包。numlockx on并且numlockx off工作正常。 为了连接到设备系统,我想我会使用udev。我已经阅读了“编写udev规则”,但是我无法让udev规则正常工作。 首先,这是dmesg输出示例: [20906.985102] USB 3-2:使用uhci_hcd和地址6的新低速USB设备 [20907.166403] USB 3-2:从1个选项中选择了配置#1 [20907.192904]输入:MicrosoftNatural®人体工学键盘4000作为/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.0/input/input20 [20907.193100] Microsoft 0003:045E:00DB.000B:input,hidraw1:usb-0000:00:1a.0-2 / input0上的USB HID v1.11键盘[MicrosoftNatural®Ergonomic Keyboard 4000] [20907.217810]输入:MicrosoftNatural®人体工学键盘4000为/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1/input/input21 [20907.217979] Microsoft 0003:045E:00DB.000C:input,hidraw2:usb-0000:00:1a.0-2 / input1上的USB HID v1.11设备[MicrosoftNatural®Ergonomic Keyboard 4000] 我曾经udevadm info收集设备信息: > udevadm信息-a -p /devices/pci0000:00/0000:00:1a.0/usb3/3-2/2/3-2:1.1/input/input21 查看设备'/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1/input/input21': KERNEL ==“ input21” SUBSYSTEM ==“输入” 驾驶员==“” ATTR {phys} …
8 linux  usb  udev 

2
如何在Ubuntu Hardy或Jaunty上重新扫描和重新安装驱动器?
当我将USB驱动器连接到Ununtu Hardy和Jaunty系统时,系统会安装驱动器上找到的分区,并为每个已安装的分区打开Nautilus窗口。在Nautilus中,我可以卸载分区。 我需要的是一个命令或操作,它强制系统重新扫描可用的驱动器和分区,并自动挂载每个未安装的分区,包括那些我从Nautilus手动卸载的分区。 sudo /etc/init.d/udev restart 要么 ... reload 不这样做。 截至目前,我只需拔下USB驱动器,再次对其进行识别,这将强制扫描并安装在该驱动器上。但我想强行重新扫描并重新安装而不拔掉任何东西,最好不要让用户知道设备或驱动器名称。

1
将udev环境变量传递给systemd服务执行
我正在迁移绑定到块设备的更改操作并运行给定脚本的现有udev规则。 SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/sr0", ACTION=="change", RUN+="/usr/local/bin/script" 在此配置中,udev传递了与硬件设备关联的环境变量,例如 ID_CDROM_MEDIA-0 和 ID_FS_LABEL。我已经更新了udev规则以使用systemd在硬件更改上启动服务。 SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/sr0", ACTION=="change", TAG+="systemd", ENV{SYSTEMD_WANTS}=="drive-change.service" systemd服务文件: [Unit] Description=changes to dvd drive [Service] Type=oneshot ExecStart=/usr/local/bin/script [Install] WantedBy=multi-user.target 此时,服务在更改事件上运行,但由udev中的RUN命令传递的环境变量不会传递给服务的执行。 是否可以将环境从udev传递到systemd的执行环境,还是需要显式传递参数?
5 linux  udev  systemd 

1
Ubuntu系统在启动时下降到BusyBox提示符,然后是“udevd [94]:timeout:killing'/ sbin / blkid -o udev -p / dev / sda'”错误
我用Windows XP在上网本(Intel 1.6 GHz和RAM 1 GB)上安装了Ubuntu 11.10。一周前,Ubuntu停了下来。那天没有安装任何升级或任何软件。 当我尝试启动Ubuntu时,我得到的是这条消息: BusyBox v1.18.4 (Ubuntu 1:1.18.4-2ubuntu2) built-in shell (ash) Enter 'help' for a list of built-in commands. (Initramfs) 几秒钟后,我收到以下错误: (Initramfs) udevd [94]: timeout '/ sbin / blkid-o udev-p / dev / sda' udevd [94]: timeout: killing '/ sbin / blkid-o udev-p / dev / …

0
插入加密狗后,使用udev重新加载蓝牙服务
我试图在其中创建文件/etc/udev/rules.d/97-bluetooth-input.rules: KERNEL=="event*", SUBSYSTEM=="bluetooth", DEVPATH=="/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.0/bluetooth/hci0", ACTION=="add", RUN+="/usr/bin/systemctl restart bluetooth.service" 我也尝试省略DEVPATH,但似乎无济于事。 更改后,我会sudo udevadm control -R拔下加密狗并将其重新插入,但蓝牙服务没有重新启动。 随着udevadm monitor -u我看到下面当我插上加密狗: UDEV [456580.937864] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3 (usb) UDEV [456580.942751] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.0 (usb) UDEV [456580.943739] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.1 (usb) UDEV [456580.945729] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.2 (usb) UDEV [456580.947046] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.3 (usb) UDEV [456580.948077] bind /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.1 (usb) UDEV [456580.948187] add /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1.3/1-7.1.3:1.0/bluetooth/hci0 …
2 linux  usb  bluetooth  udev 

0
LXC:连接USB设备时运行命令
每当连接特定的USB设备时,如何在LXC系统容器中执行命令?通常,我会使用udev(参见 1 , 2 , 3 , 4 , 五 ),但据我所知,udev不能在容器内使用。 更具体地说,我有一个特权LXC系统容器在Ubuntu 16.04(Xenial)主机系统上运行Ubuntu 14.04(Trusty)。有问题的USB设备(Xilinx平台电缆USB II)需要加载固件(通过fxload)。 在容器的配置文件中,我有 lxc.cgroup.devices.allow = c 189:* rwm lxc.mount.entry = /dev/bus/usb dev/bus/usb none bind,optional,create=dir 这允许我从容器内手动加载固件,然后使用该设备。我希望在连接设备时自动加载固件。 作为一种解决方法,我目前在主机上使用udev来自动加载固件,并遵循以下规则: SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2lp -I /opt/Xilinx/firmware/xusb_xp2.hex -D $tempnode" 但是,我想从容器内实现这一点;理想情况下,不需要对主机系统进行任何修改(当然,容器配置除外)。
1 linux  usb  udev  lxc 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.