воскресенье, 29 ноября 2009 г.

YOпTA!

Настройка WiMax модема Samsung SWC-U200 Под Linux (оpenSUSE 11.1)

Предыстория

Я не консерватор, но редко вношу изменения в то, что работает. И на услугу компании Скартел под забавным именем Yota, вряд ли обратил бы практическое внимание, несмотря на громкие слова вроде 4G и Wimax. Но тут жизнь заставила - я переехал в подмосковье, пусть и в самое ближайшее, но с совершенно прошловековыми интернет услугами. Не буду на них остонавливаться, самое главное, что Yota оказалась лучшим решением.
Правда только теоретически - в зону покрытия мои  аппартаменты в посёлке Дружба входили, но вот беда - на сайте компании, довольно ясно сказано: Модем ... работает под операционными системами Windows XP/Vista и Mac OS X 10.5.х. Ничего против этих операционных систем не имею, но на моём ноутбуке Linux, и хотелось бы его сохранить.
Выход есть

На самом деле, я знал, что драйвер для WiMax модема Samsung SWC-U200, разработанного по заказу  Скартел специально для данного сервиса, под уже существуют. расположен он по адресу  http://code.google.com/p/madwimax/  и на данный момент поддерживает следующие устройства:
  • Samsung SWC-U200
  • Samsung SWC-E100
  • Samsung SWM-S10R (входит в состав нетбука Samsung NC-10)
 Установка и начало работы с сервисом, очень просты. Да. Это я сейчас понимаю. А самому пришлось налететь на определённое количество сельхозинструментов, подвиды которых перечислены в следующем разделе. Кому не интересны эти перепетии, может смело его пропустить и воспользоваться краткой инструкцией в следующем.




Грабли


На различных специализированных форумах присутствует несколько вариантов решения проблемы, но беда в том, что советы даже двухмесячной давности уже устарели. Собственно этот факт и явился причиной этой заметки.
Ну, за дело. Первая проблема, которая в общем таковой не является, это необходимость установки библиотеки  libusb. Взять её можно здесь http://sourceforge.net/projects/libusb/, но в случае с OpenSUSE она присутствует в репозитарии. При конфигурировании, выясняется, что не хватает ещё asciidoc. Ставим из репозитария и снова за пускаем конфигурационный скрипт. Теперь выясняется, что для полного счатья необходима библиотекаdocbook2x-man. она в репозитарии отсутствует, но находиться довольно легко ( http://docbook2x.sourceforge.net/). Но её установка не помогает. Всё равно конфигурационный скрипт жалуется на её тсутствие. Тут очень выжно подумать - нафига она вообще нужна? и сообразить (или, как я - посмотреть в "интернетах")запустить ./configure с ключем --without-man-pages. После этого счастье случиться - драйвер встанет.
Далее, по руклводствам, которые я встречал. следует запускать драйвер командой вида:
/usr/sbin/wimax 
К сожалению результат совсем не удовлетвоителен:
 linux-jjj6:~ # /usr/sbin/madwimax
Device found
detached modem kernel driver
Claimed interface
Allocated tap interface: wimax1
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/wimax1/00:24:91:39:58:6d
Sending on   LPF/wimax1/00:24:91:39:58:6d
Sending on   Socket/fallback
DHCPREQUEST on wimax1 to 255.255.255.255 port 67
DHCPACK from 10.101.152.1
bound to 10.101.155.228 -- renewal in 4297 seconds.


Более того, тот же эффект даёт попытка получить заветный внешний ip с помощью команды dhcpdc -n wimax0:

inux-jjj6:~ # dhcpcd -n wimax0
err, wimax0: timed out
err, wimax0: lease information file `/var/lib/dhcpcd/dhcpcd-wimax0.info' does not exist
warn, wimax0: using IPV4LL address 169.254.217.194
linux-jjj6:~ # dhcpcd -n wimax1
err, wimax1: ioctl SIOCGIFHWADDR: No such device

Некоторую ясность внесло. Выполнение -ifconfig -a:
linux-jjj6:~/madwimax-0.1.1 # ifconfig -a               
eth0      Link encap:Ethernet  HWaddr 00:1B:38:41:A8:45 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:219

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:716 errors:0 dropped:0 overruns:0 frame:0
          TX packets:716 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:209729 (204.8 Kb)  TX bytes:209729 (204.8 Kb)

wimax0    Link encap:Ethernet  HWaddr 00:24:91:39:58:6D
          UP BROADCAST RUNNING MULTICAST  MTU:1386  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2319 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:682 (682.0 b)  TX bytes:397547 (388.2 Kb)

wimax1    Link encap:Ethernet  HWaddr 00:24:91:39:58:6D
          inet addr:10.101.155.228  Bcast:10.101.155.255  Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1386  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:341 (341.0 b)  TX bytes:3630 (3.5 Kb)

wlan0     Link encap:Ethernet  HWaddr 00:13:E8:81:AF:ED
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

wmaster0  Link encap:UNSPEC  HWaddr 00-13-E8-81-AF-ED-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Оказывается запущено сразу два wimax интерфейса.
Всё оказалось совсем просто — wimax отдельной командой запускать не надо, интерфейс подымается сам, после включения модема. Причем это включение лучше делать после установки драйвера. Затем выполняем
dhcpdc -n wimax0
И всё должно работать.

Сухой остаток

* Скачиваем драйвер (http://code.google.com/p/madwimax/ ).
* Разархивируем его в домащнею папку.
*Устанавливаем библиотеки libusb и asciidoc.
*В папке с драйвером выполняем:
 ./configure --prefix=/usr --without-man-pages
  make
  make install
*Теперь подключаем модем, и ждём, когда мигающий оранжевый индикатор станет синим (это значит, что сеть найдена)
*выполняем
 dhcpcd -n wimax0
*PROFIT!!!!

P.S Огромное спасибо авторам драйвера за проделанную работу. Насколько я понимаю, велась она метедом реверс-инжинеринга. В таком случае просто низкий поклон =)

P.S.S Не меньшее спасибо скромному одепту консоли Саше Байраку, без его советов я бы сдался.

Комментариев нет:

Отправить комментарий