The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Настройка подключения к Comstar чер..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Настройка подключения к Comstar чер..."  +/
Сообщение от auto_tips (??) on 26-Окт-11, 10:06 
++ Предисловие

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

++ Введение

На одно из решений наткнулся [[https://www.opennet.ru/openforum/vsluhforumID3/71759.html здесь]]. Там кто-то в комментариях очень похожий конфиг для другого провайдера выложил. Информацию по настройке параметров для Комстар частично взял [[http://forum.yotatester.ru/showthread.php?t=3788 отсюда]]. Если кто-то знает где лежат параметры сети для Yota, сообщите, размещу ссылку. Там же можно по ссылке скачать необходимый сертификат (ca1.cer), либо вытащить его из Comstar Connection Manager (далее CCM), но об этом ниже.


++ Подготовка

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

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

2. Как советует автор [[https://www.opennet.ru/openforum/vsluhforumID3/71759.html одного из решений]], нужно установить пакеты linux-source linux-headers openssl unzip dos2unix patch gcc. Возможно у вас они будут называться немного иначе (у меня первые два такие kernel-debug kernel-headers), и это возможно не полный список.\

3. Самое главное [[http://developer.sprint.com/getDocument.do?docId=101032 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, если не хотите выковыривать, можно скачать но с другим именем [[http://forum.yotatester.ru/showthread.php?t=3788 здесь]]. Благодаря этой ссылке и были подобраны правильные параметры для конфига. В 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, хотя можно этого и не делать, если не мешает.

Нет возможности или не нашёл, запуска скрипта при отключении, для деактивации интерфейса.

URL:
Обсуждается: https://www.opennet.ru/tips/info/2637.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Настройка подключения к Comstar через USB WiMAX модем 2501 в..."  +/
Сообщение от Аноним (??) on 26-Окт-11, 10:06 
Если не хотите потом вводить путь к исходникам ядра, это можно сделать до
запуска инсталлятора, отредактировав соответствующую строчку в файле install.sh

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

как бы навивает что это пятый параметр в командной строке..

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Настройка подключения к Comstar через USB WiMAX модем 2501 в..."  +/
Сообщение от TwiN (ok) on 20-Ноя-11, 19:33 
Прошу помощи!

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

Не могу подключиться к серверу wimaxd в интерактивном режиме:
wimaxc -i
выдает версию сервера и пустую строку:
a@ab:~$ Beceem CM Server Version 1.1.7.0

a@ab:~$

а приглашения (>) нет.

Консоль сервера отвечает:
Got connection 1 from 127.0.0.1
Wcm connection handling thread launched successfully
Socket is 00000006
Client socket 00000006 lock Beceem API: SUCCESS (wait = 0 ms)
SOCKET SEND START:

и тишина

Иногда получается добиться такого:
"
twin@vaio:~$ wimaxc -i -a 127.0.0.1

ERROR: No response from server to '' command in 10.0 s

> status

ERROR: No response from server to 'status' command in 10.0 s
"

Если пытаюсь подключиться еще раз через
wimaxc -i
пишет
Server not found

Мой wimaxd.conf звучит так:
BandwidthMHz                      10
CenterFrequencyMHz                2574
NetworkSearchTimeoutSec           10
LPSearchInShutDownEnabled        No
NetworkEntryTimeoutSec           10
AuthEnabled                       Yes
EAPMethod                         4

UserIdentity                      '~mac~@aksoran.kz'
UserPassword                      ''
TTLSAnonymousIdentity             ''

BEGIN LINUX
CACertPath           '/usr/share/dtv.kz'
END

BEGIN LINUX
CACertFileName                    '/usr/share/dtv.kz/ca.pem'
END

BEGIN LINUX
TLSDeviceCertFileName             '/usr/share/dtv.kz/001ZTEWimax.pem'
TLSDevicePrivateKeyFileName       '/usr/share/dtv.kz/privatkey.pem'
END
PrivateKeyPasswordFormat          'Ascii'

AuthenticationTimeoutSec          10
InvertMSKByteOrder                No
AlwaysIncludeTLSLength            No
EAPPollingLoopIntervalMs          50
FirmwareRSAPrivateKeyEncrypt      No
InnerNAIChange                 yes

BEGIN LINUX
BeceemEngineFileName              '/usr/src/USB_350/Source/CSCM/bin_pc_linux/bin/libengine_beceem.so'
END

AuthEthernetToRADIUS              No
RADIUSIPAddress                   '10.128.47.40'
RADIUSPort                        1812
RADIUSSecret                      'whatever'
AutoReConnectEnabled              Yes

LinkStatusRequestPeriodSec        2

IPRefreshCommand                'echo IP_refresh'

BEGIN LINUX
FirmwareFileName                  '/lib/firmware/macxvi350.bin'
ConfigFileName                    '/lib/firmware/macxvi.cfg'
END

CSCMDebugLogLevel                 4

BEGIN LINUX
CSCMDebugLogFileName              '/tmp/CM_Server_Debug.log'
END
CSCMDebugLogFileMaxSizeMB   1
AuthLogLevel                      5

BEGIN LINUX
AuthLogFileName                   '/tmp/CM_Auth.log'
END

BEGIN LINUX
EnableAuthSysLogPrints              No
END

AuthLogFileMaxSizeMB      1

EngineLoggingEnabled              Yes
EngineLogFileMaxSizeMB      2

BEGIN LINUX
EngineLogFileName                 '/tmp/CM_Engine.log'
END
RADIUSClientLogLevel             0


Пробовал ставить AutoReConnectEnabled              No
и
AuthEnabled                       No

Все равно не могу управлять сервером

Недопонимаю..  

Может где-то можно хотя бы отключить подключение к базовой станции, имеющей наибольший уровень сигнала?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру