Гамму перестает получать смс через некоторое время.
У меня есть проблема, которая беспокоила меня некоторое время. Я искал решения уже 2 недели безрезультатно. У этих парней такая же проблема, как и у меня, но ответов там нет.,
Я бегу гамму (1,31) и гамму-смсд на Rpi с Rasbian. Использование Huawei E367.
Не знаю, почему я получил 3 устройства /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2 Так как я не знаю различий между ними, я попробовал разные настройки и запустил его с последующей версией; gammu-conf ttyUSB0 и gammusmsdrc ttyUSB2. И как root, и как обычный пользователь.
Отправка смс работает отлично. Тогда возникает проблема. Прием смс работает какое-то время, потом просто останавливается. Если я перезагружаю систему, она снова начинает работать. Некоторое время, однако, то же самое происходит через некоторое время.
# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB2
connection = at
# Debugging
#logformat = textall
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = /home/pi/gammu/log/log_smsdrc.txt
# Increase for debugging information
debuglevel = 0
# Paths where messages are stored
inboxpath = /home/pi/gammu/inbox/
outboxpath = /home/pi/gammu/outbox/
sentsmspath = /home/pi/gammu/sent/
errorsmspath = /home/pi/gammu/error/
ReceiveFrequency = 2
LoopSleep = 1
GammuCoding = utf8
CommTimeout = 0
#RunOnReceive =
Журнал
Tue 2015/03/31 11:05:19 gammu-smsd[7379]: Starting phone communication...
Tue 2015/03/31 11:07:07 gammu-smsd[7379]: Terminating communication...
Tue 2015/03/31 11:07:26 gammu-smsd[2091]: Warning: No PIN code in /etc/gammu-smsdrc file
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Created POSIX RW shared memory at 0xb6f6d000
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Starting phone communication...
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Error at init connection: Error opening device, it doesn't exist. (DEVICENOTEXIST[4])
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Starting phone communication...
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Error at init connection: Error opening device, it doesn't exist. (DEVICENOTEXIST[4])
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Starting phone communication...
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Error at init connection: Error opening device, it doesn't exist. (DEVICENOTEXIST[4])
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Starting phone communication...
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Error at init connection: Error
opening device, it doesn't exist. (DEVICENOTEXIST[4])
Tue 2015/03/31 11:07:26 gammu-smsd[2116]: Going to 30 seconds sleep because of too much connection errors
Tue 2015/03/31 11:08:14 gammu-smsd[2116]: Starting phone communication...
Tue 2015/03/31 11:08:21 gammu-smsd[2116]: Soft reset return code: Function not supported by phone. (NOTSUPPORTED[21])
Tue 2015/03/31 11:08:27 gammu-smsd[2116]: Read 2 messages
Tue 2015/03/31 11:08:27 gammu-smsd[2116]: Received
IN20150331_110600_00_+xxxxxx_00.txt
Tue 2015/03/31 11:08:27 gammu-smsd[2116]: Received
IN20150331_110820_00_+xxxxxx_00.txt
Tue 2015/03/31 11:09:38 gammu-smsd[2116]: Read 1 messages
Tue 2015/03/31 11:09:38 gammu-smsd[2116]: Received
IN20150331_110934_00_+xxxxxx_00.txt
Tue 2015/03/31 11:13:57 gammu-smsd[2116]: Read 1 messages
Tue 2015/03/31 11:13:57 gammu-smsd[2116]: Received
IN20150331_111352_00_+xxxxxx_00.txt
Я полагаю, что ранние предупреждения еще до того, как моя команда modewitch заработает. В rc.local:
sudo usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1506 -m 0x01 -M 55534243123456780000000000000011062000000100000000000000000000 -I
2 ответа
У меня та же проблема, поэтому я написал сценарий оболочки для повторной активации устройства clean-quick /dev/ttyUSB[0-2], а затем добавил его в задание cron
*/5 * * * * /home/sysadmin/scripts/reanimate-usb-stick.sh >/dev/null 2>&1
reanimate-usb-stick.sh
#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
USBDEVICES=$(ls -l /dev/* | awk '/\/dev\/ttyUSB[0-7]/ {print $6}' | wc -l)
DEVICEINFO=""
DEVICEPORT=""
if [ $USBDEVICES = 0 ]
then
datas=$(lsusb | grep -i hua | awk '/Bus/ {print $6}' | tr ":" "\n")
counter=0
for line in $datas
do
counter=$((counter+1))
if [ $counter = 1 ]
then
DEVICEINFO=$(echo "$line")
fi
if [ $counter = 2 ]
then
DEVICEPORT=$(echo "$line")
fi
done
usb_modeswitch -v $DEVICEINFO -p $DEVICEPORT -J
echo "$DEVICEINFO - $DEVICEPORT"
else
echo "ALLES OK : $USBDEVICES"
exit
fi
Это выглядит примерно так же, как https://github.com/gammu/gammu/issues/4 и хотя в Gammu и пытались это исправить, похоже, что прошивка модемов Huawei просто недостаточно стабильна для этого использования. Простое обращение к списку полученных сообщений несколько раз приводит к тому, что оно не отвечает.
Кроме того, какое устройство вы используете, может иметь небольшую разницу, см. Руководство Gammu и dd-wrt wiki для получения дополнительной информации по этой теме.
У меня была похожая проблема с модемом Huawei 3g e1750. Я добавил следующие строки в файл /etc/gammu-smsdrc:
ReceiveFrequency = 60
StatusFrequency = 60
CommTimeout = 60
SendTimeout = 60
LoopSleep = 10
CheckSecurity = 0
Идея состоит в том, чтобы минимизировать количество связи между gammu-smsd и 3g модемом. В частности, значение по умолчанию LoopSleep=1 означает, что gammu отправляет команды модему каждую секунду, и это может быть слишком много для прошивки модема, поэтому я использовал 10.
Следующая вещь является чем-то стандартным во всех встроенных проектах Raspberry/ARM: Используйте мощный источник питания. Я использую зарядное устройство с фиксированным кабелем (я полагаю, что некоторые многоразовые кабели могут быть непригодными для токов выше 2А), который выглядит следующим образом: http://botland.com.pl/9240-thickbox_default/zasilacz-extreme-microusb-5v-21a-raspberry-pi.jpg
При этом модем все еще зависает примерно через 50-100 часов работы, но это мой выбор для моего проекта.