问题标签 [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.

0 投票
2 回答
2675 浏览

usb - stm32 USB-CDC 硬件复位后

我已经用 USB-CDC 协议对我的 stm32f103 blue-pill 板进行了编程

我可以在这个端口上读写

但是在执行硬件重置后,COM端口不可用我必须拔下USB连接并重新插入,然后出现COM端口。

有可能避免这种情况吗?

-谢谢

0 投票
1 回答
2369 浏览

usb - 如何在 Qemu 4.2.0 上热插拔 USB 设备?

我有Qemu 4.2.0并且Debian Testing BullseyeKernel 5.4.0需要热插拔 USB 设备。

目前我将我的 USB 设备与

qemu... -usb -device usb-host,hostbus=x,hostaddr=y

但是当我物理移除设备时,我无法再从 VM (Win7) 中检测到它。

那么,我应该怎么做才能向虚拟机发送插入/拔出 USB 信号?

0 投票
1 回答
456 浏览

python - 在 Windows 上使用 python 进行 USB 热插拔回调

是否可以编写一个 python 脚本,以便在 Windows 上添加或删除 USB 设备时调用一个函数?

libusb(以及相应的 python 模块,例如libusb1)似乎是最流行的解决方案,但它缺乏 Windows 中的热插拔回调注册支持。自 2015 年以来,已为此提出功能请求,但仍未实施。

我已经看到一些黑客每隔一段时间查询 Windows 的 USB 设备,将当前设备列表与之前的设备列表进行比较,并将其用作替代方案。由于我的应用程序的性质,这种 hack 将是一个巨大的安全风险,并且不是一个有效的解决方案。我需要对 USB 热插拔事件进行实际回调注册。

虽然不太理想,但我愿意用 C 或 C++ 编写一些东西,然后在必要时编写一个与该代码的 python 绑定。

在 Windows 上连接或断开 USB 设备时是否可以调用 python 函数?

0 投票
0 回答
1147 浏览

linux - linux-pcie 预分配 BAR 空间?

我有一个希望启用热插拔的设备。它的 BAR 大于 NVMe 标准。我的 BIOS (Dell R640) 没有预分配 BAR 空间的选项。

当我尝试从一个空系统开始并添加卡时,我收到以下错误:

我的 /etc/default/grub 如下:

我的 grub.cfg 包含以下添加内容。

除非我删除根复合体,否则我无法让这些中的任何一个为 hotplug 工作:

这会根据需要启用所有 BAR,但会关闭整个根联合体及其上的所有设备。简单地重新扫描没有帮助。

我怎样才能告诉内核预分配所以我不需要删除整个根端口?我知道分配的 BDF 每次都会完全相同(并且它们将位于相同的物理端口、相同的 BAR 大小等)。我觉得这必须是一个选择。

0 投票
0 回答
27 浏览

linux - USB声卡检测到能够播放音频的时间间隔

我正在做一个项目,从将要播放声音的计算机上任意拔出和插入 USB 声卡。插入卡后,我的软件应该尽快播放声音。

为了检测正在连接的 USB,我使用了 libusbLIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVEDLIBUSB_HOTPLUG_EVENT_DEVICE_LEFT事件,它完美地工作。一旦设备连接到 USB 端口,就会触发该事件。去掉的时候也一样。

我面临的问题是在 libusb 检测到设备的那一刻与我真正开始使用该设备播放声音的那一刻之间存在时间间隔。我正在使用miniaudio播放正弦波,但使用 Qt Multimedia 的问题是相同的,所以我猜它与后端(ALSA)有关。

在 libusb 检测到设备后,我必须明确等待大约 5/6 秒才能使用 miniaudio 安全地打开它,但我宁愿没有那个神奇的数字。

有没有其他方法可以知道设备何时准备就绪?我试过检查udev,但它与libusb同时被激活。

0 投票
0 回答
306 浏览

embedded-linux - 嵌入式 Linux 上的热插拔以太网上没有 IP 地址

我在嵌入式 Linux(版本 3.6.0-rc5)中遇到热插拔以太网问题。如果在启动过程中连接了网络电缆,则一切正常。但是如果我在启动后连接电缆,我不会得到 IP 地址。

我的 /etc/interfaces 如下所示:

我的启动脚本包含以下命令:

如果以太网电缆在启动时连接,我会在调用“ifup eth0”后得到这个:

如果以太网电缆在启动时没有连接,我在调用“ifup eth0”后得到这个:

如果我然后连接以太网电缆,我会得到:

但我没有得到 IP 地址。

因此,Linux 似乎知道电缆已连接,但它不会自动请求 IP 地址。
注意:如果我在启动过程中不调用 ifup,那么当我连接以太网电缆时不会发生任何事情。

连接电缆后,我可以通过以下方式获取 IP 地址:

我是否必须告诉 Linux 寻找地址(例如 ifdown/ifup)?
如果是这样:我该怎么做?

0 投票
1 回答
73 浏览

java - jSerialComm:动态检测可用串口(热插拔设备)

我创建了一个 Java GUI,它在下拉菜单中列出了所有串行端口,用户从中选择正确的端口并单击连接。然后建立与 Arduino 的连接,用户可以执行一些操作。我使用 Fazecast JSerialComm 获得可用端口:

我抓住端口并将结果放入下拉列表中。这可以完美地工作,但只有在启动我的 Java GUI 之前将 Arduino 插入 Mac 时。有没有办法在 Java 中检测热插拔设备?我已经考虑过定期(大约每秒)获取 com 端口,但对我来说,这似乎是一个非常优雅的解决方案。