我有一台内置扫描仪的 Brother DCP7065DN 打印机。扫描仪运行良好,所以软件不是问题。但是我该如何将扫描仪添加到系统设置的输入设备部分?也许这只是一个美学问题。输入设备列表包括键盘、鼠标、游戏控制器、图形输入板和触摸板。似乎扫描仪也应该在列表中,虽然我不知道系统设置的该部分可能包括什么,除了已安装的扫描仪列表——通常只有一个。
答案1
简短的回答是“你可能不应该尝试这样做”。继续阅读简短的解释原因。
通过通读来确定系统设置的“输入设备”部分,udev
以确定已配置为使用的设备。为了被视为输入设备,硬件驱动程序必须在其udev
属性中包含以下行:
ID_INPUT=1
根据设备提供的输入类型,将有其他属性进一步定义操作系统应如何与硬件交互。以下是当前有效输入类型的列表:
ID_INPUT
ID_INPUT_MOUSE
ID_INPUT_TABLET
ID_INPUT_TOUCHSCREEN
ID_INPUT_JOYSTICK
ID_INPUT_KEY
ID_INPUT_KEYBOARD
一旦设置了基本属性,还会根据内核、制造商或两者提供的驱动程序与设备关联其他属性。联想 ThinkPad 键盘的属性示例可能如下所示:
P: /devices/platform/i8042/serio0/input/input4/event4
E: DEVNAME=/dev/input/event4
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: XKBMODEL=pc109
E: XKBLAYOUT=jp
E: XKBVARIANT=nodeadkeys
E: x11_driver=evdev
笔记:这是从我的联想 ThinkPad Carbon X1 拍摄的,它有日语键盘。您的配置可能会有所不同。
这三个ID_INPUT
标志报告该设备用于输入、带有按键和键盘(与电子钢琴相对)。以X
- 为前缀的标志为 Xorg 提供了更多详细信息,说明如何在输入到达缓冲区时理解输入。
为了让您的扫描仪出现在“输入设备”部分,您需要配置其udev
规则以显示为鼠标、平板电脑、触摸屏、游戏控制器、按键设备或键盘。扫描仪通常不提供任何这些东西供计算机监控或交互。更困难的是,即使您要拼凑自定义规则udev
,属性窗口的 UI 也会完全错误,因为系统无法清楚地了解实际存在哪些输入选项。
换句话说,您需要从头编写自定义驱动程序来模拟各种输入并将它们视为扫描仪属性。这并非不可能完成的任务,但也不是一个周末就能完成的任务。
所以,回到答案的第一句话,你可能不应该尝试这样做