根据维基百科,USB:
定义总线中使用的电缆、连接器和通信协议,用于计算机和电子设备之间的连接、通信和供电
但是真的有“USB通信协议”吗?我的理解是:
/dev/theDevice/dev/theDevice驱动程序处理底层设备/硬件的低级 IO对我来说,这个流程中没有任何地方出现“USB 通信协议”。如果我的理解是正确的,USB 只是 PC 和设备之间的电缆和电气连接。
我在这里错了吗?USB 是否真的实现了某种强调上述流程的低级协议?如果是这样,它是什么以及它在 30,000 英尺的视野中如何工作?
我想知道是否有任何 Linux 等效于 Windows 设备管理器或 WindowsDevCon实用程序(具有硬件管理功能的命令行实用程序)。
驱动程序在 Linux 中的工作方式是否相同?
我尝试将多个支持 USB 3.0 的设备连接到我的 ubuntu 12.04 机器。但发现一次只能看到不超过 9 个设备连接。我尝试在 监视内核日志/var/log/kern.log,我发现在连接第 10 个设备时,出现以下错误:
此设备无法找到足够的可用资源。(代码 12)
我的 USB 主机控制器是:
英特尔公司 8 系列/C220 系列芯片组家族 USB xHCI(修订版 05)
一些论坛建议禁用 USB 3.0 支持应该强制设备在 USB 2.0 模式下工作,并且应该可以解决问题。这是真的。从 BIOS 禁用 xHCI 支持对我来说很有效。
我认为这应该是较旧的 Ubuntu 12.04 设置(或 USB 驱动程序可能是)上的错误。因此,我将系统升级到 Ubuntu 16。但这里也存在同样的问题。如果我想通过 USB 3.0 使用我的设备怎么办?如果某些主板上没有从 BIOS 禁用 xHCI 支持的选项怎么办?
我使用的是 FC 14,但这可能是一个相当普遍的 Linux 问题。
我希望能够在 Linux 终端驱动程序中绑定一个键,该键将导致运行的应用程序发出除SIGINT或之外的信号。SIGQUIT我不想选择其中任何一个。如果它为您敲响了警钟,请按照旧CTRL/T功能的思路进行思考,只是信号由应用程序而不是操作系统捕获和处理。
由于这是用于长期运行活动的状态报告,SIGUSR1因此似乎很合适。但是,如果无法从终端键盘专门提出该问题,我会采取我能得到的。我不想尝试不可能的事情并抓住SIGKILLB-),但我希望能够发出除SIGQUIT终端SIGINT键盘之外的信号。
设想:
CTRL/whatzit以发出信号我可以在 VMS/OpenVMS 上毫无问题地完成此操作,并且想到在 Linux 上更困难,这有点让我感到震惊。
我是一名程序员,我研究了软件、硬件和假突袭,但我无法理解假突袭如何与操作系统 (Linux) 通信?我的意思是这涉及哪个软件层或驱动程序?
linux ×4
fedora ×1
linux-kernel ×1
raid ×1
signal ×1
storage ×1
ubuntu-12.04 ×1
ubuntu-16.04 ×1
usb ×1
usb-3 ×1