The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Настройка подключения к Comstar через USB WiMAX модем 2501 в Linux
Предисловие

Когда-то давно купил себе данный модем (на чипсете Beceem BCS200) с тарифом без
абонентской платы, в качестве резервного канала, с тех пор пользовался от
случая к случаю, тем более тариф тому способствовал. А тут недавно мой
проводной провайдер отвалился на целый день и решил проверить, а не появилось
ли решения под Linux? Одно дело компьютер с WiMax, а другое дело домашний
роутер обеспечивающий несколько компьютеров интернетом. Что интересно в сети
уже с 2010 года лежат готовые решения но для других провайдеров, а для
Комстар-а нет, либо не нашёл. Да и сам провайдер не заботиться о Linux
пользователях. Попадались решения и для других модемов, но как-то не возникло
желания покупать ещё один, когда этот достался по акции.

Введение

На одно из решений наткнулся здесь. Там кто-то в комментариях очень похожий
конфиг для другого провайдера выложил. Информацию по настройке параметров для
Комстар частично взял отсюда. Если кто-то знает где лежат параметры сети для
Yota, сообщите, размещу ссылку. Там же можно по ссылке скачать необходимый
сертификат (ca1.cer), либо вытащить его из Comstar Connection Manager (далее
CCM), но об этом ниже.


Подготовка

Нам понадобится:

1. Компьютер с Linux, у меня был c Fedora 15 (x86), пробовал модули собирать и на x86_64.

2. Как советует автор одного из решений, нужно установить пакеты
linux-source linux-headers openssl unzip dos2unix patch gcc. Возможно у вас они
будут называться немного иначе (у меня первые два такие kernel-debug
kernel-headers), и это возможно не полный список.\

3. Самое главное Sprint 4G Depelopment Pack, по данной ссылке всегда
последняя версия, где взять предыдущие не знаю. Кстати, этот пакет, позволяет
экспериментировать и под Windows, а затем можно немного отредактировав,
перенести настройки в Linux, что я и сделал, так как не было уверенности в
правильной работе драйверов под Linux. Модуль ядра, судя по коду, должен
поддерживать VID=0x198F PID=0x0300, 0x0210, 0x0220, 0x15E, 0x015F, 0x0160. Под
Lunix для своего модема VID и PID можно посмотреть командой lsusb,
предварительно вставив его в USB.

Скачиваем Sprint 4G Depelopment Pack, распаковываем его в любой каталог.
В корне каталога Sprint4GDeveloperPack-1.6.1.2.2 (у вас может оказаться уже
другая версия), находим там файл install.sh и немного его поправим.

Если не хотите потом вводить путь к исходникам ядра, это можно сделать до
запуска инсталлятора, отредактировав соответствующую строчку в файле install.sh

   KERNEL_SOURCES=${5:-/usr/src/linux};

На случай если в директории /usr/src/kernels/ будет несколько версий исходников
ядра, уточнить текущую версия ядра можно командой uname -r или например так, в
данном случае, версия ядра, будет подставляться автоматически:

   KERNEL_SOURCES=${5:-/usr/src/kernels/`uname -r`};

Ещё изменил параметр POWER_SAVE на Off, это на ваш вкус, работало в обоих случаях.

   POWER_SAVE_On_Off=${12:-On}

Установка

Запускаем install.sh
На вопрос о лицензии нажимаем "y", далее если вы отредактировали install.sh
жмём Enter до вопроса о корректности настроек, там надо нажать "y", после чего
начнётся копирование файлов и сборка пакета. Ждём результата либо ошибок. У
меня если и возникали ошибки, только из-за нехватки того или иного пакета.
После ошибки опять запускаем, после стандартной процедуры вопросов появиться
ещё один, тут выбираем "A" затем Enter.

После сборки, нужно проверить загрузку и работу модуля, вставьте модем в USB
разъём, затем выполните:

   modprobe drxvi314

Теперь посмотрим появился ли у нас ещё один интерфейс

   ifconfig -a

