Você não precisa de uma atualização de firmware, mas precisa de um interruptor de modos, que você encontrou e um marcador, que você não encontrou. Os seguintes arquivos de configuração, tirados de material de redes de virtualização, virtualização e data center da NVDC podem funcionar imediatamente. Se não usar cada um como modelo e ajustar até começar a funcionar:
/etc/usb_modeswitch.conf
DefaultVendor=0x12d1
DefaultProduct=0x14fe
TargetVendor= 0x12d1
TargetProduct= 0x1506
MessageContent="55534243123456780000000000000011062000000100000000000000000000"
/etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","internet.t-mobile.cz"
Stupid Mode = 1
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
Phone = *99***#
Modem = /dev/gsmmodem
Username = { }
Password = { }
Baud = 9600
Uso
- Crie um link de
/dev/gsmmodem
para/dev/ttyUSB2
, que é o modem. -
Disque o mundo exterior. Note que você deve fazer isso sempre:
wvdial >/dev/null 2>&1 &
-
Adicione o seguinte à área de script de inicialização local do seu sistema:
MODEM_STORAGE="12d1:14fe" MODEM_MODEM="12d1:1506" # 0 = storage, 1= modem MODEM_MODE=0 check_modem_mode () { echo -n "Checking modem presence... " lsusb | grep --quiet "$MODEM_STORAGE" if [ $? -eq 0 ]; then MODEM_MODE=0 echo "OK: modem in mass storage mode" else lsusb | grep --quiet "$MODEM_MODEM" if [ $? -eq 0 ]; then MODEM_MODE=1 echo "OK: modem in modem mode" else echo "ERROR: modem not found" exit 1 fi fi } set_modem_mode () { while [ $MODEM_MODE -eq 0 ] do echo -n "Setting modem mode... " usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf >/dev/null 2>&1 lsusb | grep --quiet "$MODEM_MODEM" if [ $? -eq 0 ]; then MODEM_MODE=1 echo "OK" else echo "FAILED" fi done }
Explicação
Como expliquei em um post anterior , um Modem GSM sempre tem duas ou mais partes, neste caso, 3 partes.
- Uma área de armazenamento, semelhante a um dispositivo USB.
- Um adaptador Ethernet sem fio para conectar vários dispositivos a ele.
- Um discador de PPP, para que seu provedor de serviços sem fio saiba que você é um cliente pagante e pode cobrar por excedentes conforme necessário. Como você pode provar que é um cliente pagante, como o PPPoE exige autenticação, você pode usar o endereço IP negociado para acessar a Internet.
Os marcadores 1 e 2 são controlados pelo arquivo etc/modeswitch.conf
config. 12d1
é o endereço MAC do fornecedor, por assim dizer. Usando o script local, o restante do endereço MAC é criado. 12:D1:14:FE
, acaba sendo o dispositivo de armazenamento, e 12:D1:15:06
acaba sendo o modem. Se não estiver usando o script local, emita usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf
Nota: Por padrão, ou seja, sem o modo de alternância, o Linux só vê o dispositivo de armazenamento, e é por isso que o OP não pode ver ou usar o discador PPP ou o dispositivo sem fio .
Quando o modem é ligado usando o modo de modos, o wvdial , ou uma de suas muitas substituições, controla o acesso ao mundo exterior. Com o modem no Modem Mode, você finalmente verá uma saída similar a:
wwan0 Link encap:Ethernet HWaddr 58:2c:80:13:93:13
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.83.249.176 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4265 errors:0 dropped:0 overruns:0 frame:0
TX packets:6699 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:506706 (494.8 KiB) TX bytes:600991 (586.9 KiB)
ao emitir ifconfig