
Первое чтение

=============================================================================================
После облома с подключением по wifi к одному из провайдеров, пришлось остановиться на Peoplenet.
Вот и займемся прикручиванием данного провайдера к правильной ОС

Было решено запереть модем на чердак и воткнуть его в роутер, который планировался для wifi

В качестве роутера выступает iP133/64RAM/2x2,1Gb/мать с USB, как по мне, вполне достаточно для раздачи и-нета на несколько машин, по крайней мере в институтское время выручала отлично, думаю и сейчас не подведет

Модем C-MOTECH CCU-650U, и рулить всем будет
Код: Выделить всё
home-gw# uname -a
FreeBSD home-gw 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 04:18:52 UTC 2008 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
Код: Выделить всё
home-gw# kldload umodem
Код: Выделить всё
ugen0: CMOTECH CO., LTD. CMOTECH CDMA Technologies, rev 2.00/0.00, addr 2
смотрим, 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

Под винды есть сервисная программка для модема, посмотрим может и повезет... порывшись на форумах,
вышел на такую страничку http://www.bsdua.org/cdma.html, CLI приложение для управления C-MOTECH модемами, написанная Алексеем Ватченко.
Исходники для OpenBSD, есть порт для Linux (спрашиваем автора, ссылочку он по какой-то причине не указал на сайте)
Попробуем собрать под фрей...
Распакуем и вперед:
Код: Выделить всё
home-gw# make
Warning: Object directory not changed from original /root/cdma-0.10
cc -O2 -fno-strict-aliasing -pipe -W -Wall -g -c cdma.c
cdma.c:44: error: syntax error before "void"
cdma.c:97: error: syntax error before "void"
*** Error code 1

После этого все собирается и получаем файлик cdma. Запустим.
Код: Выделить всё
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]
Код: Выделить всё
home-gw# cdma mode
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

Код: Выделить всё
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
Полученная информация складывается в /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
И дадим работы нашему cron... В /etc/crontab добавил следующие строки
Код: Выделить всё
55 23 * * * root /root/bin/chk_balance
59 23 * * * root /root/bin/traf_stat
0 05 * * * root /root/bin/chk_balance
Все эти данные можем посмотреть в файлике /root/_balance
Помимо этого был настроен фаервол, установлен squid (этого описывать не вижу смысла, на данном ресурсе найти статьи по данной тематике не проблема

Также есть еще некоторые доработки железного характера:
- Так как под виндами бывали случаи подвисания модема, в цепь его питания впаял реле на разрыв и подвел питание к катушке от БП, с выводом пары наружу. При замыкании выведенных контактов, реле разрывает цепь питания модема, чем обеспечивается его перезагрузка;
- Вывел наружу и пару от контактов reset на всякий случай, мало-ли

эти 2 пары передам по незадействованным парам витухи к свичу и будет такой себе remote control

=========================================================================================================
Критика, улучшения, ошибки...
