Меню сайта
Категории каталога
Прикручивание 3G модема С-motech под FreeBSD для использования в сети Peoplenet [2009]
После облома с подключением по wifi к одному из провайдеров, пришлось остановиться на Peoplenet. Вот и займемся прикручиванием данного провайдера к правильной ОС :) Было решено запереть модем на чердак и воткнуть его в роутер, который планировался для wifi :) В качестве роутера выступает iP133/64RAM/2x2,1Gb/мать с USB, как по мне, вполне достаточно для раздачи и-нета на несколько машин, по крайней мере в институтское время выручала отлично, думаю и сейчас не подведет :) Модем C-MOTECH CCU-650U, и рулить всем будет
Грузим umodem
Подключаем модем и наблюдаем картинку:
ugen0: CMOTECH CO., LTD. CMOTECH CDMA Technologies, rev 2 .00 /0 .00 ,
addr 2
Модем не определился... Следуя проторенной тут дорожке, за которую спасибо товарисчу paradox 'y, смотрим, VendorID и DevID
home-gw# usbdevs -v
Controller /dev/usb0:
addr 1 : full speed, self powered, config 1 , UHCI root hub(0x0000), Intel(0x0000),
rev 1 .00
port 1 powered
port 2 addr 2 : full speed, power 500 mA, config 1 , CMOTECH CDMA Technologies
(0x6523), CMOTECH CO., LTD.(0x16d8), rev 0 .00
и согласно обсуждению в форуме правим патч, применяем его, пересобираем модуль и подгружаем (готовый патч под мою систему и железку смотри ниже) Переподключаем модем и смотрим
ucom0: CMOTECH CO., LTD. CMOTECH CDMA Technologies, rev 2 .00 /0 .00 , addr 2 ,
iclass 2 /2
ucom0: data interface 1 , has CM over data , has break
ucom0: status change notification available
Это уже веселее, пойдем далее
home-gw# cu -l /dev/cuaU0
Connected
t
OK
at
OK
ati
Manufacturer: C-MOTECH Co., Ltd.
Model: CCU-650
Revision: CCU65TSU00
Esn: 532E8A6F
+GCAP: +CIS707A, +MS, +ES, +DS, +FCLASS
OK
ati3
Manufacturer: C-MOTECH Co., Ltd.
Model: CCU-650
Revision: CCU65TSU00
Esn: 532E8A6F
+GCAP: +CIS707A, +MS, +ES, +DS, +FCLASS
OK
Так, модем "верещит" как положено :) Поехали дальше... Под винды есть сервисная программка для модема, посмотрим может и повезет. Порывшись на форумах, вышел на такую [url=http://www.bsdua.org/cdma.html] страничку[/url], CLI приложение для управления C-MOTECH модемами, написанная Алексеем Ватченко. Исходники для OpenBSD, есть порт для Linux (спрашиваем автора, ссылочку он по какой-то причине не указал на сайте) Теперь благодаря товаричсу Andy имеем shar для этой утили (смотри ниже). Скачиваем shar (я его скачал в /tmp), распаковываем (в /root создал каталог cdma, в него и распакую), ошибочка... Создаем каталог files и распаковываем снова, получилось, собираем, rehash и попробуем запустить...
home-gw# cd /root
home-gw# mkdir cdma
home-gw# cd cdma
home-gw# mv /tmp/cdma.shar /root/cdma/
home-gw# sh cdma.shar
x - ./Makefile
x - ./distinfo
x - ./pkg-descr
x - ./files/patch-aa
cdma.shar: cannot create ./files/patch-aa: No such file or directory
x - ./files/patch-ab
cdma.shar: cannot create ./files/patch-ab: No such file or directory
x - ./pkg-plist
home-gw# mkdir files
home-gw# sh cdma.shar
x - ./Makefile
x - ./distinfo
x - ./pkg-descr
x - ./files/patch-aa
x - ./files/patch-ab
x - ./pkg-plist
home-gw# make install clean
===> Vulnerability check disabled , database not found
=> cdma-0 .10 .tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.bsdua.org/files/.
cdma-0 .10 .tar.gz 100% of 12 kB 23 kBps
===> Extracting for cdma-0 .10
=> MD5 Checksum OK for cdma-0 .10 .tar.gz.
=> SHA256 Checksum OK for cdma-0 .10 .tar.gz.
===> Patching for cdma-0 .10
===> Applying FreeBSD patches for cdma-0 .10
===> Configuring for cdma-0 .10
===> Building for cdma-0 .10
"/usr/share/mk/bsd.compat.mk", line 36 : warning: NOMAN is deprecated in favor
of NO_MAN
Warning: Object directory not changed from original /root/cdma/work/cdma-0 .10
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c cdma.c
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c dev.c
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c util.c
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c cmotech_ccu550.c
cmotech_ccu550.c:573 : warning: unused parameter 'ctx'
cmotech_ccu550.c:573 : warning: unused parameter 'n_sms'
cmotech_ccu550.c:42 : warning: unused parameter 'ctx'
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c cmotech_ccu650u.c
cmotech_ccu650u.c:31 : warning: unused parameter 'ctx'
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -o cdma cdma.o dev.o util.o
cmotech_ccu550.o cmotech_ccu650u.o
===> Installing for cdma-0 .10
===> Generating temporary packing list
===> Checking if comms/cdma already installed
"/usr/share/mk/bsd.compat.mk", line 36 : warning: NOMAN is deprecated in favor
of NO_MAN
install -s -o root -g wheel -m 555 cdma /usr/local/bin/
===> Registering installation for cdma-0 .10
===> Cleaning for cdma-0 .10
home-gw# rehash
home-gw# ./cdma
cdma [-d device_model] [-f device] command
Commands:
list - show all supported device models
date - show date and time
date set - set local time
mode - show current mode
mode hybrid - set hybrid mode
mode 1x - set 1x mode
mode ev-do - set EV-DO mode
pb - show address book
pb add <idx> <phone> <name> - add record with index <idx>
pb del <idx> - delete record by index <idx>
pin - show whether PIN code is enabled
pin enable - enable PIN code
pin disable - disable PIN code
pin change - change PIN code
sms - show stored messages
sms check - check for new SMS
sms send <phone> - send SMS (from stdin)
sms read - read new SMS (written to stdout)
sms del <idx> - delete stored SMS with index <idx>
sms save <phone> [date] - save SMS (from stdin) into SIM-card
Date format: [[[[[cc]yy]mm]dd]HH]MM[.SS]
Собственно разобраться проблемы не составит, меня же интересует проверка и переключение при необходимости в EV-DO.
действительно, то что и было выставлено в винде в последний раз. Приятно :) Скажу только, что использовать утилиту надо при разорванном соединении. Далее пришел черед позвонить... Надеяться на поддержку пиплнета нет смысла, так как все специалисты поддержки у них умеют только галки в винде тыцать. Промучившись около 15 минут с тем, что номер никак не хотел набираться, плюнул и вставил его прямо в строку инициализации. Получилась следующая секция для пиплнета для ppp в /etc/ppp/ppp.conf
peoplenet:
set device /dev/cuaU0
set speed 460800
#Отсюда номер у меня не подхватился
set phone \#777
#А отсюда наоборот
set dial "ABORT BUSY ABORT NOsCARRIER TIMEOUT 5 \"\" AT OK-AT-OK AT \
OK-AT-OK ATDT\#777 TIMEOUT 40 CONNECT"
enable dns
set authname 8092_PHONE_NUMBER_@people.net.ua
set authkey PASS
accept PAP
set login
add default HISADDR
set ifaddr 10 .0 .0 .1 /0 10 .0 .0 .2 /0 0 .0 .0 .0 0 .0 .0 .0
disable ipv6cp
disable mppe
disable pred1 deflate protocomp acfcomp shortseq vj
deny pred1 deflate protocomp acfcomp shortseq vj
Особо не тестировалось, т.к. установлю все это хозяйство на чердак в выходные, но коннектится и работает без проблем.
home-gw# ping lissyara.su
PING lissyara.su (77 .221 .149 .162 ): 56 data bytes
64 bytes from 77 .221 .149 .162 : icmp_seq=0 ttl=53 time =226 .061 ms
64 bytes from 77 .221 .149 .162 : icmp_seq=1 ttl=53 time =255 .973 ms
64 bytes from 77 .221 .149 .162 : icmp_seq=2 ttl=53 time =220 .971 ms
64 bytes from 77 .221 .149 .162 : icmp_seq=3 ttl=53 time =229 .934 ms
64 bytes from 77 .221 .149 .162 : icmp_seq=4 ttl=53 time =240 .886 ms
^C
--- lissyara.su ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 220 .971 /234 .765 /255 .973 /12 .463 ms
Теперь душе хочется немного статистики :) C помощью гугла и некоторого участия серого вещества родилась пара скриптиков
home-gw# cat /root/bin/chk_balance
#!/bin/sh
date_b=`date "+%d.%m.%Y %H:%M "`
ostatok=`wget http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO --post-data \
"X_Username=USERNAME&X_Password=PASSWORD" -O - -q | grep -E "span \
class=.(gray|red)." | sed "s#^.*\">##;s%г.*$%%"`
echo >> /root/_balance
echo $date_b ostatok - $ostatok grn >> /root/_balance
Проверка нашего баланса через сайт my.peoplenet.ua В USERNAME и PASSWORD нужно подставить свои данные. Полученная информация складывается в /root/_balance Далее хотелось-бы статистики по трафу на внешнем интересфейсе. Для начала добавим пару правил в ipfw, которые будут подсчитывать количество принятых и отправленных байт
ipfw add 11 count all from any to any in via tun0
ipfw add 12 count all from any to any out via tun0
Не забудьте их внести в инициализацию своего фаервола.
home-gw# ipfw show 11 12
00011 19 2049 count ip from any to any in via tun0
00012 17 1247 count ip from any to any out via tun0
Чего-то уже успело пробежать :) Далее следующий скрипт
home-gw# cat /root/bin/traf_stat
#!/bin/sh
download=`/sbin/ipfw show 11 | awk '{ print$3 }'`
upload=`/sbin/ipfw show 12 | awk '{ print$3 }'`
date_b=`date "+%d.%m.%Y"`
echo trafic statistics >> /root/_balance
echo " downloaded $download bytes" >> /root/_balance
echo " uploaded $upload bytes" >> /root/_balance
/sbin/ipfw zero 11
/sbin/ipfw zero 12
Т.е. считываем значения в нашем ipfw, сохраняем их в /root/_balance и обнуляем статистику в фаерволе. И дадим работы нашему cron... В /etc/crontab добавил следующие строки
55 23 * * * root /root/bin/chk_balance
59 23 * * * root /root/bin/traf_stat
05 0 * * * root /root/bin/chk_balance
Проверяем баланс за 5 минут до полуночи, сбрасываем статистику по трафу за минуту до полуночи и в 5 минут после полуночи снимаем баланс еще раз (хочется видеть списание абонплаты и превышения) Все эти данные можем посмотреть в файлике /root/_balance Помимо этого был настроен фаервол, установлен squid (этого описывать не вижу смысла, на данном ресурсе найти статьи по данной тематике не проблема ;) ), в планах динамический DNS Также есть еще некоторые доработки железного характера: - Так как под виндами бывали случаи подвисания модема, в цепь его питания впаял реле на разрыв и подвел питание к катушке от БП, с выводом пары наружу. При замыкании выведенных контактов, реле разрывает цепь питания модема, чем обеспечивается его перезагрузка; - Вывел наружу и пару от контактов reset на всякий случай, мало-ли :) эти 2 пары передам по незадействованным парам витухи к свичу и будет такой себе remote control :) После использования в течении некоторого времени, полезла такая ошибка
home-gw kernel: ucom0: ucomreadcb: IOERROR
соединение подвисает, приходится килять ppp и стартовать заново...
Нарыл в и-нете
следующее и пропатчил...
Живет, ошибки сыпятся, но соединение восстанавливается без мучений ppp
Источник: http://www.lissyara.su/?id=1895
Категория: Работа с железом | Добавил: oleg (02.04.2009) | Автор: Dron
Просмотров: 1205 | Рейтинг: 0.0 /0 |
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]
Форма входа
Друзья сайта