Autodetect modem in Linux?

1

Existe uma maneira de autodetectar dispositivos de modem no Linux e então ligá-los de forma simbólica a /dev/modem usando uma regra do udev?

Atualmente, escrevi um programa que investiga cada porta serial, enviando AT e aguardando OK . Eu tenho um script udev que executa isso para cada dispositivo ttyS e ttyUSB. No entanto, agora fui informado de que há outros dispositivos, como pontes de diagnóstico OBD-II, que também falam com comandos AT.

    
por David Pfeffer 01.02.2012 / 13:23

2 respostas

2

Você pode jogar um pouco com cts , rts ou outras linhas de status serial e verificar se o modem responde a diminuir / aumentar esse sinal correspondentemente. Mas o seu modem pode estar configurado para ignorar essas linhas, ou pode haver outros dispositivos que também reajam a essas mudanças.

Acho que o psusi obteve a resposta correta.

Eu lembro que depurei hylafax para ter a idéia de como derivou o tipo de modem. Basicamente, ele fez o mesmo que você fez - enviar comandos AT e verificar a resposta "típica".

    
por 01.02.2012 / 22:18
0

Detecta as propriedades de cada porta serial. Veja as cadeias de caracteres de fornecedores e modelos. Por exemplo,

# udevadm info --query="property" --name=/dev/ttyUSB0**

UDEV_LOG=3
DEVPATH=/devices/platform/orion-ehci.0/usb1/1-1/1-1:1.0/ttyUSB0 /tty/ttyUSB0
MAJOR=188
MINOR=0
DEVNAME=/dev/ttyUSB0
SUBSYSTEM=tty
ID_PORT=0
ID_PATH=platform-orion-ehci.0-usb-0:1:1.0
ID_VENDOR=FTDI
ID_VENDOR_ENC=FTDI
ID_VENDOR_ID=0403
ID_MODEL=FT232R_USB_UART
ID_MODEL_ENC=FT232R\x20USB\x20UART
ID_MODEL_ID=6001
ID_REVISION=0600
ID_SERIAL=FTDI_FT232R_USB_UART_A40135O1
ID_SERIAL_SHORT=A40135O1
ID_TYPE=generic
ID_BUS=usb
ID_USB_INTERFACES=:ffffff:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=ftdi_sio
ID_IFACE=00
ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd
ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC
DEVLINKS=/dev/char/188:0 /dev/serial/by-path/platform-orion-ehci.0-usb-0:1:1.0-port0 /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A40135O1-if00-port0
    
por 19.07.2012 / 03:44