Tag: udev

仅在选定的USB端口上使用大容量存储设备 – 如何使用?

在给定的USB端口上,我只想接受USB大容量存储function,而不是其他任何function。 没有HID设备,没有蓝牙适配器,没有RS232转换器,什么都没有。 有没有办法做到这一点,例如使用udev? 我知道我可以编写一个自定义udev规则来包含给定设备或给定端口的驱动程序,但是我可以以某种方式排除所有其他驱动程序吗? 我试图只允许一类设备,即USB Mass Storage; 这个类中有无数不同的设备型号,我不知道哪个会连接到端口(客户端会自带,我没办法影响这个)。 重新编程的USB固件的威胁只会在可预见的未来变得更糟。 我试图为这个用例缓解它们:我有一台带有内部连接USB外围设备的计算机(网卡,专用外围设备,键盘)和一个面向公众的USB端口,它只能用于文件传输。 所以,我不能完全将其他USB模块列入黑名单; 但是我想“清理”那个特定的端口,这样插入不同的设备类型就什么也不做了。 shell是物理锁定的,因此只能从外部访问这一个特定的USB端口,并且插入shell或拼接到键盘电缆应该足够可疑以触发物理安全响应; 此外,我不认为大多数用户会主动恶意,但我预计重新闪存的USB驱动器的不知情载体的数量会增加(就像以前的软盘引导扇区感染一样)。 就安全性而言,用户是否带有恶意意图的“武器化”USB磁盘,或者只是不知道它被“感染”并不重要。 我知道完美的安全性在这里是不可行的,并允许用户以任何方式与系统交互是有风险的 – 但是,我需要平衡安全性与可用性:计算机需要客户端可用。 而且,我并不是想用这个来防御目标明确的攻击者; 相反,我正在使用它作为缓解技术之一,因此系统不是低调的结果。

关键代码如何映射到适当的操作?

在弄清楚如何使用udev更改扫描代码到密钥代码的映射之后,看到这个问题 ,我想知道这些密钥代码(或者如果你愿意的话)将如何映射到适当的操作。 因此,例如,如果按键盘上的音量调高 ,则会发送扫描代码,然后将其转换为volumeup键代码。 但是这个密钥代码是如何被截获的,卷被调高了,并显示了相应的通知? 我的猜测是必须在某个地方调用脚本,所以我想知道这些脚本在哪里。 编辑:我提到的关键代码不要与关键代码xev返回混淆,但我也对那些感兴趣;)

如何创建一个udev规则来禁用其中一个Android设备?

我有一部HTC Android手机。 每次我将它连接到计算机时,我都会收到一条消息: Android Phone: Could not open MTP device “[usb:002,003]” 数字可能不同。 但手机连接正确。 usb-devices输出 T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 28 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0bb4 ProdID=0f91 Rev=02.33 S: Manufacturer=HTC S: Product=Android Phone S: SerialNumber=FA41BWB00560 C: #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=500mA I: If#= […]

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

我有USB刻度,USB HID。 目前,当插入时,权限仅允许超级用户访问它。 如何配置udev让任何人访问此设备? 我有供应商和产品ID,但我想基于HID类型匹配它。 现在,我很难找到适用于此的任何现有规则(我在/lib/udev/rules.d和/etc/udev/rules.d等中使用了“hidraw”)。

如何在插入USB闪存驱动器时执行C ++程序

我有一个访问USB笔式驱动器/闪存驱动器的C ++程序。 它适用于当前插入的闪存驱动器。 正常的C ++程序在运行之前不会执行。 但是我想让程序在插入闪存驱动器时自动运行。 我怎样才能做到这一点?

如何更改单个设备的键盘映射(Logitech演示者)?

我的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) 基本上,我想使用这个演示者远程控制Banshee,所以我想重新映射到B Prior , N ,依此类推。 如何仅更改此设备的键映射(因为我当然不希望全局重新映射这些键代码)?

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

我尝试使用本教程在我的Microsoft Natural Ergonomic Keyboard 4000上进行滚动切换。但是我面临以下错误: sudo: /lib/udev/keymap: command not found 我有udev版本204-5ubuntu20.2 (在Trusty中找到的版本) 我注意到这个版本不包括keymap工具。 但我注意到更大的udev版本( 例如Debian可用 )包含这个工具。 有人可以为我解释这个差异吗? =)在这种情况下我应该怎么做 – 从Debian repo安装包?

连接监视器时运行脚本

当我将外接显示器连接到笔记本电脑时,我正在尝试运行位于usr/local/bin/的脚本。 我试图添加一个新的udev规则,但这不起作用。 我在/etc/udev/rules.d创建了一个名为vga-monitor-connect.rules的新文件。 该文件的内容是 SUBSYSTEM==”drm”, ACTION==”change”, RUN+=”/usr/local/bin/panel-fix” 我接受了这个答案 在线搜索后,我也尝试了以下规则 KERNEL==”card0″, SUBSYSTEM==”drm”, ENV{DISPLAY}=”:0″, ENV{XAUTHORITY}=”/home/rumesh/.Xauthority”, RUN+=”/usr/local/bin/panel-fix” 然而,这也没有用。 我已经手动运行脚本,我可以确认它是有效的,所以它不是我的脚本的问题。 我也想明确表示我对udev了解不多,所以我使用的规则可能是错的。 如果有人知道我的问题的正确规则,请留下答案。 我的显卡是英特尔GM965集成芯片组

自动挂载在16.04

我需要内部和外部存储的自动挂载。 在启动和连接时。 现在我必须点击文件管理器才能访问,这对2016年来说很奇怪! 我知道只有udev可以参与其中。 但是无法找到现代ubuntu的方法,所有教程都过时了(使用HAL等)。 我也不想用fstab。 PS这应该没有像KDE,Unity,Gnome这样的“头”。 只是从运行级别3等等。 最低要求。 (没有automount守护进程)。

如何区分相同的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 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″ […]