вторник, 17 ноября 2009 г.

Ubuntu 9.10 + Yota (wimax) vs Я

В продолжении этой темы

У меня были предположения что рецептура не меняется, так и получилось.
# для работы драйверов нам также понадобится пакет libnl-dev
apt-get install libnl-dev

# cтавим управляющую обвязку для драйвера
cd /usr/src/WiMAX-Network-Service-1.4.0
make clean
./configure --prefix=/usr/ --with-i2400m=/usr/src/linux-headers-$(uname -r) --localstatedir=/var
make
sudo make install


# Cтавим Supplicant
cd /usr/src/Intel-WiMAX-Binary-Supplicant-1.4.0
sudo ./install_supplicant.sh install


# Супликант у меня ставится в /usr/local/lib, я его сразу скопирую в /usr/lib
cp -r /usr/local/lib/wimax/*.* /usr/lib/wimax/
Либо исправляем путь в ./install_supplicant.sh на нужный

# Загружаем yot'овские конфиги, спасибо icelord
wget http://icelord.net/images/wimax/NDnSAgentConfig_forDriver.xml
wget http://icelord.net/images/wimax/NDnSAgentDefaultConfig.xml


# копируем по назначению /usr/share/wimax/
sudo cp NDnSAgentConfig_forDriver.xml /usr/share/wimax/NDnSAgentConfig_forDriver.xml
sudo cp NDnSAgentDefaultConfig.xml /usr/share/wimax/NDnSAgentDefaultConfig.xml

И всю последовательность загнать в файл скрипта
Даст упрощение при последующей перекомпиляции

Вот еще один гик, от icelord'а
http://icelord.net/wordpress/archives/1151
Там есть интересный скрипт, для переключения между режимами.
Добрался наконец до этого скрипта и переделал.
#!/bin/sh
STATE_WIMAXCU=`sudo wimaxcu status link`
#STATE=`sudo /etc/init.d/wimax status| awk '{print $4}'`
if [ "$STATE_WIMAXCU" = "Operation Failed." ]
then
echo "$STATE_WIMAXCU"
echo "WiMAX Network Service: Stoping"
sudo /etc/init.d/wimax stop
echo "WiMAX Network Service: Starting"
sudo /etc/init.d/wimax start
else
echo "$STATE_WIMAXCU"

fi

STATE_WIMAXD=`sudo /etc/init.d/wimax status`
#Operation Failed.

if [ "$STATE_WIMAXD" = "WiMAX Network Service: Running" ]
then
echo "$STATE_WIMAXD"
else
echo "$STATE_WIMAXD"
echo "WiMAX Network Service: Stoping"
sudo /etc/init.d/wimax stop
echo "WiMAX Network Service: Starting"
sudo /etc/init.d/wimax start
fi

STATE_LINK=`sudo wimaxcu status system`
#Connected.
#Link Status: Network is not connected.
#SW Radio is OFF.
if [ "$STATE_LINK" = "Connected." ]
then
echo "$STATE_LINK"
sudo ifconfig wmx0 down
sleep 0.1s
sudo wimaxcu roff
sleep 2s
sudo iwconfig wlan0 tx on
sleep 0.5s
sudo ifconfig wlan0 up
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo wimaxcu connect network 15
sudo dhclient wmx0
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo iwconfig wlan0 tx off
sudo ifconfig wmx0 up
sleep 0.1s
sudo wimaxcu ron
sleep 2s
sudo wimaxcu connect network 15
sudo dhclient wmx0
echo ""
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo wimaxcu connect network 15
sudo dhclient wmx0
fi

fi

fi
fi
fi


В своем варианте я этот скрипт сохранил в /usr/share/wimax/wifiwimax.sh и на табе создал кнопку запуска.

и красивое решение на последок
отсюда http://vonderer.blogspot.com/2006/10/initd-autorun-debian.html
+
http://translated.by/you/man-update-rc-d-8-install-and-remove-system-v-style-init-script-links/into-ru/

cd /etc/init.d
sudo update-rc.d wimax defaults

Даст авто запуск службы wimax



з.ы. У меня работает а у вас?

62 комментария:

Анонимный комментирует...

РАБОТАЕТ!!! Наконец-то запустил. Спасибо за рецепт

Анонимный комментирует...

Не полностью раскрыта тема по "красивому решению". Кидать ли вышеуказанный скрипт в init.d или самому создавать новы по skeleton (из документации по ссылкам)? Может быть выложить сам файл службы?..

Gleb комментирует...

По секрету скажу

Файл если все верно выполнено, появляется в /etc/init.d
Его остается только прописать для автозапуска
Отсюда мораль => сделай, потом говори.

А скрипт, который я показал, всего лишь переключение режимов. Его ты можешь кинуть куда захочешь, даже на "Рабочий стол"

з.ы. Господа анонимы, а вас вежливо уже просил представляться. Буду блокировать анонимные комменты.

aldo комментирует...

У меня работает подключение к Yota, настраивал по этому how-to, но update-rc.d не создается в нужной папке. Нашел через поиск этот файл в папке /usr/sbin. Является ли найденный файл тем, который нужен, или я что-то неправильно установил

Gleb комментирует...

update-rc.d - системный файл он есть уже при установке. Его задача - управление демонами(службами) при запуске системы.

а вот файл службы (wimax) может оказаться в директории /usr/etc/init.d
его надо будет перенести в /etc/init.d

aldo комментирует...

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

Gleb комментирует...

Про сим карту

http://moscow.megafon.ru/news/news/20090915-1242.html

На борту 3G симкарт Модем: Ericsson F3507g (WCDMA, GPRS, EDGE)

Это мини pci карта, аналогично wifi|wimax которая уже на борту.
Вставить ее можно. место под еще один слот в нетбуке есть.
Заработает или нет не знаю.
Сам тоже хочу купить, но пока не встречал.

Анонимный комментирует...

Добрый день! Воспользовался Вашим руководством, чтобы запустить ваймакс на Samsung NC10 WAS1 (интегрированный Intel Link 5150) на Ubuntu Netbook Remix 9.10. Всё собралось вроде бы, йотовские файлы положил в указанное место, все скрипты работают, устройство видно, но йота, зараза, не ловится. Ни wimaxcu reset factory, ни что-либо другое не помогает.

ВАЮ комментирует...

и так, имеем Acer ноутбук со всроенным wimax intel. К сожалению, следование инструкциям "в лоб" не помогло. Поскольку имеем ubuntu 9.10, где драйверы встроены в ядро, последовательность следующая (при этом в отдельных случаях копирование со странички команды и вставка в терминал выдавали ошибку, в таких случаях перенабирайте команду руками) -

ВАЖНО - лучше зайти в терминал как root (приложения-стандартные-терминал суперпользователя)-
ВАЖНо - в оригинале скрипта следует внести коррективы - перед sudo wimaxcu ron вставить sudo /usr/bin/wimaxd.
ВАЖНо - конфигурационные файлы Йоты могу копироваться только командой sudo cp, ибо в целевой директорий без прав рута ничего не скопировать.

итоговая версия ниже.


#!/bin/sh
STATE=`sudo wimaxcu status system| awk '{print $4}'`
if [ "$STATE" = "OFF." ]
then

sudo iwconfig wlan0 tx off
sudo ifconfig wmx0 up
sleep 0.5s
sudo /usr/bin/wimaxd
sudo /usr/bin/wimaxcu ron
sleep 2s
sudo /usr/bin/wimaxcu connect network 15

else

sleep 0.5s
sudo ifconfig wmx0 down
sudo /usr/bin/wimaxcu roff
sleep 2s
sudo iwconfig wlan0 tx on

fi


Я давно не пользовался Linux, с конца 90-хх. Потому. если кому режут глаз упоминаемые прописные истины, не сердитесь и пальцы не гните.

ВАЮ комментирует...

Блин, забыл!!!

ВАЖНО! - sudo /usr/bin/wimaxd должно быть ВТОРОЙ строкой скрипта, иначе при первом запуске после каждой перезагрузки результата не будет.

ИТОГО -

#!/bin/sh
sudo /usr/bin/wimaxd
sleep 1s
STATE=`sudo wimaxcu status system| awk '{print $4}'`
if [ "$STATE" = "OFF." ]
then

sudo iwconfig wlan0 tx off
sudo ifconfig wmx0 up
sleep 1s
sudo /usr/bin/wimaxcu ron
sleep 2s
sudo /usr/bin/wimaxcu connect network 15

else

sleep 2s

sudo ifconfig wmx0 down
sudo /usr/bin/wimaxcu roff
sleep 2s
sudo iwconfig wlan0 tx on

fi

Gleb комментирует...

2zim-koder,
а что говорит wimaxcu status ?

2memfis
Ты убрал только beep (Я же оригинал старался сохранить, тк автор не я)
Запуск демона в начале скрипта не нужен, если он стартует как служба (в моем случае)
sudo в начале команд не пишу, тк подразумеваю. Он нужен не во всех командах. Только на работу с системными файлами по сути. и зачем перенабирать команду? если работаешь в терминале, то скорее всего стрелка вверх и кнопка "home" добавить sudo в начале строки. Так же проще.
У тебя то заработало?

з.ы. Надеюсь пальцев нету... Сам их ненавижу.

Gleb комментирует...

Кстати, если ты хорошо владеешь шелом может сумеешь его модифицировать так чтобы он корректно реагировал на такие сообщения как "Operation failed." Или еще какие ошибки.
Просто я хочу добавить сюда рестарт демона, когда не удается переключиться или идет потеря сигнала (disconnected).

aldo комментирует...

работало у меня все безотказно, но вот, в один прекрасный день, а именно вчера, случился такой глюк: к yota подключается, а дальше ни к одному айпишнику не пингуется, ни один саййт не открывает, скайп не работает. Что это может быть? Через вай-фай все работает отлично

Gleb комментирует...

как ты запускаешь?
Интересует вывод команд
sudo /etc/init.d/wimax stop
sudo /etc/init.d/wimax start
sudo wimaxcu status
sudo wimaxcu scan
sudo wimaxcu connect network 15
sudo dhclient wmx0

aldo комментирует...

sudo wimaxcu connect network 15
подключает к yota, но следующая команда ping mail.ru, не пингует, пишет unknown host, сайты не открывает.
На sudo dhclient wmx0 реагирует так: Cen't allocate interface wmx0lease { interface .
Скан осуществляет нормально.
демон работает по-умолчанию. запускаю только wimaxcu ron, wimaxcu connect

Gleb комментирует...

веди ifconfig -a

aldo комментирует...

wmx0 Link encap:Ethernet HWaddr 00:1d:e1:08:2b:01
inet6 addr: fe80::21d:e1ff:fe08:2b01/64 Диапазон:Ссылка
UP RUNNING NOARP MTU:1400 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:5
RX bytes:0 (0.0 B) TX bytes:180 (180.0 B)


Это он чего сам на ipv6 перешел?????

Gleb комментирует...

Вообще-то само ни бывает... Хотя...

Попробуй вырубить ipv6.
Но если сравнить мою запись, то у тебя нехватает строки вида
inet addr:10.128.123.123 Mask:255.255.248.0
И из-за отсутствия этой строки у меня подозрение что у тебя вырубилось ipv4

Такого мануала у меня нет. Но легко найти в гугле. Сам когда-то искал.

aldo комментирует...

ммм.. Чего-то ничего вразумительного на "восстановление ipv4 linux", "слетел ipv4 linux", "enable ipv4 linux" и все в этом духе... Чего-то последние 2 часа прошли бесполезно((((

Gleb комментирует...

Извини не корректно выразился. Я имел ввиду поиск вида "ubuntu ipv6 disable"

aldo комментирует...

отключил через grub. Теперь к сети подключает и пишет: network is unreachable. Похоже, в лоб не получается((((

Gleb комментирует...

Через что?

aldo комментирует...

через загрузчик grub

The 'hard' way: disable IPv6 system-wide: you must edit the GRUB. Be very careful, and edit it correctly or else your system might not boot!

1. Open a terminal and type the following command (if you don't use Gedit, replace it with your text editor such as Kate, etc).

sudo gedit /etc/default/grub


2. And search for this:

GRUB_CMDLINE_LINUX


Modify it so it looks like this:

GRUB_CMDLINE_LINUX="ipv6.disable=1"


3. Now, let's update the GRUB:

sudo update-grub2


Or if you don't use GRUB 2, do:

sudo update-grub


4. And finally, restart your system.

http://www.webupd8.org/2009/11/how-to-disable-ipv6-in-ubuntu-910.html

Gleb комментирует...

Мда.... Чем дольше живешь, тем больше узнаешь.
А я раньше правил вот так

If you disable IPv6 and get reasonable Internet connection & DNS speeds

Method 1

You need to edit the aliases file using the following command

gksudo gedit /etc/modprobe.d/aliases

Find the line: alias net-pf-10 ipv6

change to

alias net-pf-10 off

alias net-pf-10 off ipv6

Save the file and reboot

тут есть еще и 3-й способ.
http://www.ubuntugeek.com/how-to-disable-ipv6-in-ubuntu.html

В алиасах проверь строки для ipv4.
Какие именно я не знаю. Надо смотреть думать.

Gleb комментирует...

вот еще старый архив. Может там будет какой ответ.
http://ubuntuforums.org/archive/index.php/t-87798.html

и вот еще

http://ubuntuforums.org/showthread.php?t=868030

aldo комментирует...

Да, я натыкался на это. Alias уже не актуально.

eth0 Link encap:Ethernet HWaddr 00:23:5a:d0:97:02
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
коллизии:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Прервано:29 Base address:0xa000

lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4861 errors:0 dropped:0 overruns:0 frame:0
TX packets:4861 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:447648 (447.6 KB) TX bytes:447648 (447.6 KB)

pan0 Link encap:Ethernet HWaddr 6a:fd:09:75:29:ec
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
коллизии:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
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
коллизии:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:16:eb:0a:3f:96
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:1566349 errors:0 dropped:0 overruns:0 frame:0
TX packets:2475892 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:135980902 (135.9 MB) TX bytes:2975498456 (2.9 GB)

wmaster0 Link encap:UNSPEC HWaddr 00-16-EB-0A-3F-96-00-00-00-00-00-00-00-00-00-00
UP RUNNING MTU:0 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wmx0 Link encap:Ethernet HWaddr 00:1d:e1:08:2b:01
NOARP MTU:1400 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:5
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

это новый конфиг. как видно, ipv6 отключен. при этом я подключен к yota. Мне так кажется, что проще переустановить драйвер, все встанет на свои места....

Gleb комментирует...

Очень может быть....
Что мне интересно, так это что же ты с компом делаешь... Что у тебя такое произошло...

aldo комментирует...

ну устанавливал lamp, virtualbox. Еще что-то. В общем студент, все интересно. Да и линукс всего месяц стоит. Так что логично, делаю много лишних движений.

Unknown комментирует...

to aldo:
судя по выводу ifconfig, у тебя не отрабатывает dhcpcd/dhclient.
Технология такая: ipv6 адрес назначается автоматически, а ipv4 раздаётся Йотой по протоколу DHCP. После команды
wimaxcu connect network 15
подключение уже активно, но адреса у него ещё нет; поэтому запускаем
dhclient wmx0
и он запрашивает у йоты адрес.
Если адреса ipv4 в ifconfig нет, значит он не был назначен, но причин тому может быть море.
Можно попробовать так: (после wimaxcu connect)
sudo killall dhclient dhcpcd
sudo dhclient wmx0
sleep 3
ping ya.ru

если не поможет, то надо смотреть вывод dhclient.

PS. Надеюсь, не сильно занудствовал...

aldo комментирует...

to Семен
Да нет, никакого занудства, только я уже наверно недели две как снес ось и установил драйвер ваймакса заново. Так что уже не проверить((( Но я уверен, кому-нибудь пригодится эта информация. Спасибо)

NT Man комментирует...

У меня в Ubuntu 9.10 нет папки /usr/src/WiMax-Network-Service-1.4.0 что делать?

boho комментирует...

Уважаемый Tyranjoks,

всё сделал согласно рецепту, но всё-равно что-то не так. То не находит сети, то просит убедиться, что WiMax Network Service is running.

Помогите!)

Спасибо!

boho комментирует...

Забыл сказвть):
Aspire One AO531h
Ubuntu 9.10

Gleb комментирует...

Всех с наступившим Новым Годом.

Исправил ошибку.
было
/usr/src/WiMax-Network-Service-1.4.0
надо
/usr/src/WiMAX-Network-Service-1.4.0

Gleb комментирует...

Модель бука не важна абсолютно (ИМХО)

Если выдает сообщение вида
WiMax Network Service is not running.

Значит не запущена служба wimaxd
Выхода два
первый, если настраивали службу:
/etc/init.d/wimax stop
/etc/init.d/wimax start

второй, просто запустить демон
sudo wimaxd

Unknown комментирует...

А можно поподробней рассказать от куда берётся /etc/init.d/wimax ?
Всё настроил, Йота работает. Скриптик переключает WiFi\WiMAX, но ругается что файла нет в /etc/init.d/wimax. Теперь бы еще в автозагрузку поставить поднятие Йоты. Как я понимаю это именно и должно происходить тут /etc/init.d/wimax
С линуксом практически не дружу. Если можно опишите подробней.

Gleb комментирует...

Сергей, файлик создается в процессе компиляции.

В одном из вышестоящих коментариев я уже писал

"файл службы (wimax) может оказаться в директории /usr/etc/init.d
его надо будет перенести в /etc/init.d"

Unknown комментирует...

В процессе компиляции чего?
Всё делал по другой инструкции.

Потом пытался сделать вот по этой инструкции http://vonderer.blogspot.com/2006/10/initd-autorun-debian.html

Вот мой файл /etc/init.d/wimax
Вот файл уоторый указан как демон в /etc/init.d/wimax
wimaxstart.sh
В общем не запускается всё как надо автоматически :-(
Ваш скрипт полностью один в один сохранил в файл, запускаю после загрузки компа, и только тогда появляется интернет....
Что я сделал не правильно?

Gleb комментирует...

Все правильно ты сделал.
Так и расчитано.
Если ты хочешь чтобы оно сразу запускалось, то есть вариант поместить часть с подключением в /etc/init.d отдельным файлом.
Так чтобы оно запускалось после старта демона. Этот вариант я не рассматривал, поэтому готового решения у меня нет.

jeff комментирует...

Вопрос: имеем уже установленную 9.10 Убунту на Асусе У30 ... все кул но по инструкции не ставится Yota .. в самом начале стоит ссылка на первую статью - а что взять из нее, а что взять из этой статьи ? Очень хочется на линукс иметь Йоту и не возвращаться к проклятому продукту Била Гейтса ...

Gleb комментирует...

libnl
network service
binary supplicant

Oleg комментирует...

а что если вот так?
root@ol-laptop:/usr/src/WiMAX-Network-Service-1.4.0# make
make all-recursive
make[1]: Вход в каталог `/usr/src/WiMAX-Network-Service-1.4.0'
Making all in wimax-tools
make[2]: Вход в каталог `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools'
Making all in include
make[3]: Вход в каталог `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/include'
make[3]: Цель `all' не требует выполнения команд.
make[3]: Выход из каталога `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/include'
Making all in lib
make[3]: Вход в каталог `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/lib'
make all-am
make[4]: Вход в каталог `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/lib'
gcc -DHAVE_CONFIG_H -I. -I../include -I../include -I/usr/src/linux-headers-2.6.31-17/include -g -Wall -O2 -MT op-open.o -MD -MP -MF .deps/op-open.Tpo -c -o op-open.o op-open.c
op-open.c:223: error: conflicting types for ‘wimaxll_recv’
../include/wimaxll.h:312: note: previous declaration of ‘wimaxll_recv’ was here
op-open.c: In function ‘wimaxll_recv’:
op-open.c:254: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘ssize_t’
make[4]: *** [op-open.o] Ошибка 1
make[4]: Выход из каталога `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/lib'
make[3]: *** [all] Ошибка 2
make[3]: Выход из каталога `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools/lib'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Выход из каталога `/usr/src/WiMAX-Network-Service-1.4.0/wimax-tools'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/usr/src/WiMAX-Network-Service-1.4.0'
make: *** [all] Ошибка 2

Gleb комментирует...

Например
op-open.c: In function ‘wimaxll_recv’:
op-open.c:254: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘ssize_t’
make[4]: *** [op-open.o] Ошибка 1

попробовать исправить?

Soulgarden комментирует...

/etc/init.t/wimax start запускает, но инет не работает. демон запустился, но если давать команды ему, пишет что какие-то две вещи OFF, помогите, что делать :( следовал четко по инструкции. еще не понятно, wimax-i2400m-1.4.1 нам не нужен??

Gleb комментирует...

Комменты все больше и больше мне нравятся.

Народ, я не телепат. Может эти "какие-то" вещи надо в ON перевести?

Soulgarden комментирует...

работает, но без конца перестает. подключено, но просто инет не работает. а на wimaxcu roff пишет неудачно. и не работает, и не отключить, приходится перезагружать, но опять работает недолго. может знаете в чем проблема?

Unknown комментирует...

Евгений: думаю, может помочь команда rfkill. А может и не помочь...

Дима комментирует...

В принципе по инструкции все заработало, однако как и все в этой опирационке работает через Ж.
Почему то после установление соединения с Yota интернет включается только если подключить соединение wmx0.
Кроме того далеко не всегда удается переключиться назад на WiFi. Иногда вплоть до перезагрузки т.к. и WiFi не включается и назад к Yota подключаться не хочет.
Еще одна проблема - не переподключается автоматически в случае обрыва. Усугубляется отсутствием иконки со статусом подключения (хотя бы есть или нет соединения)

Gleb комментирует...

Переподключается но не всегда.

Можно поиграться с удаление networkmanagera и настройкой из /etc/network/interfaces там оно интереснее будет. Но мне лениво да и не когда пока что.

Дима комментирует...

Пере установил. Выяснил что нормально переключается, не требует подключать wmx0 и вообще стабильнее работает, если не устанавливать обновления не вошедшие в официальный выпуск (proposed) и не поддерживаемые обновления (backports).
В каком то из этих репозиториев находится новое ядро, так что я думаю из за этого.

aldo комментирует...

Переделал wifiwimax.sh под себя в wimax.sh
Если вайфаем не пользоваться, что при наличии ваймакса вполне логично, то этго достаточно. У меня все работает как надо. Пинги для того, чтобы разрывы связи происходили реже. Мне кажется, оно чуть-чуть помогает)


#!/bin/sh
STATE_LINK=`sudo wimaxcu status system`
#Connected.
#Link Status: Network is not connected.
#SW Radio is OFF.
if [ "$STATE_LINK" = "Connected." ]
then
echo "$STATE_LINK"
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo wimaxcu ron
sleep 2s
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
fi
fi
fi
fi
fi


Есть большие надежды, что появятся гуишки для еты конкретно, что-то типа ета-аксесс. Сижу изучаю как писать гуи в гтк+, но гуи наверно появится раньше))))

Gleb комментирует...

Если есть мысли по ГУИ, то можно попробовать скооперироваться.
Я тоже думаю об этом.

з.ы. За дополнительный скрипт спасибо. (Хоть я и использую обе связи)

Дима комментирует...

ГУИ нужен как воздух. Не все могут, да и не очень удобно, постоянно в консоль заходить, чтобы посмотреть подключен, соединилось ли, или соединение оборвалось итд... тем более большинство пользователей консоль не приваривают. Считаю что они правы, 2010 год на дворе

aldo комментирует...

есть идея с zenity. Например его можно прикрутить как минимум для того, чтобы можно было бы запускать wifiwimax.sh не через консоль, а просто. Я пытаюсь сделать это, но у меня все никак не получается.
Наткнулся на эту статью http://myaltlinux.blogspot.com/2009/12/zsudo-gksudo.html
Можно взять что-то оттуда. если напишем что-то импотичное, то можно апплет сделать для панелек gnome. Наверно, это не проблема, во всяком случае в gDesklets это очень не сложно. Копался в кодах аплетов.

aldo комментирует...

#! /bin/bash

# this forces the password typing, even in the case the sudo timeout has
# not yet expired
sudo -k

zenity --entry --title="Browse files as root" --text="Enter your password:"
--hide-text \
| sudo -S nautilus --no-desktop --browser 1> /dev/null 2> /dev/null

if [ "$?" != 0 ]; then
zenity --error --text="Sorry, bad password"
return 1
fi

интересный код вот отсюда: http://www.mail-archive.com/gnome-list@gnome.org/msg01636.html

Можт сконнектимся через skype? ну или через почту можно. aldomarichelli@gmail.com

aldo комментирует...

#! /bin/bash

# this forces the password typing, even in the case the sudo timeout has
# not yet expired
sudo -k

zenity --entry --title="Подключение к yota" --text="Enter your password:" --hide-text | sudo -S su

if [ "$?" != 0 ]; then
zenity --error --text="Sorry, bad password"
return 1
fi

STATE_LINK=`sudo wimaxcu status system`

#Connected.
#Link Status: Network is not connected.
#SW Radio is OFF.
if [ "$STATE_LINK" = "ERROR: Make sure WiMAX Network Service is running." ]
then
sudo wimaxd
sleep 7s
sudo wimaxcu ron
sleep 3s
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
else
if [ "$STATE_LINK" = "Connected." ]
then
echo "$STATE_LINK"
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo wimaxd
sleep 0.3s
sudo wimaxcu ron
sleep 2s
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo wimaxcu connect network 15
sleep 5s
ping yota.ru
fi
fi
fi
fi
fi
fi

Что-то в этом духе получается.... Но мне кажется это не оптимальным. Давайте думать)

Unknown комментирует...

Про sudo:
есть другой вариант, вроде более правильный. Вызываем sudo с ключом -A, указав в переменной окружения SUDO_ASKPASS путь к программе или скрипту, спрашивающему пароль.

Пример1:

SUDO_ASKPASS=/usr/bin/ssh-askpass-fullscreen sudo -A wimaxcu ...

Пример2 (если нет ssh-askpass-fullscreen):
в /usr/local/bin/sudo-askpass пишем:
#!/bin/bash
zenity --entry --title="Ввод пароля" --text="${1:-Введите пароль:}"

в нашем скрипте:
export SUDO_ASKPASS=/usr/local/bin/sudo-askpass
sudo -A wimaxcu ...

[извините, если слишком подробно расписал..]

aldo комментирует...

спасибо, мне было даже недостаточно подробно вначале) Потом сообразил.

Вот что получилось:
#! /bin/bash

# this forces the password typing, even in the case the sudo timeout has
# not yet expired
export SUDO_ASKPASS=/usr/local/bin/sudo-askpass

STATE_LINK=`sudo -A wimaxcu status system`

#Connected.
#Link Status: Network is not connected.
#SW Radio is OFF.
if [ "$STATE_LINK" = "ERROR: Make sure WiMAX Network Service is running." ]
then
echo $STATE_LINK
sudo -A wimaxd
sleep 7s
sudo -A wimaxcu ron
sleep 3s
sudo -A wimaxcu connect network 15
if [ "Connected." ]; then
sleep 2s
zenity --info --text="Подключение прошло успешно"
ping yota.ru
return 1
else
zenity --error --text="Ошибка подключения"
fi
else
if [ "$STATE_LINK" = "Connected." ]
then
echo "$STATE_LINK"
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo -A wimaxcu connect network 15
if [ "Connected." ]; then
sleep 2s
zenity --info --text="Подключение прошло успешно"
ping yota.ru
return 1
else
zenity --error --text="Ошибка подключения"
fi
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo -A wimaxd
sleep 0.3s
sudo -A wimaxcu ron
sleep 2s
sudo -A wimaxcu connect network 15
if [ "Connected." ]; then
sleep 2s
zenity --info --text="Подключение прошло успешно"
ping yota.ru
return 1
else
zenity --error --text="Ошибка подключения"
fi
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo -A wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo -A wimaxcu connect network 15
if [ "Connected." ]; then
sleep 2s
zenity --info --text="Подключение прошло успешно"
ping yota.ru
return 1
else
zenity --error --text="Ошибка подключения"
fi
fi
fi
fi
fi
fi
fi


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

aldo комментирует...

#! /bin/bash

export SUDO_ASKPASS=/usr/local/bin/sudo-askpass

zenity --question --text "Желаете ли вы подключиться к Yota? Если нет, то программа автоматически активирует Wi-Fi"
ANS=$?
if [ "$ANS" = "0" ]
then
STATE_LINK=`sudo -A wimaxcu status system`

if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo $STATE_LINK
sudo -A wimaxd
sleep 3s
sudo -A wimaxcu ron
sleep 3s
sudo -A wimaxcu connect network 15
sleep 2s
zenity --info --text="Подключение прошло успешно" && ping yota.ru
else
if [ "$STATE_LINK" = "Connected." ]
then
echo "$STATE_LINK"
zenity --info --text="Подключение уже установлено"
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo -A wimaxcu connect network 15
sleep 2s
zenity --info --text="Подключение прошло успешно" && ping yota.ru
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo -A wimaxd
sleep 0.3s
sudo -A wimaxcu ron
sleep 2s
sudo -A wimaxcu connect network 15
sleep 2s
zenity --info --text="Подключение прошло успешно" && ping yota.ru
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo -A wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo -A wimaxcu connect network 15
sleep 2s
zenity --info --text="Подключение прошло успешно" && ping yota.ru
fi
fi
fi
fi
fi
fi
else
sudo -A ifconfig wmx0 down
sleep 0.1s
sudo -A wimaxcu roff
sleep 2s
sudo -A iwconfig wlan0 tx on
sleep 0.5s
sudo -A ifconfig wlan0 up
fi

Тут наверно куча ошибок. Это первый мой код)

aldo комментирует...

Вставил пару циклов. Теперь можно, наверно спокойно открывать файл не в консоли. Потестите пожалуйста, те, кто хорошо знаком с шелом, подскажите, что поправить.


#! /bin/bash

export SUDO_ASKPASS=/usr/local/bin/sudo-askpass

zenity --question --window-icon=/home/lado/yota_12-150909.gif --title="Подключение к Yota" --text "Желаете ли вы подключиться к Yota? Если нет, то программа автоматически активирует Wi-Fi"
ANS=$?

while
[ "$ANS" = "0" ]

do

STATE_LINK=`sudo -A wimaxcu status system`
while
[ "$STATE_LINK" = "Connected." ]
do
echo "$STATE_LINK"
sleep 10s
STATE_LINK=`sudo -A wimaxcu status system`
done

if [ "$STATE_LINK" = "ERROR: Make sure WiMAX Network Service is running." ]
then
sudo -A wimaxd
sleep 3s
sudo -A wimaxcu ron
sleep 3s
sudo -A wimaxcu connect network 15
sleep 2s
else
if [ "$STATE_LINK" = "SW Radio is OFF." ]
then
echo "$STATE_LINK"
sudo -A wimaxd
sleep 0.3s
sudo -A wimaxcu ron
sleep 2s
sudo -A wimaxcu connect network 15
sleep 2s
else
if [ "$STATE_LINK" = "Link Status: Network is not connected." ]
then
echo "$STATE_LINK"
sudo -A wimaxcu connect network 15
sleep 2s
else
if [ "$STATE_LINK" = "Scanning..." ]
then
echo "$STATE_LINK"
STATE_SCAN=`sudo -A wimaxcu scan| grep Yota | awk '{print $3}'`
if [ "$STATE_SCAN" = "Yota" ]
then
sudo -A wimaxcu connect network 15
sleep 2s
fi
fi
fi
fi
fi
done

sudo -A ifconfig wmx0 down
sleep 0.1s
sudo -A wimaxcu roff
sleep 2s
sudo -A iwconfig wlan0 tx on
sleep 0.5s
sudo -A ifconfig wlan0 up

montagnik комментирует...

Автор! БОЛЬШОЕ тебе человеческое спасибо! Все заработало, собственно пишу с йоты. Теперь вопрос перехода на линкукс решен.

andy комментирует...

так а кто как поборол
op-open.c:223:9: error: conflicting types for ‘wimaxll_recv’ ?