Если не помните какие у вас были интерфейсы, выгрузите модуль и сравните вывод

   rmmod drxvi314
   ifconfig -a

Запомните имя интерфейса, он понадобиться в файле конфигурации.


Конфигурация

Если модуль ядра загружается и работает, его можно вставить в "автозагрузку" в
конец файла /etc/rc.d/rc.local, если такого нет, создайте. Понадобиться
сертификат из CCM, если не хотите выковыривать, можно скачать но с другим именем
здесь. Благодаря этой
ссылке и были подобраны правильные параметры для конфига. В CCM надо найти файл
ca1.cer и конвертировать его командой

   openssl x509 -inform DER -in ca1.cer -outform PEM -out ca1.pem

положите его куда хотите, например чтоб директория зря не пропадала в 
/etc/Sprint4G/ca1.pem

Туда же положим и конфиг /etc/Sprint4G/wimaxd.conf

   # Частотный план, не уверен что стоит писать сюда лишнее, 
   # иначе модем в автоматическом режиме может долбиться к другому провайдеру.
   BandwidthMHz                    10
   CenterFrequencyMHz              2540 2550 2560

   AuthEnabled                     Yes
   EAPMethod                       0
   UserIdentity                    'ваш_логин@wimax.comstar-uts.ru'
   UserPassword                    'ваш_пароль'

   ValidateServerCert              Yes
   CACertPath                      '/etc/Sprint4G/'
   CACertFileName                  '/etc/Sprint4G/ca1.pem'

   TTLSAnonymousIdentity           'Anonymous@wimax.comstar-uts.ru'
   TLSDevicePrivateKeyPassword     ''
   PrivateKeyPasswordFormat        'Ascii'

   AuthenticationTimeoutSec          10
   InvertMSKByteOrder                No
   AlwaysIncludeTLSLength            No

   EAPFragmentMaxLength              1398
   EAPPollingLoopIntervalMs          50

   TLSDevicePrivateKeyPassword     ''
   InnerNAIChange                  No

   NetworkSearchTimeoutSec         60
   LPSearchInShutDownEnabled       No
   NetworkEntryTimeoutSec          10
   NEToHighestCINRBaseStation      No

   BeceemEngineFileName            '/usr/lib/libengine_beceem.so'

   AuthEthernetToRADIUS              No

   # Автоподключение
   AutoReConnectEnabled              Yes
   AutoReDisconnectEnabled           No
   SkipNetSearch                     No
   AutoReConnectIntervalSec          1
   AutoReDisconnectIntervalSec       20
   LinkStatusRequestPeriodSec        2

   # Скрипт выполняется после установки соединения
   IPRefreshCommand                '/etc/Sprint4G/wimaxup.sh'
   # Можно заменить на такой вариант, естественно указав ваш интерфейс
   #IPRefreshCommand               'dhclient eth0'
   # Разрешает выполнять скрипт
   NetEntryIPRefreshEnabled        Yes
   # Вроде должен убивать dhclient, у меня не работало
   TerminateDHCPClient             No

   FirmwareFileName                  '/lib/firmware/macxvi350.bin'
   ConfigFileName                    '/lib/firmware/macxvi.cfg'

   # Управление логами
   #CSCMDebugLogLevel              4
   CSCMDebugLogLevel              1
   #AuthLogLevel                   5
   AuthLogLevel                   1
   AuthLogFileName                '/tmp/CM_Auth.log'
   AuthLogFileMaxSizeMB            1
   EngineLoggingEnabled            Yes
   EngineLogFileMaxSizeMB          2
   EngineLogFileName               '/tmp/CM_Engine.log'

Немного автоматизации не помешает, не забудьте заменить eth0 на свой интерфейс,
который определили при тестировании модуля.

/etc/Sprint4G/wimaxup.sh

   #!/bin/bash
   varif=eth0
   res=`ifconfig $varif | grep -c "UP"`
   if [ ! "$res" == "0" ]; then
      ifdown $varif
   fi
   ifup $varif

