Интернет подключение Raspberry Pi при помощи GSM модема

Для удаленного мониторинга устройств умного дома необходимо стабильное подключение к домашней сети. Однако, если этот дом находится в месте где нет проводного интернета, требуется альтернативный способ соединения. В данном случае был собран комплект на базе Raspberry Pi 3 B+ и перепрошитого, отвязанного от оператора 3G-модема MegaFon M21-4 (он же Huawei E3531) с использованием сим карты сотового оператора MegaFon. Подключение к интернету реализовано через PPP (Point-to-Point Protocol) с помощью программы wvdial.
- Настройка модема
- Установка и настройка wvdial
- Подключение к сети интернет
- Проверка подключения
- Конфигурация wvdial для T2 (Tele2)
Настройка модема
Модем должен быть прошит Stick прошивкой, когда устройство ведет себя как классический USB-модем, имеется командный AT-порт, через который можно установить соединение посредством PPP-протокола. Проверяем что модем определился в системе с помощью команды:
# lsusb
Результат будет примерно следующим:
Bus 001 Device 005: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Если модем работает в режиме HiLink
, его необходимо перепрошить соответствующей прошивкой.
После подключения модема определяем, на каком порту он распознался:
# dmesg | grep tty
Обычно модем определяется как /dev/ttyUSB0
или /dev/ttyUSB1
.
Проверяем работу модема используя программу minicom
, отвечает ли он на AT-команды.
# minicom -D /dev/ttyUSB0 AT OK AT+CPIN? +CPIN: READY AT^U2DIAG? 0 OK
0 (ноль) после команды AT^U2DIAG?
, что устройство находится в режиме модема, если это не так, то здесь же меняем командой AT^U2DIAG=0
.
Для выхода из minicom нажимаем Ctrl+A
, затем Q
.
Если minicom
не установлен, то устанавливаем:
# apt update && apt install -y minicom
Установка и настройка wvdial
Для работы с модемом установим wvdial, который поможет автоматизировать подключение.
# apt update && apt install -y wvdial usb-modeswitch
Создадим конфигурационный файл /etc/wvdial.conf
, настройки для оператора Мегафон будут следующие:
[Dialer Defaults] Init1 = ATZ Init2 = AT+CGDCONT=1,"IP","internet" Modem Type = Analog Modem Modem = /dev/ttyUSB0 ISDN = 0 Phone = *99# Password = " " Username = " " Stupid Mode = 1 Auto Reconnect = on
Обычно в настройках MegaFon используются логин/пароль: gdata/gdata
или megafon/megafon
, но у меня взлетело и с указанием пустых данных.
Подключение к сети интернет
Запустим подключение вручную:
# wvdial
Если соединение успешно установлено, появятся строки с IP-адресами.
CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Wed Feb 26 12:51:16 2025 --> Pid of pppd: 1684 --> Using interface ppp0 --> local IP address 10.116.150.227 --> remote IP address 10.64.64.64 --> primary DNS address 10.153.3.252 --> secondary DNS address 10.153.3.228
Для выхода нажимаем Ctrl-C
.
Для автоматического подключения создадим сервис wvdial в systemd.
Создаем файл /etc/systemd/system/wvdial.service
и добавляем в него следующее содержимое
[Unit] Description=wvdial [Service] ExecStart=/usr/bin/wvdial Restart=on-failure RestartSec=5
В конец файла /etc/udev/rules.d/99-com.rules
добавляем строку:
SUBSYSTEM=="tty", KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="wvdial.service"
Эта строка запускает wvdial.service
при загрузке USB-модема.
Проверка подключения
После запуска wvdial можно проверить соединение командой:
# ifconfig ppp0
Если интерфейс ppp0 активен, значит, интернет подключен.
Конфигурация wvdial для T2 (Tele2)
[Dialer Defaults] Init1 = ATZ Init2 = AT+CGDCONT=1,"IP","internet.tele2.ru" Modem Type = Analog Modem ;Baud = 460800 Modem = /dev/ttyUSB0 ISDN = 0 Phone = *99# Password = " " Username = " " Stupid Mode = 1 Auto Reconnect = on