| заметки | linux. сага о 3g модемах
Linux. Сага о 3G USB модемах
Intro
Рассказка как подключить 3G USB модем а Linux’е.
Как обычно для того чтобы найти информацию и разобраться как это
работает потребовалось довольно много времени. Показалось разумным
сжато записать в копилку.
Как это работает (разборки со «свистком»)
Основная идея большинства таких модемов в том, что с одной стороны они
используют подписку на услугу оператора связи (SIM карточка, UMTS
сети),а с другой стороны стыкуются с обычным компьютером через
USB. Такие модемы часто называют «свистками» за внешнее сходство, но
в принципе они достаточно нормально работают.
Некоторые модемы, которые продаются вместе с пакетом услуг могут быть
залочены на работу с конкретным оператором, это значит, что поставить
SIM карточку другого оператора так просто не получится (разлочка
возможна, но дело не простое и не гарантирующее 100% результат).
После подключения к компьютеру модем прикидывается внешним CD-ROM, на
котором есть софтина для работы. Конечно чаще всего только под винюки,
хотя бывают и исключения, например Nokia CS-15 содержит все
необходимое для работы Linux. Я расскажу про CS-15, но в том же Huawei
все абсолютно идентично.
Для перевода модема в режим именно модема можно вручную использовать
usb_modeswitch или же использовать udev. Во втором случае при
подключении «свистка» он будет автоматически переключаться в режим
модема.
Запуск через usb_modeswitch
Нужен usb_modeswitch, который берем отсюда.
Далее создаем файл конфигурации /etc/usb_modeswitch.setup:
# # Nokia CS-15 # # Contributors: Razvan Dragomirescu, Antti Turunen # DefaultVendor= 0x0421 DefaultProduct= 0x0610 MessageEndpoint=0x01 MessageContent="5553424312345678000000000000061b000000020000000000000000000000" |
Я утащил этот
файл отсюда.
Для Huawei
можно сюда заглянуть.
Идея в том, что для некого vendor’а и model (Nokia CS-15 =
0x0421-0x0610) нужно заслать некую последоветельность байт
и тогда как по мновению палочки в системе появится новое устройство.
Говорим:
и создаем searial устройство:
# insmod usbserial vendor=0x421 product=0x612 maxSize=4096 ^^^^^^^^^^^^^^^^^^^^^^^^^^ те же самые значения |
После этого syslog появится нечто вроде (для devfs это будет /usb/tts/0):
Generic converter now attached to ttyUSB0 |
Затем можно сказать (если устройства нет в /dev/)
# mknod /dev/usb/ttyUSB0 c 188 0 |
и все в порядке — имеем реальный модем.
Вышеописанный способ единственный на дистрибутивах без udev
(например перешитый DIR-320), но работает на ура.
Запуск через udev
Как сказано выше есть другой способ запуска через настройку правил
udev. К Нокии, как уже говорил,
прилагается все необходимое.
При установке пакета в набор правил udev добавляется
/etc/udev/rules.d/25-nokia-zerocd.rules (символы показаны для
наглядности, на самом деле нужно писать одной строкой!):
Скрипт nokia-testcd проверяет версию «CD-ROM» и если все ok, то дает
добро на переключение в режим модема.
После перезагрузки правил udev
# udevadm control reload_rules |
Syslog:
kernel: [32213.396571] usb 5-7: USB disconnect, address 4 kernel: [32218.312033] usb 5-7: new high speed USB device using ehci_hcd and address 5 kernel: [32218.444957] usb 5-7: configuration #1 chosen from 1 choice kernel: [32218.445721] usb 5-7: New USB device found, idVendor=0421, idProduct=0612 kernel: [32218.445727] usb 5-7: New USB device strings: Mfr=2, Product=1, SerialNumber=3 kernel: [32218.445730] usb 5-7: Product: Nokia Datacard kernel: [32218.445732] usb 5-7: Manufacturer: Nokia kernel: [32218.445734] usb 5-7: SerialNumber: 0.0.1 kernel: [32218.769537] cdc_acm 5-7:1.1: ttyACM0: USB ACM device kernel: [32218.769995] cdc_acm 5-7:1.3: ttyACM1: USB ACM device kernel: [32218.770247] usbcore: registered new interface driver cdc_acm |
Модем готов к работе.
В результате всех манипуляций мы получили новое serial устройство
ttyUSB0 или ttyACM0 (ttyACM1 не интересует).
Что дальше?
Чтобы не возиться с вводом PIN кода всякий раз проще его отключить,
вставляем SIM карточку в любой телефон и снимаем блокировку. В
принципе можно сделать ввод PIN’а при дозвонке, добавив команду
AT CPIN=»1234″ (1234 = PIN) в скрипт дозвонки.
Врубаем модем, запускаем терминальную программу, например minicom,
указываем наше устройство (/dev/ttyACM0 или /dev/ttyUSB0). Скорость и flow
control по барабану.
AT OK AT COPS=? ^^^^^^^^^ поиск операторов может занять пару минут COPS: (1,"mts","mts","23091",2),(1,"Beeline","beeline","24398",2)... OK |
Выбираем нашего провайдера:
Если все прошло удачно, светодиод поменяет цвет (у Nokia CS-15 с красного на
голубой).
Необходимо отметить, что при слабом уровне сигнала со станции поиск
может закончиться неудачно, поэтому можно сразу попробовать выбрать оператора (если известно
имя сети, конечно).
Еще один ньюанс есть в установке так называемого APN, параметры можно
спросить у оператора. К примеру, для эстонского EMT нужно будет сказать:
AT CGDCONT=1,"IP","internet.emt.ee" OK |
Если оператор не использует APN, то все записанные значения
игнорируются.
Если APN не указан, но используется оператором, то все будет внешне нормально, но после дозвонки
ppp будет разрывать соединение.
После выключения модема настройка на оператора и APN сохраняются.
Теперь имеем обычный модем, на котором нужно просто поднять PPP.
Создаем /etc/ppp/peers/3g:
connect "/usr/sbin/chat -v -f /etc/chatscripts/3g -T *99#" /dev/ttyACM0 921600 noipdefault defaultroute persist noauth updetach novj nodeflate replacedefaultroute |
И /etc/chatscripts/3g (вот сюда можно прикрутить ввод PIN):
ABORT BUSY ABORT VOICE ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "NO DIAL TONE" "" ATZ OK ATDT*99# CONNECT "" |
Осталось сказать магическое заклинание
и спокойно юзать мобильный интернет.
Удачноко коннекта!
Tags:debianlinuxUSBppp
Назад
Подготовка ядра
Устанавливаем все необходимые пакеты:
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
Подключение 3G модема к компьютеру (Linux / Windows)
Модем должен подключаться к компьютеру без каких бы то ни было удлиннителей или пассивных хабов. В принципе, возможно — через активный хаб. Но если не через активный хаб, то только напрямую в разъемы USB, распаянные на материнской плате. В частности, это означает, что разъемы USB в передней части компьютера [речь идет о стационарных компьютерах] не подходят, модем должен втыкаться только сзади.
1 Подключение модема к компьютеру с linux
Теперь мы первым делом попробуем подключить модем к компьютеру с linux, на котором впоследствии будет установлен (а возможно, что уже установлен) asterisk. Вы можете воспользоваться физическим компьютером для непосредственной установки linux, либо установить программу для работы с виртуальными машинами и установить linux в виртуальной машине.
2 Проверка наличия устройств ttyUSB*
Теперь давайте проверим, появились ли устройства ttyUSB в Linux. Для этого выполните команду:ls -la /dev/ttyUSB*В случае, если устройства появились, Вы увидите строки вида:/dev/ttyUSB0/dev/ttyUSB1… или/dev/ttyUSB_utps_diag/dev/ttyUSB_utps_modem/dev/ttyUSB_utps_pcui
Если Вы увидите сообщение вида:ls: cannot access /dev/ttyUSB*: No such file or directoryэто означает, что таких файлов не появилось.
Однако, тут возможны варианты: файлы могут называться ttyACM. Чтобы найти такие устройства, выполните команду:ls -la /dev/ttyACM*
Если устройства ttyUSB* или ttyACM* есть, можете смело пропустить множество других пунктов и переходить сразу к пункту 5 данной статьи.Если устройств нет, значит драйвер модема не установлен, и необходимо сначала подробно разобраться с тем, какой модели этот модем, в каком режиме он находится и так далее. Для того, чтобы узнать все это, и решить возникшие проблемы, читайте ниже.
Сбор информации о модеме
Всю предварительную информацию о 3g модеме мы соберем в операционной системе Microsoft Windows, поскольку в ней, даже если модем находится в режиме «составное устройство», к нему можно посылать AT команды, и, тем самым, переводить его из режима в режим безо всяких сложностей. Если Вы подключаете 3G модем к этому компьютеру впервые, см. Приложение 2 «Работа с 3g модемом в Windows».
Нам необходимо собрать следующую информацию о модеме:
- Модель модема — чтобы узнать, поддерживается ли модель модулем chan_dongle (и сможет ли модем работать с asterisk).
- Версия прошивки — с той же целью, что и пункт 1, кроме того, можно узнать возможность обновления прошивки (проверив это на сайте изготовителя).
- Поддержка голоса модемом — чтобы при необходимости, включить поддержку голоса или перепрошить модем.
- Текущий режим работы модема.
- Текущие vid и pid модема — для идентификации устройства в linux (особенно если у Вас имеются несколько подключенных 3G модемов).
- vid и pid модема в режиме «только модем» — чтобы указать их для команды usb_modeswitch в linux.
Установка и настройка 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
1 Модель модема
Модель модема может быть написана как на самом модеме (рядом с USB разъемом, на задней стенке модема, либо под крышкой рядом с раъемом для SIM карты), так и может быть получена с помощью AT-команды:ATIЭту команду нужно отправить на модем.
2 Версия прошивки
Версию прошивки 3g модема можно узнать с помощью AT-команды:ATIЭту команду нужно отправить на модем. Как отправлять AT-команды на 3G модем в Windows, см. Приложение 2 «Работа с 3g модемом в Windows». Узнать подробнее о команде ATI Вы можете в Приложении 1 «AT команды для 3g модемов».
3 Поддержка голоса модемом
Вы сразу же (до начала любых действий с модемом) можете определить, поддерживает он голосовые вызовы (и решить для себя, нужно ли перепрошивать модем и т.д.). Определить поддержку голоса 3g модемом можно, отправив AT-команду:AT^CVOICE=?Эту команду нужно отправить на модем.
Вы также можете попробовать активировать поддержку голосовых вызовов в 3g модеме. Небольшое введение: голосовые функции могут быть отключены на низком уровне (не предактивированы), на более высоком (предактивированы, но при звонках с модема ничего не слышно), и на уровне пользовательского софта (так называемых дашботов), когда звонки с модемов поддерживаются, но в программке от МТС, Билайна или другого оператора просто нет соответствующей вкладки для набора номера и совершения звонков.
В случае, если голосовые функции отключены на низком уровне, необходимо производить перепрошивку и/или разблокировку модема.Если же функции голосовых звонков предактивированы, то можно воспользоваться AT командой AT^CVOICE для включения голосовых звонков.
Узнать подробнее о команде AT^CVOICE Вы можете в Приложении 1 «AT команды для 3g модемов»..В случае, когда в программе от Вашего оператора просто нет соответствующей вкладки для набора номера — ничего делать не нужно, мы будем звонить, используя собственное ПО (chan_dongle).
4 Режим работы модема
Возможно, что Вы начали читать эту статью, уже проведя какие-либо эксперименты с 3g модемом. Или же (по разным причинам) Ваша версия Windows или Linux при подключении модема сразу же (автоматически) переводят его в другой режим (отличающийся от режим по умолчанию) — например, сразу при первом же подключении Ваш модем уже может быть в режиме «только модем».
Для чего нужно определить текущий режим работы 3g модема? Дело в том, что в разных режимах модем имеет разные vid и pid. Например, модем Huawei 1550:в режиме по умолчанию (AT^U2DIAG=255) vid=12D1, pid=14AC;в режиме «модем CDROM» (AT^U2DIAG=1) vid=12D1, pid=1003;в режиме «только модем» ( AT^U2DIAG=0) vid=12D1, pid=1001;
Чтобы устранить эти неясности, Вам необходимо определить, в каком режиме на данный момент работает Ваш модем. Для этого используется AT-команда:AT^GETPORTMODEи (в дополнение к ней) AT команда:AT^U2DIAG?Узнать подробнее об этих командах Вы можете в Приложении 1 «AT команды для 3g модемов».
Как подключиться в Windows к модему, чтобы вводить AT команды, см. Приложение 2 «Работа с 3g модемом в Windows». Обратите внимание: эти команды могут срабатывать не для всех моделей 3G модемов. Например, модель Huawei E1550 не понимает ни «AT^GETPORTMODE», ни «AT^U2DIAG?».
5 Текущие vid и pid модема (в режиме по умолчанию)
Узнать текущие vid и pid можно в windows сразу после подключения модема (и установки драйверов 3g модема), когда модем находится в режиме «составное устройство». О том, как это сделать, написано в Приложении 2 «Работа с 3g модемом в Windows».Запишите найденные значения для себя как DefaultVendor (vid) и DefaultProduct (pid).
6.1 Перевод 3g модема в режим «только модем»
Для того, чтобы перевести 3g модем в режим «только модем», достаточно послать ему AT команду:AT^U2DIAG=0илиAT^SETPORT=»A1,A2;1,2,3″(зависит от модели модема)Узнать подробнее об этих командах Вы можете в Приложении 1 «AT команды для 3g модемов».
После ввода этих команд для смены режима работы модема необходимо его физически отключить от компьютера, и, сделав паузу в несолько секунд, подключить снова.
Теперь убедитесь, что модем находится в режиме «только модем»:
- Сделайте паузу для того, чтобы Windows установила драйверы для модема, находящегося в другом режиме работы.
- Проверьте, что отсутствует виртуальный CDROM дисковод, который обычно появляется при подключении модема.
- Проверьте, что отсутствует съемный диск (SD-кардридер), который обычно появляется при подключении модема.
- Для полной уверенности, что модем находится в нужном режиме, выполните AT команду для определения режима работы 3g модема:
AT^GETPORTMODE
или:
AT^U2DIAG?
Узнать подробнее об этих командах Вы можете в Приложении 1 «AT команды для 3g модемов«. Как подключиться в Windows к модему, чтобы вводить AT команды, см. Приложение 2 «Работа с 3g модемом в Windows«.
6.2 Текущие vid и pid модема (в режиме «только модем»)
Текущие vid и pid можно узнать так же, как и в пункте 2.5 (см. Приложение 2 «Работа с 3g модемом в Windows»). Обратите внимание: новые vid и pid должны отличаться от тех, которые были в режиме «составное устройство»! Точнее, скорее всего, будет отличаться только pid модема.Запишите их значения для себя как TargetVendor (vid) и TargetProduct (pid).
Перевод 3G модема в режим «только модем» в Linux
Теперь нам необходимо перевести 3G модем в режим «только модем» в системе linux, чтобы в следующих шагах настроить chan_dongle и asterisk для работы с этим модемом.
Установка модуля ядра и 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
1 Проверка режима работы модема в Linux
Для начала необходимо проверить, сразу после подключения модема, в каком режиме он находится. Для этого (сделав паузу в несколько секунд после подключения) выполните команду:lsusbПодробнее об этой команде Вы можете прочитать в Приложении 3 «Работа с 3g модемом в Linux».
Сравните vid и pid Вашего 3g модема c DefaultVendor (vid) и DefaultProduct (pid), полученные Вами в системе Windows. Если они совпадают, значит модем находится в режиме по умолчанию, и его надо будет сменить на режим «только модем». Если же vid и pid совпадают с TargetVendor (vid)
2 Перевод 3g модема в режим «только модем» в Linux
Для смена режима работы Вашего 3g модема выполните следующую команду
usb_modeswitch -v DefaultVendor -p DefaultProduct -V TargetVendor -P TargetProduct -M «16-ричная строка инициализации модема»
Где:DefaultVendor и DefaultProduct — это vid и pid, определенные нами в Windows для модема в режиме «составное устройство»;TargetVendor и TargetProduct — это vid и pid, определенные в Windows для модема в режиме «только модем»;16-ричная строка инициализации — это строка, которая будет передана в модем для смены режима его работы.
Например:usb_modeswitch -v 12d1 -p 155b -V 12d1 -P 1506 -M «55534243123456780000000000000011062000000100000000000000000000»
Самое сложное в этом — определить тут 16-ричную строку инициализации, которую нужно послать модему. Можно попытаться найти ее через интернет, подробнее см. Приложение 3 «Работа с 3g модемом в Linux».Подробнее о команде usb_modeswitch см. Приложение 3 «Работа с 3g модемом в Linux».
Автоматический перевод 3g модема в режим «только модем» в Linux при перезагрузке компьютера
Обратите внимание: если Вам успешно удалось перевести Ваш 3g модем в режим «только модем» в Linux, то это еще не значит, что он теперь всегда будет оставаться в таком режиме.После физического извлечения из компьютера (и последующего подключения) модем снова окажется в режиме «составное устройство» (если при первом подключении к Linux он был в этом режиме).
Внимание! Не торопитесь автоматически переводить модем в режим «только модем»! Вам может понадобиться установка драйверов модема [драйверов для Linux], находящихся на виртуальном компакт-дисководе модема! Подробнее об этом см. следующую часть статьи.
Рассмотрение настройки udev / usb_modeswitch для автоматизации смены режимы работы модема выходит за рамки этой статьи. Информацию Вы можете найти в интернете.
Установка 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
Поиск и подключение/создание устройств /dev/ttyUSB*
Обратите внимание: переведя 3g модем в режим «только модем», Вы можете как получить сразу, та и не получить устройства /dev/ttyUSB0, /dev/ttyUSB1 и т.д.! Разумеется, эти устройства могут сразу же автоматически появиться в системе, однако это не обязательно так.
1 Проверка наличия устройств ttyUSB*
Для начала давайте проверим, появились ли эти эти устройства в Linux. Для этого выполните команду:ls -la /dev/ttyUSB*В случае, если устройства появились, Вы увидите строки вида:/dev/ttyUSB0/dev/ttyUSB1…
или/dev/ttyUSB_utps_diag/dev/ttyUSB_utps_modem/dev/ttyUSB_utps_pcui
Если Вы увидите сообщение вида:ls: cannot access /dev/ttyUSB*: No such file or directoryэто означает, что таких файлов не появилось.
Однако, тут возможны варианты: файлы могут называться ttyACM. Чтобы найти такие устройства, выполните команду:ls -la /dev/ttyACM*
Если устройства ttyUSB* или ttyACM* есть, можете смело пропустить оставшиеся шаги на этом этапе.Если устройств нет, значит драйвер usbserial не сработал для Вашего модема, и теперь необходимо производить настройку вручную.
2 Ручное создание/подключение устройств /dev/ttyUSB*
Для ручного подключения USB 3G модема в качестве COM порта (именно этот режим обеспечивает появление устройств /dev/ttyUSB*) выполните следующую команду:modprobe -v usbserial vendor=0xTargetVendor product=0xTargetProductГде TargetVendor и TargetProduct — это vid и pid модема, которые были назначены ему в режиме «только модем».
например:modprobe -v usbserial vendor=0x12d1 product=0x1506
В случае, если команда выполнена успешно, Вы увидите сообщение типа:insmod /lib/modules/2.6.32-431.17.1.el6.i686/kernel/drivers/usb/serial/usbserial.ko vendor=0x12d1 product=0x1506
Если же никаких сообщений не появилось, или выдано сообщение об ошибке, то скорее всего, подключить USB как COM порт не удалось.
После выполнения этой команды проверьте, пояились ли устройства ttyUSB*:ls -la /dev/ttyUSB*В случае, если устройства появились, Вы увидите строки вида:/dev/ttyUSB0/dev/ttyUSB1…
Подключение
Запускаем демон:
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 за предоставленный линк на этот пак (месяц назад искал какую-либо информацию — ничего не нашел).
Вместо послесловия
Теперь у нас в кладовке или на шкафу тихо жужжит маленький сервер с USB Wi-Fi адаптером, можно насладиться проделанной работой. Но не тут то было! В современной многоэтажке нашпигованной точками доступа со всех сторон идут помехи. Чтобы выбрать канал я советую изучить эфир программой
Вот так выглядел выбор канала у меня вечерком у окошка:
Запускаем драйвера. wi-fi, просто wi-fi
Если вы обычный пользователь, и хотите просто подключаться к имеющимся Wi-Fi сетям, то на Debian 6 (и других подобных убунтариях) вам нужно сделать следующее:
Запускаем драйвера. сильные духом
Итак, настойчивый хабраюзер, несмотря на скепсис признанных гуру, мы все еще хотим запустить USB Wi-Fi в режиме точки доступа.
Для начала два простых совета по выбору адаптера:
Теперь вычеркнем все рекомендации из раздела «просто Wi-Fi»! 90% блогов в интернете забиты этой ерундой. Мы будем отключать драйвера старого стиля и запускать новые, которые ни черта не работают из коробки даже в новейших версиях ядер, а значит пришло время компиляции.
Как подключить 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 USB модема нужно воткнуть модем в USB разъем
компьютера и через 1-2 минуты (необходимо некоторое время на то, чтобы модем
был опознан системой и подключен) кликнуть на значке «Сеть» в трее и выбрать
пункт меню «Edit connections» (иллюстрация
выше). В результате откроется окно, в котором
нужно выбрать вкладку «Mobile broadband»
и там нажать кнопку «Add»:

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