Проверка и использование

Проверку лучше проводить в режиме полной отладки, для выявления ошибок

   CSCMDebugLogLevel 4
   AuthLogLevel 5

Необходимо запустить демон в отладочном режиме и его клиент в разных консолях
Демон (Сервер)

   wimaxd -D -c /etc/Sprint4G/wimaxd.conf

консоль клиента, через неё будем управлять демоном (Сервером).

   wimaxc -i

Набор возможных команд консоли можно узнать запросом help.
В текущем конфиге, если есть сигнал, сразу начнётся попытка подключения, этого
нам не надо, отредактируем секцию "Автоподключение". Так как автоподключение
отключено, подключаться надо в ручном режиме:

Сначала ищем базовые станции

   > search

Если найдены несколько, подключаемся с наилучшим сигналом, или к единственной, например

   > connect 0

Для просмотра статуса соединения, нужно выполнять команды status, linkstats.
Так команда status при установленном соединении содержит строчку "LINKUP ACHIEVED".

IP адрес можно менять перезапрашивая, не разрывая соединение, и установка
самого соединения не значит автоматического получения адреса, настройки
маршрутов и др., этим должен заниматься dhclient.

Для корректного выхода и выгрузки сервера надо сначала выключить модуль

   > shutdown

Затем остановить и выгрузить сервер (демон)

   > server stop

Если выгрузите сервер и не остановите работу модуля командой shutdown,
соединение не будет разорвано и продолжит работать само по себе потребляя трафик.

Для нормальной работы, отключим отладку в логах

   CSCMDebugLogLevel 1
   AuthLogLevel 1

и запустим сервер в качестве демона

   wimaxd -c /etc/Sprint4G/wimaxd.conf

Нормальных средств управления нет, хотя пишут что в сети гуляют какие-то
скрипты. Но есть исходники клиента и сервера, при желании можно разобраться.
Так сервер открывает порт 5200, если туда подключиться telnet-ом, можно увидеть
текстовое приглашение, правда текстовые команды он от вас принимать не будет.

Безопасность

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

Нюансы, Недостатки, Ошибки

После обновления ядра, понадобиться пересобирать модуль.
Модуль ядра иногда работает не стабильно, например на Fedora 14 приходиться его
выгружать, вставлять устройство загружать или в ином порядке плясать с бубном,
пару раз система зависала, хотя может проблема с железом. На версии Fedora 15,
работает без замечаний.
Если индикатор на модеме гаснет во время поиска сети, либо во время
подключения, скорее всего ему не хватает питания, для исправления ситуации
пришлось использовать USB-HUB с отдельным источником.
Сам модем плохо ловит сеть в помещении, хотя раньше работал, видимо работа сети
стала хуже, работает только у окна.

Сервер (демон) иногда при завершении работы выдаёт ошибку и/или зависает,
приходиться его "убивать".

Иногда если не выгружен dhclient который запускал сервер (демон) для его
интерфейса, то сервер (Beceem Connection Manager Server) может повторно не
запуститься, ругаясь на занятый сокет, приходиться dhclient "убивать" вручную.

После остановки сервера, остаётся "активным" интерфейс, его приходиться вручную
деактивировать ifconfig eth0 down, хотя можно этого и не делать, если не мешает.

Нет возможности или не нашёл, запуска скрипта при отключении, для деактивации интерфейса.
 
23.10.2011 , Автор: desenix
Ключи: wimax, usb, modem, 3g / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Wifi, настройка беспроводного доступа

Обсуждение [ RSS ]
 
  • 1, Аноним, 10:06, 26/10/2011 [ответить] [смотреть все]
  • +/
    Если не хотите потом вводить путь к исходникам ядра, это можно сделать до запуск... весь текст скрыт [показать]
     
  • 2, TwiN, 19:33, 20/11/2011 [ответить] [смотреть все]  
  • +/
    Прошу помощи Очень надо иметь возможность подключаться к разным базовым станция... весь текст скрыт [показать]
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor