У меня есть USB-флешка D-LINK DWM-157 с работающей SIM-картой только для SMS-операторов и без PIN-кода.
По какой-то причине ни gammu, ни gsmsendsms, ни gsmctl не могут подключиться к устройству. Все они сообщают о тайм-аутах.
НО wvdial находит устройство в порядке и может как с ним разговаривать, так и сделать запись /etc/wvdial.conf:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CFUN=1,0
Modem Type = Analog Modem
; Phone = <Target Phone Number>
ISDN = 0
; Password = <Your Password>
New PPPD = yes
; Username = <Your Login Name>
Modem = /dev/ttyUSB0
Baud = 9600
I также может ] вручную выполнить все AT-команды и отправить себе смс с помощью echo> / dev / ttyUSB0
#cat < /dev/ttyUSB0 &
# echo "ATZ" > /dev/ttyUSB0
OK
# echo "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" > /dev/ttyUSB0
OK
# echo "AT+CMGS=\"+myphonewithcountrycode\",145" > /dev/ttyUSB0
>
# echo "foobar^Z" > /dev/ttyUSB0
foobar
+CMGS: 2
OK
#
Если я сделаю cat < /dev/ttyUSB0 &
и затем попробую gammu или gsmctl, я вижу, что они оба отправляют AT-команды и этот модем отвечают OK, но gammu / gsm действуют так, как будто они не получили OK.
Что-то очень странно не так. В чем может быть проблема?
Превращенный там еще одно (неиспользованное) программное обеспечение, управляющее модемом: ModemManager.
Согласно этому ответу https://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem-in-linux я отключил ModemManager.
После systemctl disable ModemManager
gammu может теперь определить мой модем:
Device : /dev/ttyUSB0
Manufacturer : MTK1
Model : MTK2 (MTK2)
Firmware : 0.3.9
IMEI : 35562105*******
SIM IMSI : 24701050*******
Кажется, существует много из (иногда, по-видимому, конкурирующий) сервисы, пытающиеся обслуживать те же устройства в новейшем Ubuntus. У меня был тот же вид проблемы с моими настройками DNS, которые сохранены перезаписанными NetworkManger, затем systemd разрешенный и оба игнорирования, что я имел в netplan.