标签: usb-device

如何安全地将 U 盘/设备插入 Linux 计算机?

将 U 盘或设备插入计算机时,始终存在设备是恶意的风险,将充当 HID 并可能对计算机造成一些损害。我怎样才能防止这个问题?在特定 USB 端口上禁用 HID 是否足够?我怎么做?

security usb hid usb-device

26
推荐指数
2
解决办法
3182
查看次数

如何通过网络为 /dev/ttyUSB0 设置“USB 代理”?

我有一个被测设备 (DUT),我使用Power Analyzer Datalogger使用来自/dev/ttyUSB0.

问题是 DUT 现在远离我用来收集数据的工作站,但在同一个网络中,我需要使用第二台 PC,它通过 USB 直接连接到电源分析仪,作为一种 USB 代理和 ssh在“代理”机器的 USB 的测量机器上创建一种符号链接。

在此处输入图片说明

鉴于上述图如何可以在1PC访问/dev/ttyUSB0的2PC直接连接,在一种方式中的程序读出从1流ST PC不会注意到的差异?

streams usb-device ttyusb

21
推荐指数
2
解决办法
2万
查看次数

一致的 Linux 设备枚举

在我们的 Linux 机器中,我们有 USB -> 串行设备,它始终标识为 /dev/ttyACM0. 所以我写了一个应用程序,直到昨天,一切正常。但是突然(是的,在远程演示期间......)设备停止工作。经过快速研究,我发现连接更改为/dev/ttyACM1. 这有点不合时宜,但现在我遇到了一个问题 - 如何明确识别我的设备?例如,尽管 UUID/dev/sd**已更改,但可以使用 UUID 初始化存储驱动器。有没有办法为串行设备做到这一点?

现在我使用了一个愚蠢的解决方法:

