Есть ли способ узнать, какой файл USB-устройства (/dev/ttyUSB0) связан с определенным интерфейсом (wwan0)?

Есть ли способ узнать, какой файл USB-устройства (/dev/ttyUSB0) связан с определенным интерфейсом (wwan0)?

Название, в общем-то, говорит само за себя, но вот мой сценарий на случай, если это имеет значение:

Я пытаюсь автоматизировать включение USB-модема в сеть при его первом подключении. С моим оборудованием и сотовой связью при первом подключении интерфейса wwan0 у него будет адрес 169.254.xx (не подключен). Соответствующий модем должен получить команду "AT^NDISDUP=1,1" через свой файл устройства, прежде чем он будет запущен. Я написал хук if-up, где у меня есть доступ к именам интерфейсов новых подключений, но я не знаю, как связать их с соответствующими файлами устройств.

Я также открыт для других идей, если это невозможно или просто не лучший способ что-то сделать. Большое спасибо.

ОБНОВЛЯТЬ

По совету Камиля я покопался в 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*его на тот, который подходит к вашему модему, но этот вариант довольно универсален и должен подойти.

Связанный контент