Примечание.
Если вкладка «Широкополосный доступ (Mobile
broadband)» недоступна или в первом окне
настройки не определена модель модема, тогда:
нужно добавить новую строку в файле /lib/udev/rules.d/40-usb_modeswitch.rules
в которой прописать vid и pid вашего модема. Эти данные вы можете
узнать через консоль командой lsusb.
Во втором окне выбрать страну и нажать кнопку
«Continue»:

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

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

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

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

В этом окне можно отключить опцию «Allow roaming …»
(роуминг) и включить опцию «Connect automatically».
Готово. Теперь, для того чтобы подключиться к Интернет достаточно
кликнуть на значке «Сеть» и в меню выбрать название созданного соединения:

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

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

P.S.
По моим длительным наблюдениям в Ubuntu
«сотовый» Интернет работает немного быстрее чем в Windows.
Бывает даже и такое, что в Windows соединения
вообще нет (оно устанавливается но не работает), а в
Ubuntu все нормально.
Если у вас возникли проблемы с подключением читайте другую статью —
установка и настройка 3G USB модема на Ubuntu
Linux, в ней более подробно описан процесс установки и настройки.
Иван Сухов, 2021 г.
Лирическое отступление
Так получилось, что ковырясь с hostapd я потерял всякую надежду запустить свой
Dlink DWA-140
на чипсете
Ralink 3070
. Мне совершенно точно удалось запустить его в работу без шифрования, но при включении шифрования или я допускал ошибку, или действительно этот модуль плохо взаимодействует с ядерными модулями шифрования ( на форумах я видел описание проблемы и одна из версий решения указывала на модули шифрования ecb и arc4).
Финальный аккорд с включением шифрования я уже реализовал на Netgear WNA1000 на чипсете Atheros 9170, который действительно лучше работает и корректно подгружает все модули шифрования.
Теперь я думаю что можно таки было запустить Ralink с шифрованием и призываю поставить жирную точку в том вопросе счастливых обладателей DWA-140. Пишите о своих успехах или проблемах в комментариях, попробуем разобраться вместе.
Предисловие
В последние годы Wi-Fi система в ядре Linux подверглась серьезной доработке. Идея была очень простой — разбить подсистему на модули, вынести повторяющиеся процедуры MAC уровня в отдельные модули ядра и отдельные демоны и переписать заново драйвера физических устройств. Так появилась пачка компонентов, про которые можно почитать на сайте разработчиков:
Страшная тайна firmware!
Кажется все. Запускаем
modprobe
… и полное разочарование! В логах опять ругается на firmware. Дело в том что новые драйвера имеют и фирмваре другое. Для Ralinka идем сюда:
Танцы с бубном. hostapd
Перед началом настройки конфига нужно знать три важные вещи.
1. Внутри этого демона сидит маленький и вредный поганец, который непредсказуемым образом меняет состояние интерфейса в процессе запуска/перезапуска. Иногда wlan0 исчезает, иногда у него исчезает IP, иногда помогает ifdown ifup, иногда не помогает. Ralink в таких условиях совсем плох, Атерос чуть стабильнее.
2. Все настройки сначала проверяем без шифрования! И не забываем проверять dhcpd, который тоже любит умирать при перезагрузке интерфейсов. Вот почему Linux USB = ненависть! Лучше настройку hostapd проводить без dhcp, с фиксированным IP адресе на клиенте, и лишь в конце перейти к настройке dhcpd.
3. Для проверки всегда сначала запускаем hostapd -d /etc/hostapd/hostapd.conf c диагностикой в консоль.
