Гамму перестает получать смс через некоторое время.

У меня есть проблема, которая беспокоила меня некоторое время. Я искал решения уже 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 часов работы, но это мой выбор для моего проекта.

Другие вопросы по тегам