Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

g usb connection Новости

Подготовка ядра

Устанавливаем все необходимые пакеты:

apt-get install linux-source linux-headers-$(uname -r) openssl unzip dos2unix patchcd /usr/srctar xvfj linux-source-2.6.35.tar.bz2cd linux-source-2.6.35make oldconfig && make preparemake modules_prepare

Установка и настройка usb-modeswitch


Утилита usb_modeswitch необходима для автоматического переключения устройства из режима ZeroCD (на котором драйвера для Windows) в режим модема. Если запустить lsusb, то увидим устройство в режиме ZeroCD:

Bus 001 Device 003: ID 198f:bccd Beceem Communications Inc.

Устанавливаем:apt-get install usb-modeswitchcat /etc/usb_modeswitch.d/198f:bccd >> /etc/usb_modeswitch.conf

Установка модуля ядра и Beceem API Library

Распаковываем скачанный архив:

tar xvfz Sprint4GDeveloperPack-1.1.tar.gz
cd Sprint4GDeveloperPack-1.1

Собираем:./install.sh

Скрипт задаст ряд вопросов по поводу расположения директорий, главное указать правильную директорию с исходниками ядра. В моем случае это /usr/src/linux-source-2.6.35

Скрипт соберет модуль ядра drxvi314.so, библиотеку libxvi020.so и копирует прошивку девайса в /lib/firmware. После чего выдаст ошибку — остальные компоненты будем собирать позже вручную. Нам еще потребуется конфиг устройства от провайдера, берем его из папки с установленной программой в винде (Program files/Wimax Connection Manager/Driver/Firmware/macxvi.cfg) и кладем в /lib/firmware. Теперь загружаем модуль ядра: modprobe drxvi314

Если все прошло удачно — на модеме должен загореться красный светодиод. Также стоит глянуть вывод dmesg -c, там должно быть что-то типа …[ 6.240000][ 6.240035] register_networkdev:Beceem Network device name is eth1!……[ 7.197554] usbcore: registered new interface driver usbbcm[ 7.197562] Initialised usbbcm

Для автозагрузки добавляем drxvi314 в /etc/modulesПоднимаем eth1:ifconfig eth1 up

Установка Beceem Connection Manager и библиотек

unzip CSCM_v1.1.6.0_source.zip
cd CSCM

Конфигурирование демона wimaxd


Тут есть одна непонятная вещь, над которой тоже пришлось долго «плясать с бубном».

Ранее, при сборке модуля ядра, мы уже скопировали конфиг устройства (файл macxvi.cfg), поставляемый провайдером. Такой же файлик есть и в архиве Sprint’а, но с ним модем ведет себя странно (не работают светодиоды, поиск БС происходит очень долго и т.д.).

В общем, в /lib/firmware/ должно быть 2 файла: macxvi.cfg — конфиг провайдера, его использует модуль ядра.macxvi-sprint.cfg — конфиг Sprint’а из архива (лежит в Sprint4GDeveloperPack-1.1/Rel_5.2.7.3P1_USB/Tools/config/CFG_files_for_VSG_testing/macxvi_VSG_2.6-3.5_FLASH_r37.cfg) — он нужен для демона wimaxd

Создаем конфиг wimaxd, например /etc/wimaxd.confПосле изучения документации, а также методом проб и ошибок получилось вот такое содержимое:

/etc/wimaxd.conf:########################################################################BandwidthMHz 10CenterFrequencyMHz 3416 3426 3436 3446 3516 3526 3536 3546

Подключение


Запускаем демон:

wimaxd -D -c /etc/wimaxd.conf

Результатом правильной работы будет непрерывный вывод сообщения Link status = WAIT FOR PHY SYNC CMD — это значит, что демон готов принимать команды от клиента. Открываем другую консоль и запускам клиент:wimaxc -i

Должно появится приглашение Beceem CM Server Version 1.1.6.0>

а в консоли демона сообщение Client socket 00000006 lock Beceem API: SUCCESS (wait = 0 ms)Client socket 00000006 unlock Beceem API: Success

Начинаем сканирование:> search

Через секунд 30 клиент выдаст найденные BSIDs, что-то вроде такого:Network search returned 4 base stations.Idx BSID Pre Freq BW RSSI CINR0 01:01:00:00:02:00:17:00 0x05 3416.000 10.000 -70 261 01:01:00:00:02:00:17:20 0x05 3426.000 10.

Подключаемся к той, у которой соотношение сигнал/шум максимальное, в данном случае 0 > connect 0