for(int i = 0; i < 10; i ++)
{
    m_port = std::string("/dev/ttyACM") + (char)('0' + i);
    m_fd = open(m_port.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
}
Run Code Online (Sandbox Code Playgroud)

我们使用的设备的链接

linux usb-device

14
推荐指数
1
解决办法
2406
查看次数

提取蓝牙MAC地址:hcitool dev

我必须从命令中hcitool dev 提取蓝牙加密狗的 MAC 地址。

的输出hcitool dev是:

Devices:
hci0    xx:xx:xx:xx:xx:xx
Run Code Online (Sandbox Code Playgroud)

我将此输出写入文件并尝试使用以下内容获取信息awk

hcitool dev > /home/pi/mario/BT.txt
awk ' { print $2 } ' /home/pi/mario/BT.txt
Run Code Online (Sandbox Code Playgroud)

输出还包含第一行,它是一个空单元格:

xx:xx:xx:xx:xx:xx

我怎样才能推迟第一个细胞?

hardware text-processing bluetooth mac-address usb-device

10
推荐指数
1
解决办法
2万
查看次数

如何重置在 Linux 笔记本电脑上停止工作的蓝牙?(从待机状态恢复后)

语境:

  • Linux 内核 5.10.x(还有 5.18.x)
  • Thinkpad X1c (gen7) 笔记本电脑

问题:

有时,当我将系统设置为睡眠状态(挂起到 RAM)然后恢复时,将不再找到蓝牙适配器。如果我重新启动,它会再次工作。

当它起作用时,

这是(内部)蓝牙适配器,如下所示lsusb

# lsusb | grep 8087 
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Run Code Online (Sandbox Code Playgroud)

我能够扫描、连接和使用我的蓝牙设备。

当它不起作用时:

  • 通常在计算机电源暂停/恢复后(不是系统地),
  • lsusb不再显示上述设备
  • 我无法扫描、连接甚至查看我的蓝牙适配器。

kern.log说:

usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: attempt power cycle
usb 1-10: new low-speed USB device number 71 using …
Run Code Online (Sandbox Code Playgroud)

linux bluetooth usb-device

10
推荐指数
1
解决办法
1万
查看次数

如何在逻辑上弹出/断开连接并重新连接 USB 设备(加密狗)?

我们购买了一个商业应用程序,只有当他们的加密狗 USB 连接到服务器时才能工作。然而,有时应用程序无法识别加密狗,所以它不起作用,但如果有人从 USB 端口物理弹出加密狗并再次连接它,它将识别并正常工作。

服务器上加载了 43 个模块,连接/弹出加密狗不会增加/减少模块数量。

另外我在/dev 之前/之后有usbmon0usbmon1usbmon2文件弹出/附加加密狗和/dev 中的文件数之前不会改变/弹出后/附加适配器。

弹出加密狗后journalctl -f命令:

Jan 19 18:10:28 iwr kernel: usb 2-2.1: USB disconnect, device number 5
Run Code Online (Sandbox Code Playgroud)

连接加密狗后journalctl -f命令:

Jan 19 18:11:11 iwr kernel: usb 2-2.1: new full-speed USB device number 6 using uhci_hcd
Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device found, idVendor=0403, idProduct=c580
Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device strings: …
Run Code Online (Sandbox Code Playgroud)

linux usb usb-device

9
推荐指数
1
解决办法
3412
查看次数

每个 USB 设备都有供应商 ID 和产品 ID 吗?

我有一个随机扬声器,我想为其开发一个驱动程序,以便我可以向dev文件系统报告统计数据、电池等。但是,我很难找到扬声器的供应商和设备 ID 以便将其与驱动程序正确关联。

我什至不知道制造商是谁,我的 Linux 机器没有检测到它(lsusb和其他实用程序),T&G 有一个扬声器,看起来和我的一模一样,但我的有一个不同的徽标(橙色花),而不是T&G 就是其中之一。

  • 每个设备都有与其关联的供应商和产品 ID 吗?

  • 如果是这样,如果您不知道您的设备并且您的机器无法识别它,您如何找到它?

  • 是否甚至可以通过扬声器的 USB 端口向我的机器报告电池和其他统计数据,我相信该端口应该与 USB 卡一起使用?

linux drivers linux-kernel usb-device

9
推荐指数
2
解决办法
3743
查看次数

从 linux 设备安全移除 USB

我正在使用带有运行 linux 的嵌入式设备的 USB。问题是,在某些情况下,当我通过给出umount /media/sda1卸载成功的命令来卸载USB 时,但是当我继续移除 USB 时,我收到一条错误消息,提示无法将 fs 标记为脏,当我将其重新插入时,出现错误 Volume was not properly unmounted. Some data may be corrupt. Please run fsck.在 linux 终端上还有其他命令可以用来安全弹出 USB 吗?以便在我拔下 USB 设备之前关闭它。

更新:我尝试使用同步,但错误仍然存​​在,如下所示:

root@(none):~# sync
root@(none):~# umount /media/sda1
root@(none):~# ls /media/sda1
root@(none):~# [  296.021241] usb 2-1: USB disconnect, device number 3
[  296.026879] sd 1:0:0:0: [sda] Synchronizing SCSI cache
[  296.031175] sd 1:0:0:0: [sda]
[  296.033743] Result: hostbyte=0x01 driverbyte=0x00
[  296.048283] FAT-fs (sda1): unable to read boot sector to mark …
Run Code Online (Sandbox Code Playgroud)

linux usb usb-device

8
推荐指数
1
解决办法
2万
查看次数

如何设置udev设备连接触发的xinput属性?

我试图xinput在连接 USB 输入设备时设置其属性。我见过需要脚本在后台运行并轮询 USB 设备的解决方案,但我想找到一种触发方法,而不是涉及用户空间轮询的方法。

我尝试创建一个在设备连接上运行脚本的规则,但触发规则时udev,连接的设备似乎尚不可见。这似乎是事件的恒定顺序,而不是竞争条件,因为向脚本添加命令也会延迟设备在 中列出。xinputudev addsleepxinput list

有没有可靠的方法来设置xinput设备连接时的属性?

udev xinput usb-device

8
推荐指数
1
解决办法
2842
查看次数

如何以编程方式确定根分区的设备名称/基本名称?

参考:下面的问题 驱动器名称?“/dev/sda”的“sda”部分的正确术语是什么?

鉴于:

  1. 我有一个系统(在本例中是 Raspberry Pi,但这可能与任何 'nix 系统相关。)
  2. 它正在运行一个 Linux 版本,并且可以假设所有正常的 Linux 命令都可以工作。
  3. 启动设备可以是 SD 卡或 USB 连接存储设备。
  4. 如果从连接的存储设备启动,则设备“基本名称”为 sd(x)
  5. 如果从 SD 卡启动,设备“basename”将变为类似“mm(xxxx)”

我想要做什么:我希望能够以编程方式(如果可能的话,在 shell 脚本中)启动它的设备类型,并根据启动设备更改某些特征。

简单的例子:

Boot device = "mmxxxxx"
   Print "Booted from SD card!"
Boot device = "sda"
   Print "Booted from Attached Storage!"
Run Code Online (Sandbox Code Playgroud)

我想要做的是提取(为了需要一个更好的术语)根分区派生的主要设备类型(即 sd”、“mm”或其他任何内容,具体取决于作为根安装的设备分割。)

我怀疑我可以以某种方式列出安装在 root 上的设备,而不列出 中的所有内容mount,然后提取最后一个斜杠后的前两个字母。。。

linux block-device root-filesystem usb-device

8
推荐指数
2
解决办法
1159
查看次数