Использование 3G/4G-модема в Linux без wvdial и network manager
Про использование GSM/3G/4G-модемов в Linux написано уже много, но почти все руководства предполагают использование утилит wvdial или network manager для подключения. Эти утилиты позволяют существенно упростить процесс подключения, однако при их использовании невозможно полностью управлять опциями pppd, хотя это бывает необходимо (например при подключении нескольких модемов и/или когда надо «привязывать» подключения к конкретному ppp-интерфейсу).
Далее будет показано как можно настроить подключение к интернету с использованием GSM/3G-модема в дистрибутивах Debian/Ubutnu без использования вспомогательных утилит.
Начальные условия: сервер под управлением Ubuntu 12.04, модем Huawei E171 с симкой оператора «Мегафон», доступный в системе как «/dev/ttyUSB0».
Задача: подключиться к интернету используя только pppd и привязать соединение к интерфейсу ppp100.
Переходим к решению задачи. Обычно для дозвона пишут свой chat-скрипт, и почему-то не многие знают что в поставке pppd уже есть chat-скрипт для GSM/3G-модемов, доступный в большинстве дистрибутивов Linux как «/etc/chatscripts/gprs». Поэтому часть с написанием этого скрипта можно пропустить и сразу приступить к описанию подключения в pppd. Для этого создадим файл «/etc/ppp/peers/Megafon» следующего содержания:
# Используемое для подключения устройство /dev/ttyUSB0 # chat-скрипт # В параметре "-T" передаётся имя точки доступа connect '/usr/sbin/chat -v -f /etc/chatscripts/gprs -T internet' # Надо ли менять маршрут по умолчанию # Закомментируйте если не надо defaultroute # Использовать ли DNS-сервера провайдера # Закомментируйте если не надо usepeerdns # Номер ppp-интерфейса (в данном случае будет ppp100) unit 100 # Подключаться в случае обрыва persist # Перепосылать пакеты авторизации каждые 60 секунд # Позволяет избежать обрыва соединения при отсутствии трафика chap-interval 60 # Идентификатор соединения, используемый для поиска паролей в соответствующих файлах, # А так же передаваемый ip-up и ip-down-скриптам ipparam Megafon # Имя пользователя (пароль описывается в файле "/etc/ppp/chap-secrets") user "gdata" # Отключаем любое сжатие nopcomp novjccomp nobsdcomp nodeflate noaccomp # Правильная обработка обрывов соединения lcp-echo-interval 2 lcp-echo-failure 3 # IP адрес мы будем получать от провайдера, а не назначать сами noipdefault
Теперь вписываем в файл «/etc/ppp/chap-secrets» следующие строки
Соответственно отключиться можно командой:
Чтобы соедиение устанавливалось автоматически при загрузке нужно добавить запись в файл «/etc/network/interfaces». Согласно документации она должна выглядеть вот так:
auto Megafon iface Megafon inet ppp provider Megafon
Однако в утилите ifup есть баг, который приводит к тому, что сразу после успешного подключения pppd получает SIGHUP и соединение рвётся. Ошибка эта очень древняя и судя по сообщениям на форумах и баг-трэкерам дистрибутивов надеяться на её исправление в ближайшем будущем не стоит. Поэтому используем небольшой хак: опишем интерфейс не как ppp, а как manual:
auto Megafon iface Megafon inet manual pre-up /usr/bin/pon Megafon pre-down /usr/bin/poff Megafon
На этом всё. Приятной работы!
Подключение 3G модема (USB) Novacom Wireless GNS-3.5G к Linux
3G модем GNS-3,5G выполнен на основе чипсета Qualcomm MSM6290 и обеспечивает скорость работы до 7.2 Мбит в секунду при скачивании из Интернета.
Подключим модем не к одному Linux, а сразу к двум:
Это позволит продемонстрировать возможность использования 3G модема на двух больших семействах Linux, основывающихся на (1) deb-пакетах и (2) rpm-пакетах.
Для того чтобы подключаться к Интернет, будем использовать wvdial. Научившись на её примере, потом Вы сможете использовать и другие средства для установления ppp, например, Network Manager. .
Запустить консоль с правами root’a. Это традиционная задача для CentOS. Для Ubuntu можно сделать следующее: запустить обычную консоль, а в ней запустить консоль с правами root’а
Или же запустить Midnight Commander и отключить панели Ctrl-O
В дальнейшем не потребуется писать sudo перед важными командами. Впрочем, если Вы опасаетесь за безопасность, то используйте обычную консоль и не забывайте про sudo.
Укомплектуйте 3G модем SIM-картой с отключенным PIN-кодом. До этого убедитесь, что услуга Интернета заказана и активирована, а на счету достаточно денег. Также следует запомнить точку доступа в Интернет (APN) и логин с паролем, которые пригодятся для авторизации.
Если Вы уже подключали этот 3G модем к Windows или MAC’у, то знаете, что сначала модем появляется в системе в качестве флешки или CD-диска. В упомянутых ОС модем превращается собственно в модем при помощи записанных на нём программ (драйверов и коммуникационной программы). Для Linux потребуется usb_modemswitch. Установите её.
#apt-get install usb-modeswitch
1. CentOS. Здесь следует поставить установочный пакет.
#yum install usb_modeswitch-0.9.7-1.el5.test.i386.rpm
Аналогично, поставьте wvdial.
В CentOS wvdial уже стоял.
Подсоединяем модем к USB – порт, а затем проверьте, появилось ли устройство «Модем как носитель информации». После присоединения могут появиться сообщения от присоединение USbModem’a, он же CD-ROM, а в «Иксах» может даже подмонироваться диск.
В списке должно появиться устройство “ID 1c9e:f000”. Это 3G модем на первом этапе. Нужно превратить его в настоящий модем, чей VID:PID должны выглядеть как 1c9e:9605.
Ввести текст usb_modeswitch.conf в /etc/
# Configuration for the usb-modeswitch package, a mode switching tool for
# USB devices providing multiple states or modes
# This file is evaluated by the wrapper script “usb_modeswitch” in /lib/udev
# To enable an option, set it to “1”, “yes” or “true” (case doesn’t matter)
# Everything else counts as “disable”
# Disable automatic mode switching globally (e.g. to access the original
# Enable logging (results in a extensive report file in /var/log, named
# ST Mobile Connect HSUPA USB Modem
# Use /dev/ttyUSB2 for connecting
Текст его одинаков, как для Ubuntu, так и для CentOS.
#usb_modeswitch -I -W -c /etc/usb_modeswitch.conf
# usb_modeswitch -c /etc/usb_modeswitch.conf
Обе команды равноправны, только в первом случае мы выводим больше отладочной информации. Она Вам пригодится, если что-то пойдёт не так.
Если всё прошло как надо, получаем нужное устройство “ID 1c9e:9605”
Сначала загрузите модуль ядра, который создаст на данном USB некоторое количество последовательных интерфейсов (обычно для этого модема их 4 штуки).
Проверьте, что у нас нет таких интерфейсов в системе (иначе будет другая нумерация, что следует учесть на последнем шаге). Итак,
Если таких не нашлось, загружаем модуль.
# modprobe usbserial vendor=0x1c9e product=0x9605
Vid и pid – уже хорошо знакомы. Проверим, что у нас с устройствами
Вот здесь их и должно появиться 4 штуки с номерами от 0 до 3. Вопреки рекомендации «переключателя модема» будем использовать ttyUSB3. Впрочем, можно попробовать и ttyUSB2. Системы разные, возможны варианты.
Осталось сделать конфигурацию для wvdial и пробовать подключаться. Изменим файл /etc/wvdial.conf
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Здесь “internet” – это наша точка доступа (APN), которую Вы приготовили, ttyUSB3 – то самое устройство. Кстати, если есть желание пообщаться с модемом, можете сейчас это сделать. Например, при помощи minicom’a cпросить у модема, кем он себя чувствует, позвонить другу или запросить баланс. mts:mts – это логин и пароль для доступа в интернет.
Осталось попробовать нашу звонилку.
Отключить её можно стандартным Ctrl-C.
Для тех, кто противник root-овых консолей, напишем вариант, чтобы «звонилка» вернула управление в консоль
Процесс переключения модема и запуска «звонилки» можно автоматизировать. Для чего существует простой скрипт, который запускается под рутом. Вот этот скрипт:
usb_modeswitch -I -W -c /etc/usb_modeswitch.conf
modprobe usbserial vendor=0x1c9e product=0x9605
Подписка на новости
Товарный знак «ЕвроМобайл» принадлежит ООО «ЕМ Групп».Свидетельство на товарный знак (знак обслуживания) «ЕвроМобайл» №709049 выдано Федеральной службой по интеллектуальной собственности 18.04.2019. Правообладатель: ООО «ЕМ Групп».
Все права на любые материалы, опубликованные на сайте, защищены в соответствии с российским и международным законодательством об интеллектуальной собственности. Любое использование текстовых, фото, аудио и видеоматериалов возможно только с согласия правообладателя. Указание активной ссылки на сайт правообладателя (ООО «ЕМ Групп») обязательно.
Все права защищены © 2023, ООО «ЕМ Групп».
Как подключить 3g модем в Linux?
За те годы, что я использовал Linux совместно с 3G модемом, не было ни одной родной программы от самой Ubuntu. У 3G модемов фирмы Huawei есть свой 3G менеджер под Linux, но работать с другими модемами (да и с некоторыми своими) он отказывается.
Но вот в Ubuntu 12.04 я совершенно случайно обнаружил в менеджере пакетов программу, созданную как раз для управления 3G модемами. Как подключить 3g модем в Linux при помощи этой программы?
Для начала давайте установим эту программу, чтобы подключить 3G модем. Вы можете найти её в менеджере пакетов Synaptic под именем modem-manager-gui
Вы также можете установить её из командной строки:
Если у вас нет нужного репозитория и программа не находится, то добавьте репозиторий .
Сделать это можно, открыв менеджер пакетов Synaptic — Настройки — Репозитории — Другое ПО — Добавить, и добавить так, как показано на снимке:
Теперь обновите сведения о пакетах и устанавливайте эту программу.
В самом менеджере пакетов есть небольшое описание того, что эта программа умеет:
Давайте попробуем запустить эту программу и на личном опыте оценить её полезность и функциональность. Я буду использовать разлоченный модем ZTE 100 с сим картой от Мегафон.
Заходим в «Приложения» — «Системные утилиты» — «modem-manager-gui» и запускаем приложение.
Как видите, программа определила мой модем. Нажимаю кнопку «Сети» и тут выскакивает рамочка:
Нажимаем «Активировать» конечно. Перед нами появляется вкладка сеть, где есть кнопка «Начать сканирование сетей». Сканируем:
Видим все доступные сети. Очень полезно, кстати, посмотреть, у каких операторов в данном месте есть 3G или UMTS. Видим, что есть у Мегафон и МТС. Так и есть на самом деле. Тперь
Теперь нам нужно подключить 3g модем в Linux. Но не тут то было, в программе нет кнопки «Подключить». Пришлось идти в сетевые подключения и подключать 3G модем обычным способом.
Но не будем это считать серьёзным недостатком, возможно так было задумано. После подключения 3G модема в менеджере сети, программа окончательно оживает. Посмотрим вкладку «Трафик».
Ну что же — не плохо. Особенно радует пункт «Остаток трафика» — найти бы как его настроить. Нажимаем»Установить ограничения», ставим галочку «Использовать ограничения трафика» и выставляем значение».
Судя по следующему полю, при достижении этого значения, программа оповестит о лимите. Можно поставить поменьше, и тогда можно узнать, что скоро трафик закончиться.
Теперь перейдём на вкладку «Статус».
Самое интересное тут: «Уровень сигнала». Его необходимо знать, если вы хотите усилить сигнал 3G модема. Так же через программу можно отправить смс:
Я не стал пробовать, оно мне не надо. Но вот попробовать отправку USSD запросов, чтобы проверить тот же баланс, думаю стоит:
У меня не получилось посмотреть баланс, программа не реагировала. А потом мне пришло SMS: