问题标签 [hotplugging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 检测 USB 鼠标。嵌入式 Linux 上的 Qt
我需要在 USB 鼠标与系统断开连接时隐藏光标,并在连接鼠标时显示。有什么想法可以做到吗?
linux - C ++检测USB串行设备插入/拔出
我需要检测 USB 串行设备何时在我的嵌入式系统上插入或拔出,并知道tty
与之相关联的内容。
我的系统运行在 2.6 Linux 内核上。
由于我没有对udev
规则的写入权限,现在我正试图从文件系统中获取这些信息,在/sys/bus/usb/devices
目录中寻找修改。但是,我在使用这种方法时遇到了一些问题。
我知道所Id BUS
连接的 USB 端口是什么(例如 1-1.3)。所以,我搜索相关的(在- 例如tty
中寻找目录)。这样我就知道我应该使用它来与我的设备进行通信。但是,有时,此设备 ( ) 不存在。/sys/bus/usb/devices/<Id BUS>:1.0/tty/
/sys/bus/usb/devices/1-1.3:1.0/tty/ttyACM0
/dev/ttyACM0
/dev/ttyACM0
有没有更好的方法来获取这些信息?
我什至想尝试从系统日志中获取这些信息,但我不知道这是否是个好主意。
编辑:
只是为了澄清一下,我的系统需要能够检测 USB 总线中的状态变化,即检测何时插入新设备(并将tty
名称链接到它)或拔出现有设备。
系统正在监控最多N
使用 USB HUB 插入的 USB/串行设备。在其正常执行期间,可以插入新设备,可以移除现有设备(或通过远程命令重新启动 - 超出此范围)。当一个设备重新启动时,它可能会收到tty
与之前使用的不同的(例如ttyACM0
-> ttyACM3
),因为内核指定它 atty
目前是免费的,这对我来说是一个大问题。
qt - 为什么重新插入 USB 触摸设备后 Qt 无法捕获触摸事件?
祝你有美好的一天。
我对触摸设备的热插拔有疑问。
我将环境变量设置如下。导出 QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/ts_uinput:rotate=0
“/dev/input/ts_uinput”由 ts 库的应用程序“ts_uinput”创建。
在我重新插入 USB 触摸设备之前,触摸功能可以正常工作。如果我重新插入 USB 触摸设备,触摸功能不起作用。
重新插入 USB 触摸设备后,仍然会创建“/dev/input/ts_uinput”。
我还监控“/dev/input/ts_uinput”中的数据,它也有数据报告。
为什么重新插入 USB 触摸设备后 Qt 没有得到触摸事件?
pci-e - 是否可以在不重新启动或热插拔的情况下重新分配 PCIe BAR 内存(与 Windows-7 驱动程序相关)
我的电脑有 Win-7 Embedded,我正在尝试连接到 PCIe 开关 BAR。
起初,当 Windows 检测到 PCIe 开关时,它未配置为使用请求的 BAR。在我的程序更改开关设置后,需要重新启动 Windows 才能检测和使用 BAR,如果在 BIOS 中启用了热插拔功能,则可以仅重新扫描设备管理器并且 Windows 检测到 BAR 而没有任何重新开始。问题是我不想使用 Hot-Plug,因为它会导致各种问题。
是否可以在不重新启动且不使用热插拔的情况下检测 BAR?
我还注意到windows会自动分配BAR内存地址,是否可以手动分配BAR内存地址?
谢谢
windows - windows 2016 server 支持热添加cpu吗?
今天用libvirt创建了一个windows 2016 server操作系统的KVM vm,它的内存可以用“virsh attachdevice”命令热插拔,但是vcpu不能用“virsh setvcpus”热插拔。但是在windows 2008R2和windows 2012R2的虚拟机上工作,难道windows 2016 server支持热添加cpu?
linux - 如何触发 udev 规则?
我有一个条形码扫描仪,我想在连接它时运行一个脚本。用命令
我得到有关设备的信息。这是一段摘录:
现在我在/etc/udev/rules/下新建了一个文件:
不幸的是, autorun.sh 脚本没有运行。有人可以给我一个提示,为什么这没有发生?
自动运行脚本有足够的权限。
linux - Linux cpu hotplug 未按预期工作
我正在基于 Android 8.1 内核 4.4 sys 的普通 4 核 ARM 上测试 linux cpu 热插拔。问题似乎是在再次使 CPU 联机后,任务集和内核拒绝移动和/或调度内核上的任何任务。例如做:
失败...我不知道为什么任务集拒绝将任何线程迁移到热插拔内核。我打算通过强制从内核 1-3 关闭本地定时器中断 (LOC) 来使用它来改进内核 NO_HZ 无滴答操作。内核 NO_HZ 文档提出了这种可能性。
我还在 Linux qemu 上的上游内核 4.18.4 上运行它。它也是存在的。请大家帮忙,谢谢~
crash - PCIe 问题——为什么 pciehp 给出矛盾的日志信息
我正在我的 NVMe SSD 上运行 fio 作业,然后对其进行热插拔。该平台是可热插拔的,系统是 Centos 7.0。在我拔出后几秒钟,系统遇到崩溃并给出以下打印信息:
=================
[1026.468414] {1}[硬件错误]:来自 APEI 通用硬件错误源的硬件错误:1
[1026.468422] pciehp 0000:5d:02.0:pcie04: 卡存在于插槽 (6-1)
[1026.468432] pciehp 0000:5d:02.0:pcie04: slot(6-1): Link Down 事件
[1026.468451] pciehp 0000:5d:02.0:pcie04: 插槽 (6-1) 上排队的 Link Down 事件:当前正在开机
[1026.468457] pciehp 0000:5d:02.0:pcie04: 已在插槽 (7-1) 上启用
[1026.468705] {1}[硬件错误]:事件严重性:致命
[1026.468744] {1}[硬件错误]:错误 0,类型:致命
[1026.468782] {1}[硬件错误]:section_type:PCIe 错误
[1026.468825]{1}[硬件错误]:port_type:0,PCIe端点
[1026.468867] {1}[硬件错误]:版本:3.0
[1026.468915] {1}[硬件错误]:命令:0x0102,状态:0x4010
[1026.468961] {1}[硬件错误]:device_id:0000:00:00.0
[1026.469901] {1}[硬件错误]:插槽:0
[1026.469032] {1}[硬件错误]:secondary_bus:0x00
[1026.469070] {1}[硬件错误]:vendor_id:0x1ded,device_id:0x3010
[1026.469117] {1}[硬件错误]:class_code:008001
[1026.469155] 内核恐慌 - 不同步:致命的硬件错误!
=================
系统崩溃的可能根本原因是“卡出现”和“链接断开”这对矛盾的事件对,弄乱了系统逻辑。所以让我感到困惑的是,pciehp 同时报告“卡存在”和“链接断开”。根据我的经验,“卡存在”通常伴随“链接”,“链接关闭”通常伴随“卡不存在”。
谁能给我一些关于这种奇怪情况如何发生的线索?或者 PCIe 寄存器中的哪个位触发“卡存在”事件和“链接断开”事件?
linux - udev 规则不会触发 GUI 应用程序
我可以在 99-monitor-hotplug.rules 中获得这个 udev 规则来触发:
但我似乎无法让它在 monitor-hotplug.sh 脚本中触发 OpenCV GUI 应用程序。
我从根本上理解 udev 规则以 root 身份运行,但无论我尝试什么语法,我都无法让它在用户级别正确运行以运行应用程序(运行应用程序的实际脚本工作正常)。
我试过 RUN 这种格式:
带脚本:
另一种尝试:
将 99-monitor-hotplug.rules 添加到当前语法中:
然后在实际脚本中:
这些都不起作用,关于如何使它起作用的任何想法?
谢谢
windows - Windows下libusb如何通过hotplug检测USB设备?
为了进行研究,我研究了 Libusb 以了解 hotluging 是如何完成的。对于 Linux,我在libusb\os\linux_udev.c中找到了相应的源代码,其中启动了一个在 udev 上进行 poll() 的线程。但是,在 Libusb 的源代码中花费了数小时后,我无法弄清楚 Windows 中的热插拔是如何完成的。
在libusb\os\ windows_winusb.c 中,显然 winusb 驱动程序用于获取设备列表(static int winusb_get_device_list(..)),但这并不是热插拔的事情。有人可以指出我正确的方向吗?
我在我的项目中使用 usb4java(一个 libusb Java 包装器)并且可以很好地检测到附加/分离事件,但我想知道它是如何工作的。