и если параметры аутентификации заданы верно, соединение будет установлено, а светодиод модема сменится на зеленый с мигающим желтым. В консоли демона можно увидеть такую информацию:

=============== Received Message Start (2021/09/24 18:03:10.622) ===========u32State = Network Entry completedService flow response received (Type = 6 – Subtype = 1 – Length = 8476)Service Flow Add Indication:Type = 13Direction = UplinkConnection ID = 10039Virtual CID = 4Service flow ID = 513Max sustained rate = 512 kbpsTraffic priority = 0=============== Received Message End (type=6 sub-type=1) ===============Device status indication: Layer 2 connected

=============== Received Message Start (2021/09/24 18:03:10.682) ===========u32State = Network Entry completedService flow response received (Type = 6 – Subtype = 1 – Length = 8476)Service Flow Add Indication:Type = 13Direction = DownlinkConnection ID = 10040Virtual CID = 5Service flow ID = 512Max sustained rate = 2680 kbpsTraffic priority = 0================Link status = LINKUP ACHIEVEDЗдесь видны параметры скорости даунлинка/аплинка (2680/512 kbps — ограничение провайдера).

Если соединение не установилось — нужно смотреть вывод ошибок в консоли демона и пытаться исправить. Также будет полезно включить опции AuthLog и просмотреть детальный лог. Вполне вероятно, для других провайдеров параметры аутентицикации будут совсем другие.

Финальные шаги

После того, как все будет правильно настроено — демон можно запустить в фоне:

wimaxd -c /etc/wimaxd.conf

и занести в стартовые скрипты системы.


Клиентскую часть тоже можно автоматизировать, в документации есть пример скрипта на Python. Но я не силен в программировании на Python, поэтому оставляю это за рамками статьи.

Осталось настроить PPPoE-соединение к провайдеру. Тут уже все стандартно — запускаем pppoeconf и отвечаем на вопросы. Обратите внимание, что интерфейс eth1 изначально не поднят, перед запуском PPPoE его нужно активировать (ifconfig eth1 up)

Стартуем:pon dsl-provider… и вуаля! Проверяем, поднялся ли ppp0:ifconfig ppp0

ping ftp.mgts.by— ftp.mgts.by ping statistics —177 packets transmitted, 177 received, 0% packet loss, time 176214msrtt min/avg/max/mdev = 42.551/59.213/71.809/8.631 msРаботает все хорошо, проблем замечено не было. Скорость — максимальная, ограниченная провайдером. Субъективно, пинг стал меньше и ровнее, чем под Windows.

При подготовке статьи была использована документация из Sprint 4G Depelopment Pack.

P.S. Выражаю благодарность человеку под ником amod-cccp за предоставленный линк на этот пак (месяц назад искал какую-либо информацию — ничего не нашел).

Автозагрузка

А теперь — автозагрузка, с ней посложнее. Я сразу опишу создание скрипта автозагрузки, в который можно будет запихнуть всё, что угодно. Он будет стартовать вместе с системой, нооо…

Нельзя просто так взять и создать файл автозагрузки. Есть одна проблема — Debian с какого-то времени пересмотрел свои требования к файлам автозагрузки. Файл мало просто создать, его нужно ещё по-особому отформатировать:

  1. Первая проблема — это LSB headers. Это заголовок файла автозагрузки. Нужен он потому, что компоненты автозагрузки должны выполняться в определённом порядке, поскольку часть из них зависят друг от друга. Предположим, у вас есть два скрипта в автозагрузке — один из них должен будет монтировать сетевую папку, а второй — делать в неё резервную копию файлов. Естественно, что сначала нужно выполнить первый, а потом — второй, поскольку второй зависит от первого. Для указания таких зависимостей и используются заголовки загрузочного файла. Впрочем, будет достаточно того заголовка, который я выложу в образце файла автозагрузки.
  2. Вторая проблема — любой скрипт в автозагрузке при запуске системы вызывается командой /etc/init.d/script start, а при выключении компьютера — командой /etc/init.d/script stop. Нужно добавить условия для обработки этих случаев.

Я сделал просто — взял за основу скрипт из имеющихся в /etc/init.d/ — уж они-то должны быть созданы по правилам, потом изучил этот скрипт и вырезал из него всё ненужное. Осталось два места, которые нужно изменить — место для команд, которые выполняются при запуске системы, и место для команд, которые выполняются при выключении компьютера. Впрочем, сейчас всё увидите:

Задачи:

  1. Принимать первый аргумент командной строки в качестве названия внешнего интерфейса, проверяя подлинность имени, используя команду ifconfig;
  2. Добавить сохранение выбранного интерфейса в какой-нибудь файл в /etc и сделать ключ выбора последнего интерфейса, а лучше — при отсутствии имени интерфейса как аргумента.
  3. Запихнуть это всё красиво в автозагрузку и в $PATH.

Как подключить 3g usb модем (мегафон, мтс, билайн) в ubuntu linux 12.04

В этой статье будет рассмотрена настройка и подключение 3G USB модема
(МТС, Мегафон) в Ubuntu 12.04. Это предельно
простая инструкция как подключить сотовый 3G модем в графической среде
Unity, с использованием интерфейса
Network Manager. Инструкция применима не только к
Ubuntu установленной на жесткий диск, но и к
Live варианту запускаемому с
USB флешки или с лазерного диска.

В Linux, в графических оболочках
Gnome, KDE, XFCE, Unity в качестве графического
интерфейса для настройки сетевых подключений используется программа Network Manager. Точнее Network
Manager обеспечивает plug and play работу с
физическими сетевыми устройствами, а графический интерфейс этой программы
называется Network Manager
Applet (nm-applet). Network Manager
Applet отображается в виде значка в системном трее
и если на этом значке кликнуть мышью откроется меню с функциями программы:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

Для подключения 3G USB модема нужно воткнуть модем в USB разъем
компьютера и через 1-2 минуты (необходимо некоторое время на то, чтобы модем
был опознан системой и подключен) кликнуть на значке “Сеть” в трее и выбрать
пункт меню “Edit connections” (иллюстрация
выше). В результате откроется окно, в котором
нужно выбрать вкладку “Mobile broadband”
и там нажать кнопку “Add”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

Запустится мастер настройки соединения, в первом окне нажать кнопку
“Continue”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

Примечание.

Если вкладка “Широкополосный доступ (Mobile
broadband)” недоступна или в первом окне
настройки не определена модель модема, тогда:

нужно добавить новую строку в файле /lib/udev/rules.d/40-usb_modeswitch.rules
в которой прописать vid и pid вашего модема. Эти данные вы можете
узнать через консоль командой lsusb.

Во втором окне выбрать страну и нажать кнопку
“Continue”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

В следующем окне выбрать оператора и нажать кнопку
“Continue”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

В следующем окне нажать кнопку “Continue”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

В следующем окне нажать кнопку “Apply”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

В следующем окне нажать кнопку “Save”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

В этом окне можно отключить опцию “Allow roaming …”
(роуминг) и включить опцию “Connect automatically”.

Готово. Теперь, для того чтобы подключиться к Интернет достаточно
кликнуть на значке “Сеть” и в меню выбрать название созданного соединения:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

И через несколько секунд соединение будет установлено:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

Можно сделать так, чтобы соединение устанавливалось автоматически, как
только модем будет воткнут в USB разъем. Для этого
необходимо открыть окно соединений, выбрать вкладку “Mobile
broadband” и там нажать кнопку “Edit”
затем отметить опцию “Connect automatically”
и нажать кнопку “Save”:

Раздача интернета с 3G модема в локальную сеть в Linux / Хабр

P.S.

По моим длительным наблюдениям в Ubuntu
“сотовый” Интернет работает немного быстрее чем в Windows.
Бывает даже и такое, что в Windows соединения
вообще нет (оно устанавливается но не работает), а в
Ubuntu все нормально.

Если у вас возникли проблемы с подключением читайте другую статью –
установка и настройка 3G USB модема на Ubuntu
Linux
, в ней более подробно описан процесс установки и настройки.

Иван Сухов, 2021 г.

Как подключить модем мтс в linux?

Сегодня у многих пользователей компьютеров большой популярностью пользуются USB 3G модемы от различных операторов. Если вы имеете на борту OS Windows и у вас устойчивый сигнал, (если сигнал слабый, читайте статью: как усилить сигнал 3G модема), то скорее всего вы не будете иметь  с модемом особых затруднений. Ведь все модемы обычно оснащаются программным обеспечением под OS Windows и просто вставив модем в USB порт, запуститься программа автозапуска, которая установит всё необходимое в 3 щелчка мышки.

