LINUX.ORG.RU

Как определить что за модем

 ,


0

1

Доброго времени суток. Есть 4 модема, при подключении к ПК необходимо определять, что за модем, к какому оператору сотовой связи он относиться.

Можно ли с помощью udev вытаскивать какие то уникальные значения устройства? Так как модем представляется как tty - что то я ничего там уникального не нашел. Если не с помощью udev, то может как то еще?

Например, вставляем в комп modem1, смотрим, например, hwaddr=111, видим, что в нашем файле соответствий, такому hwaddr соответствует оператор МТС и запускаем скрипт который переименовывает, с помощью правил udev, /dev/ttyUSB0 -> /dev/mts.


Изучите AT команды вашего модема и найдите ту, посредством которой можно получить информацию о SIM карте оператора сотовой связи, которая находится в модема. Ну а дальше обрабатывайте эту информацию скриптом и вызывайте необходимые действия.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Это все понятно. Модемы подключаются через USB-hub. Т.о. к ПК модемы могут подключиться как поочередно втыкая их в USB-hub или как сразу 4, воткнув в ПК USB-hub с модемами. В первом случае все понятно, udev скрипт будет отрабатывать поочередно на каждый втык модема. А вот, если в ПК воткнуть usb-hub с уже воткнутыми модемами в этот хаб, то как поведет себя удав? Так же поочередно отработает на каждый мопед? Ведь в системе эти мопеды все равно инициализируются с какой то задержкой, даже если ты их физически воткнул все одновременно.

unit4
() автор топика

Возникла еще одна проь\блема. Как запустить определенное правило udev.
Например:

  1. Правилом вида
    ACTION=="add",SUBSYSTEM=="tty",ATTRS{idProduct}=="1506", ATTRS{idVendor}=="12d1", RUN+="/bin/touch /tmp/1.sh"
    мы определяем на каком ttyUSB* у нас повисли модемы.
  2. Записываем их в файл modem.txt.
  3. Дергаем скрипт по определению IMEI или SIM IMSI.
  4. На основании полученных данных в п.3 лезем в файл соответствия compatible.txt и выбираем оператора сотовой связи.
  5. Переименовываем ttyUSB* полученные в п. 1 из файла modem.txt в operatorname полученный в п.4.

Затык возникает на п.5 так как вызвать конкретное правило udev я не нашел как. Возможно ли это сделать не через udev rules? Если да, то как?

unit4
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.