有没有办法知道哪个 USB 设备文件 (/dev/ttyUSB0) 与特定接口 (wwan0) 相关

有没有办法知道哪个 USB 设备文件 (/dev/ttyUSB0) 与特定接口 (wwan0) 相关

标题几乎说明了一切,但如果相关的话,这是我的场景:

我正在尝试自动将 USB 调制解调器在首次插入时联机。使用我的硬件和蜂窝服务,当 wwan0 接口首次连接时,它将具有 169.254.xx(未连接)地址。相应的调制解调器需要通过其设备文件接收“AT^NDISDUP=1,1”命令才能上线。我编写了一个 if-up 挂钩,我可以在其中访问新连接的接口名称,但我不知道如何将它们链接到其相应的设备文件。

如果这是不可能的,或者不是一个好的方法,我也愿意听取其他想法。非常感谢。

更新

根据 Kamil 的建议,我深入研究了 sysfs。我找到了各种与设备相关的条目 (/sys/devices/platform/.../.../ttyUSB0) 和与接口相关的条目 (/sys/class/net/wwan0),但我仍然无法找到使用其中一个条目获取另一个条目的方法。我使用 udevadm 从不同的条目中提取信息,但大多数时候我并不真正了解自己在看什么。

答案1

我正在使用 picocom v3 来实现此目的,使用以下脚本:

#!/usr/bin/env bash

for tty in $(ls /dev/ttyUSB*); do
    echo "Checking $tty"
    picocom -qrX -b 9600 $tty
    sleep 1
    result=$(echo "AT&F" | picocom -qrix 1000 $tty)
    if [ "$result" = "AT&F" ]; then
        echo "Found AT compatible modem at $tty"
    else
        echo "No AT compatible modem at $tty"
    fi
done

您可以/dev/ttyUSB*用适合您的调制解调器设备的任何设备进行替换,但这个非常通用并且可以工作。

相关内容