Кстати, нет ничего обиднее, чем пЕрЕплАтИть при покупке 🤦🏻‍♂️ Поэтому ОЧЕНЬ рекомендую подписаться на канал в Телеграм 👉🏻Промокоды для Алиэкспресс👈🏻 Постоянно узнавая про новые акции 🔥 на разные товары, вы точно НИКОДА не переплатите 👌🏻

Но вот если у вас на борту OS Linux, вы наверняка столкнитесь с трудностями, так как подключить USB модем в Linux не так просто. На днях одна моя знакомая купила себе модем от МТС  – HUAWEI E171. Так как у на её старом ноутбуке стоит Росинка 9, то сразу возникла проблема:

Как подключить модем МТС в Linux

Дело в том, что модем никак не хотел определяться в Network Manager. После долгих поисков я на удивление себе нашёл программу для этого модема именно под Linux! Какой-то добрый человек на одном форуме выложил архив с двумя версиями программы: под Windows и Linux.

Очень жаль, что создание мобильных приложений под Linux так хромает, и такие находки воспринимаются почти как чудо. Выкладываю архив только с версией под Linux: Soft e171 huawei linux.

Скачав архив распакуйте его в свою домашнюю папку. У вас появятся вот такие файлы. Посмотрите, являются они исполняемыми, особенно файл “install”. После этого откройте терминал и выполните команду:

sudo bash ./install

Если вы всё сделали правильно, то программа начнёт устанавливаться:

Как подключить модем МТС

Если всё прошло без ошибок, а на Росинке 11 всё прошло гладко, у вас в меню появится значок программы с логотипом от МТС.

Как подключить модем в Linux

Как теперь подключить модем МТС в Linux? Запустите программу, предварительно вставив модем в USB порт. В трее должен появиться значок программы.

Щёлкнув по нему вы запустите Connect Manager MTS Linux, который внешне не отличается от версии Windows.

MTS Linux Connect Manager

Если у вас не установлена программа usb-modeswitch, то установите её обязательно.

sudo aptitude install usb-modeswitch
sudo rm /lib/udev/modem-modeswitch

Вот и всё, теперь вы знаете, как просто подключить модем МТС в Linux. Дело не сложное, особенно, когда есть нужный софт!

Удалить программу можно командой:

sudo /usr/local/Connect_Manager/UninstallMobilePartner

Найденный скрипт

Хм-хм. Этот скрипт уже староват — iptables ругается на одну из команд и не хочет выполнять, да и тот путь, которым в статье скрипт пытаются поместить в автозагрузку, тоже работает не всегда на моей практике. Более того, есть проблема — этот скрипт отлично подходит для ситуации, когда ничего не собирается меняться.

Если бы так и было, я бы поставил iptables-persistent и на этом закончил бы статью. А вот я собираюсь иногда получать интернет по интерфейсу ppp0, иногда — по eth0, а иногда — вообще по wlan1, причём менять интерфейс хочу одной консольной командой. Так, eth1 в примере — внешний интерфейс, а eth0 — внутренний.

Про umts/lte-модемы и linux. практика.

Раздача интернета с 3G модема в локальную сеть в Linux / ХабрПродолжение. Начало здесь.

Для тех, кто недавно присоединился к радиоканалу “Боян-FM” читателям моей уютненькой™, напомню, что затеял всё это ради того, чтобы построить достаточно скоростной IPSec-канал через “Йоту”. А для этого, в свою очередь, необходимо получить прямой “честный” IP с SIM-карты на каком-либо сетевом интерфейсе, притом минуя PPP.

Конкретно я использую модем iRZ TL21, построенный на базе модуля Sierra (он же AirPrime) MC7710, в составе которого находится чип Qualcomm MDM9200. Система – стабильный дистрибутив Debian (в данном случае Wheezy).

Сразу оговорюсь, что в какой-нибудь свежей Ubuntu данный модем заработает прям “из коробки”: его хорошо понимает NetworkManager. Но мы ж реальные пацаны, у нас реальный сервак, GUI на нём нетути. Да и подниматься линк должен сам по себе при старте системы. Поэтому пойти по простому пути не получится, придётся никакой механизма всё вручную.

Итак, суём модем в USB-порт, заправшиваем “lsusb” и видим…

Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 1199:68a2 Sierra Wireless, Inc. MC7710 Modem
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Ага, третья строчка – вот оно как раз самое. Выделенные жирным шрифтом цифирки нам потом ещё пригодятся. Ну что-ж, вроде как всё хорошо. Смотрим “ls /dev/ttyUSB*” и видим… а ничего мы не видим. Как говорится, “***в панама”. Нету псевдотерминалов.

Иногда затык может заключаться в том, что некоторые модемы “тянут” за собой виртуальный CD-ROM, на котором типа лежат типа драйвера для этого модема. И пока не пнёшь этот модем правильной AT-командой, собственно в модем он не превратится. А будет и дальше себе с настойчивостью кретина прикидываться CD-приводом. Ну это лечится элементарной установкой пакета “usb-modeswitch”: “apt-get install usb-modeswitch“.

Ладно, установили. Но псевдотерминалы всё равно не появились. Чешем репу. И вспоминаем, что в Debian-е по умолчанию идёт довольно боянистый софт, и нужных драйверов “из коробки” нет. Чтобы не париться уж слишком сильно, можно тупо поставить свежее ядрышко из backports. На момент написания этого псто оно было версии 3.16:

Перезагрузились. Смотрим “modinfo qmi_wwan” и “modinfo sierra_net“. Если выделенные жирным циферки из выхлопа lsusb (см. выше) оказались в одном из двух списков, то всё пучком. Можем продолжать. Если же нет, увы. Идем искать драйвера к нашему “мопеду”. Хорошо если найдём. А если не найдем – значит “упс”. В моём случае всё ништяк:

Внезапно, и псевдотерминалы появились в большом количестве:

Дальше тыкаем каким-нибудь minicom-ом в каждый терминал по очереди (“minicom -D /dev/ttyUSB0“, “minicom -D /dev/ttyUSB1” и т.п.) и смотрим который из них откликнется на какой нибудь “AT!GSTATUS?“, тот и есть нужный нам. Заодно проверим, что модем сцепился с сотовой сетью.

Вроде работает. Тут наступает небольшая засада. В дальнейшем нам придётся из различных скриптов ссылаться на найденный псевдотерминал. Но никто не может гарантировать нам, что после очередной перезагрузки сервера имя устройства останется таким же. Поэтому придётся помучать udev для того чтобы создать символическую ссылку (symlink), дабы увековечить нашу бесценную находку. Для начала смотрим к каким атрибутам мы могли бы привязаться.

Копипаста ниже была взята с другой конфигурации оборудования, поэтому некоторые буквы-цифры там будут расходиться с моим примером. Самые внимательные, наверное, даже найдут где именно. Но общий смысл от этого не меняется. Текстовое поле можно растянуть, чтобы было удобнее читать.

Смотрим к каким атрибутам оборудования мы можем “привязаться”. Однозначно придётся использовать критерий SUBSYSTEM==”tty” из первой секции, иначе получится ерунда. Но этого мало. Нужно что-то ещё. Большой соблазн взять ATTRS{product}==”MC7710″, чтобы однозначно идентифицировать устройство, но… тогда мы не сможем указать номер интерфейса. Ибо udev позволяет брать параметры устройства и только одного родителя. Поэтому придётся довольствоваться ATTRS{bInterfaceNumber}==”03″ и DRIVERS==”qcserial” из третьей секции. Итоговое правило будет выглядеть так:

Записываем его куда-нибудь в “/etc/udev/rules.d/80-LTE.rules”, после чего заклинаем “udevadm control –reload-rules“, “udevadm trigger“. Первое нужно, чтобы udev перечитал список правил, второе – чтобы не топать ногами в серверную и не “перевтыкать” руками модем.

Итак, у нас появилась символическая ссылка “/dev/LTE-control”. Что же с ней делать дальше? А дальше надо указать модему APN и логин-пароль, если есть. Но каждый раз мы это делать руками, понятно, не будем. Поэтому имеет смысл либо написать скрипт, либо запихнуть вызов соответствующих команд прямо в “/etc/network/interfaces”. У меня получилось что-то типа того.

В директиве “pre-up” описываем действия до поднятия интерфейса: указать название APN, немного подождать, запустить пакетный драйвер QMI (или как он там правильно называется). То есть софтинку, которая разбирает-собирает поток данных и контрольный канал. С этого момента всё должно заработать. Если не взлетит, то вдумчиво раскуривать мануалы по модему, искать там диагностические AT-команды и пытаться разобраться что же пошло не так. После опускания интерфейса останавливаем QMI-драйвер.

Вроде бы на этом можно и успокоиться. Но я же ж извращенец, мне этого мало. Я хочу не просто подключить модем к серваку, а стать владычицей морскою “закинуть” его вовнутрь QEMU/KVM-виртуалки. В принципе, можно потанцевать с бубном и попробовать сделать это “прям щас”. Но мой модем помимо режима QMI умеет ещё Direct IP, при котором не надо запускать никакого QMI-драйвера. Поэтому я пошёл дальше.

Сперва попросил уважаемого Раздача интернета с 3G модема в локальную сеть в Linux / Хабрrustedowl разобраться как именно переключить модем в другой режим. Сложность там в том, что у данного устройства есть два разных набора AT-команд. Один лоховский универсальный, который является стандартным для любых UMTS-устройств. А второй – пацанский расширенный, для того чтобы можно было трогать модем за яйца крутить всякие хитрые инженерные параметры. Спустя какое-то время поспели вот такие заклинания:

Где набор символов “A710” является… паролем. Дабы всякие ничтоже сумнящиеся не совали свои шаловливые ручки куда не просят. И что сцуко характерно, энтот пароль в официальной документации к хитропопому прибору напрочь отсутствует. Он был найден на бескрайних просторах интернета и подходит к большинству модемов от данного производителя (Sierra Wireless). Параметр второй команды – собственно режим. “68A2” – это QMI, “68A3” – Direct IP. Данные значения актуальны только для данной модели (MC7710). Но в любом случае будет очень кстати лишний раз свериться с документацией чтобы не напортачить, поскольку операция смены PID является весьма щекотливой и может привести к самым разным последствиям. Третья команда перезагружает мопед.

После перезагрузки супостат перекрашивается яки киллер из GTA2. Он теперь в lsusb виден как “Bus 004 Device 003: ID 1199:68a3 Sierra Wireless, Inc. MC8700 Modem”. Обратите внимание, что поменялся ID оборудования и даже название модели. Раньше он представлялся как MC7710, а теперь внезапно стал MC8700. И драйвер теперь к нему подключился другой:

Также увеличилось количество псевдотерминалов ажно до пяти штук. И несколько изменился набор допустимых AT-команд.

Дальше всё “как обычно”. Находим среди этой пачки “телетайпов” контрольный канал, фиксируем его udev-ом. Точно так же, как и в предыдущем случае, указываем точку доступа (“AT CGDCONT=1,”IP”,”yota.ru””). А вот процесс “дозвона” намного проще: “at!scact=1,1”. Где последняя циферка является номером профиля, указанного в “CGDCONT”. То есть, внутри модема можно создать несколько разных профилей с разными точками доступа и переключаться между ними. Теоретически это может пригодиться если нужно время от времени использовать то “честный” IP от оператора, то “серый”, которые раздаются разными APN. Практически я не знаю случаев, когда такое может реально понадобиться.

Проверить, что “всё хорошо” можно командой “at!scpaddr=1”, где цифра означает номер пресловутого “профиля”. В ответ модем должен откликнуться полученным от оператора IP-адресом.

Но самой главной “плюшкой” режима Direct IP является то, что конкретно Sierr-овские модемы можно настроить на “автодозвон”. Для этого нужно установить профиль по умолчанию: “at!scdftprof=1” и включить автодозвон в этом профиле: “at!scprof=1,””,1,0,0,0“. Теперь после перезагрузки сервера либо отключения-включения питания модема он будет устанавливать линк автоматически. Аллилуйя!

IP-шник на системный интерфейс прилетает как обычно, по DHCP. Однако wwan0 – это всё-таки не ethernet. Попытки объединить его в bridge с другими системными интерфейсами (“brctl addif br0 wwan0“) не увенчались успехом. Для того, чтобы получить беспроводной LTE-линк с честным IP-адресом внутри виртуальной машины, пришлось ещё немного поизгаляться. Как – напишу в третьей части, если когда-нибудь дойдут руки.

Какой вывод можно сделать из вышеописанных половых сношений с модемом умозаключений? Sierra Wireless делает вполне годные железки, которые довольно неплохо поддерживаются Linux-ом. Даже таким консервативным, как Debian. Собратьям по несчастью разуму могу порекомендовать брать устройства, которые понимает драйвер “sierra_net”, ибо при прочих равных секса с ними будет меньше. К сожалению, таковых не так уж и много. Пока что их можно пересчитать по пальцам одной руки. Если кто будет выбирать, вот вам их VID-PID: “0f3d:68a3”, “0f3d:68aa”, “1199:68a3”, “1199:68aa”. Однако имейте в виду, что VID-PID также зависит и от режима работы и может изменяться в результате переключения последнего.

Оцените статью
Huawei Devices
Добавить комментарий