Eu tenho uma situação a seguir.
Eu tenho dois modems USB (um modem Huwawei LTE, um modem ZTE 3G) com dois cartões SIM diferentes de dois provedores diferentes (laranja e reprodução para ser específico).
Usando o Network Manager, quero criar duas conexões e vincular cada conexão a um dispositivo específico. No entanto, essas conexões parecem usar apenas um modem (listado como / dev / cdc-wdm0) que está ligado ao dispositivo ZTE se os dois estiverem conectados ao mesmo tempo. Eu também tenho dois dispositivos que provavelmente são links simbólicos para alguns dispositivos / dev / ttyUSB - / dev / gsmmodem e / dev / gsmmodem2.
O que eu gostaria de alcançar é a seguinte situação:
Conexão A - modem Huwawei LTE, provedor Orange, nomeie orange_primary, executando-o executando nmcli con up orange_primary. Se falhar, a chamada nmcli falhará.
Conexão B - modem ZTE 3G, provedor Play, nomeie play_backup, aprimorando-o executando nmcli con up play_backup. Se falhar, a chamada nmcli falhará.
O que eu tenho agora:
Ambas as conexões usam o modem ZTE 3G, listado como / dev / cdc-wdm0, este modem possui um Play Sim Card, no entanto, quando eu chamo o nmcli con laranja, ele ainda se conecta através deste modem / cartão sim / provedor, como acredito que o APN nomes e números de acesso são os mesmos para ambos.
Estou usando o nmcli 0.9.10.0 no Debian 8 (Jessie).
fonte
OK, resolvi o problema cavando nos documentos nmcli e mmcli com o uso de python.
Portanto, basicamente, as conexões de modem USB no nmcli não são vinculadas por padrão a um dispositivo específico, pois a porta (por exemplo, / dev / ttyUSB29) pode mudar a qualquer momento que a máquina é reiniciada ou o dispositivo é conectado e conectado novamente.
É possível criar essa ligação executando:
No meu caso, pode ser:
Mas só funcionaria se o modem desejado estivesse realmente disponível via / dev / ttyUSB23
No entanto, existe uma ferramenta chamada mmcli (Modem Manager Client, para não confundir com nmcli), que permite descobrir qual dispositivo está conectado a qual porta virtual em um dado momento. Para listar todos os modems conectados, basta chamar:
O qual retornará a lista de todos os modems conectados no momento com seus números.
Para obter todos os detalhes sobre o modem, seu status atual, incluindo a porta em que está disponível, pode-se chamar:
Onde número do modem é o número do modem retornado pelo comando anterior.
Usando grep, expressões regulares, mmcli e nmcli, é possível determinar com precisão a porta à qual o modem está conectado e vinculá-lo à conexão do NetworkManager. Abaixo você pode encontrar um script python simples (eu sugo no bash, desculpe) que faz o trabalho.
Para ajustar o script para sua situação atual, modifique modems_to_conns para mapear os nomes de modem retornados por mmcli para os nomes de conexão nmcli e execute esse script sempre que desejar estabelecer uma das conexões.
fonte