Заводим yota wimax на linux openSUSE 10.3

Свершилось!
К моменту этого поста, некий человек buggzbunny выпустил уже вторую(0.0.2) версию своего драйвера madWimax для Samsung SWC-U200.
Надо отдать ему должное за проделанную работу – никакой помощи ни со стороны yota ни со стороны samsung не поступало, даже не было спецификации. Он сам изучал протокол общения с этим девайсом и разбирал вендовый драйвер(реверс-инженеринг). Громадный ему респект.

Опишу подробно как установить этот драйвер и настроить систему для удобной работы с wimax на примере openSuSE 10.3(думаю в других версиях не будет различий).

Окончательно меня на установку сподвигнул пост на хабрахабре.

• Скачиваем libusb-1.0 исходники(дада. именно 1.0. В репах его нет!) и сам MadWimax и распаковываем:
[cc lang=”bash”]
cd /usr/src
wget http://madwimax.googlecode.com/files/madwimax-0.0.2.tar.gz
tar xvf madwimax-0.0.2.tar.gz
wget wget http://puzzle.dl.sourceforge.net/sourceforge/libusb/libusb-1.0.0.tar.bz2
tar xvf libusb-1.0.0.tar.bz2
[/cc]

• Собираем и устанавливаем libusb-1.0(ставить буду в /):
[cc lang=”bash”]
cd /usr/src/libusb-1.0.0
./configure –prefix=/
make
make install
[/cc]

делаем симлинк в /usr/incude
[cc lang=”bash” line_numbers=”false”]
ln -s /usr/src/libusb-1.0.0/libusb /usr/src/libusb-1.0
[/cc]
На этом с библиотекой законченно.

• Собираем MadWimax
[cc lang=”bash”]
cd /usr/src/madwimax-0.0.2/
make
[/cc]

Если всё прошло хорошо, в папке появиться сам драйвер – wimax. Если какие то ошибки смотрите внимательно почему.
Для удобства сделаем(почти как в статье на хабре):
[cc lang=”bash”]
cd /root/
mkdir wimax
cd wimax
ln -s /usr/src/madwimax-0.0.2/wimax /root/wimax/wimax
[/cc]

• Создаём вспомогательные файлы(дальше – фактически копипаст с хабрахабры. опять же почти..)

Скрипт запуска: /root/wimax/wimax.sh:
[cc lang=”bash”]
#!/bin/sh
/root/wimax/wimax -qd
sleep 10
ip l set dev tap0 mtu 1386
dhcpcd -n tap0 &> /dev/null
[/cc]
Не забываем установить бит выполнения:
[cc lang=”bash” line_numbers=”false”]
chmod +x /root/wimax/wimax.sh
[/cc]
Файл правил для udev, чтоб подхватывал вимакс, отбиндивал и запускал демон at который будет вызывать скрипт запуска: /etc/udev/rules.d/99-madwimax.rules:

# udev rules file for madwimax supported devices
SUBSYSTEM!=”usb|usb_device”, GOTO=”madwimax_rules_end”
ACTION!=”add”, GOTO=”madwimax_rules_end”
ATTRS{idVendor}==”04e9″, ATTRS{idProduct}==”6761″, ATTR{bInterfaceNumber}==”01″, RUN+=”/bin/sh -c ‘/bin/echo -n $kernel > /sys/$devpath/driver/unbind'”
ATTRS{idVendor}==”04e9″, ATTRS{idProduct}==”6761″, ATTR{bInterfaceNumber}==”00″, RUN+=”/usr/bin/at -f /root/wimax/wimax.sh +1minute”
LABEL=”madwimax_rules_end”


Вставляем вимакс… загорается жёлтый светодиод.. ждём не много.. и о чудо! Быстро проморгав жёлтый сменяется на синий :)
Чудеса :)


Ещё стоит добавить: драйвер до жути сырой. Хотя уже прилично работает. Надо признать что периодически отваливается соединение(чаще чем в виртуалке в венде). Так что без претензий. Разработчик драйвера старается :)

  • mar

    а можно попросить Вас показать вывод:
    find / -name “libusb*” -print

    А то при попытке
    cd madwimax-0.1.1
    ./configure

    выпадает ошибка конфигурации:
    checking for libusb1… no
    configure: error: libusb-1.0 not found

    Система:
    opensuse 11.0
    uname -a
    Linux linux 2.6.25.20-0.1-pae #1 SMP 2008-12-12 20:30:38 +0100 i686 athlon i386 GNU/Linux

  • ruX

    mar, здравствуйте

    мой # find / -name “libusb*” -print (уже не суся..)
    /lib/libusb-1.0.so.0
    /lib/libusb-1.0.so.0.0.0
    /lib/libusb-0.1.so.4.4.4
    /lib/libusb-0.1.so.4
    /usr/lib/libusb-1.0.so.0
    /usr/lib/pkgconfig/libusb-1.0.pc
    /usr/lib/libusb-1.0.la
    /usr/lib/libusb-1.0.so
    /usr/lib/libusb-0.1.so.4
    /usr/lib/libusb-1.0.a
    /usr/src/libusb-1.0.0.tar.bz2
    …..

    > выпадает ошибка конфигурации:
    > checking for libusb1… no
    > configure: error: libusb-1.0 not found

    libusb1 собран?
    Если да, то ошибка скорее вот в чём:
    Пути в которых ищет .pc файлы pkgconfig разнятся, поэтому пишет что якобы не найденно
    Этот файл собранной библиотеки должн быть тут /usr/lib/pkgconfig/libusb-1.0.pc
    А по каким то причинам, файл описания .pc после помпиляции помещается просто в /lib/pkgconfig/libusb-1.0.pc
    Остаётся просто сделать симлинк/скопировать его в папку /usr/lib/pkgconfig/

    Надеюсь это поможет

  • mar

    Спасибо! И прошу прощения – я, похоже, поторопилась с вопросами: начала тупо компилировать, не проверив, что стоит в системе. Оказывается, там стоит  libusb более ранней версии. Поскольку это штатная поставка, я побоялась ее  трогать, собрала  libusb1 по Вашей инструкции,  а потом сконфигурировала  madwimax, переопределив путь к библиотеке (интсрукция – в ./configure –help ):
    ./configure libusb1_CFLAGS=/usr/lib/libusb-1.0 libusb1_LIBS=/usr/lib/libusb-1.0
    После этого madwimax-0.1.0 отконфигурировался и собрался без проблем (madwimax-0.1.1 ругнулся на отсутствие  asciidoc и я не стала разбираться дальше)

    Кстати, собранный драйвер в этой версии называется madwimax (a не wimax)

    Дальше подождем железки :)

  • Pingback: Установка madwimax в debian sid | ruX's mind()