Заводим 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"

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

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