Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  UPS APC-1500
  NetMos NM9845
  cisco & syslog
  LAN card`s test
  HDD & UDMA100
  S.M.A.R.T.
  D-Link DE-200TP
  Marvell 88E8053
  D-Link DGE530T
  КПК + FreeBSD
  D-Link DWL-G520
  SkyLink-CDMA
  Atheros AR5007EG
  BlueTooth mouse
  Asus Eee PC
  atacontrol
  SkyStar-2+SlonAx
  TT budget S-1401
  SiS*Mirage*1 на D201GLY2
  NetXtreme BCM5722
  snd_hda
  Peoplenet + C-motech (3G)
  freebsd + huawei 162 gsm modem
  tw_cli
  pc_speaker
  Canon/gphotofs
  Охранная система на FreeBSD+LPT
  Даешь 220 в LPT
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> Peoplenet + C-motech (3G)

Прикручивание 3G модема С-motech под FreeBSD для использования в сети Peoplenet

Автор: Dron.


После облома с подключением по 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

Грузим umodem
home-gw# kldload 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.

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

Теперь душе хочется немного статистики :) 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%&#1075.*$%%"`
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

Обсуждение

ucom.c.patch
файл скачан размер размещён примечание
ucom.c.patch
736 0.8kb 2009-03-16 патч для С-motech 650U для FreeBSD 6.3-RELEASE #0

cdma.shar
файл скачан размер размещён примечание
cdma.shar
738 3kb 2009-03-16 shar файл для cdma



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=15730.

размещено: 2009-03-31,
последнее обновление: 2009-03-31,
автор: Dron

оценить статью:

pinger, 2009-04-03 в 22:12:18

Давно пользуюсь по этой статье
http://www.lissyara.su/?id=1311
зачем повторяться?

Vesper, 2009-05-28 в 20:13:34

По-мойму очень даже полезная, хочу сделать эту схему как резервный канал

salimk, 2010-08-27 в 10:36:54

Статья прикольная

вот еще кому интересно

ftp://ftp.dlink.ru/pub/Router/DIR-320/Data_sh/Supported%203G%20modems.pdf

ftp://ftp.dlink.ru/pub/Router/DIR-320/Firmware/

kpp, 2011-01-24 в 11:41:01

Думаю стОит немного подробнее описать момент с тестированием модема
# cu -l /dev/cuaU0
1. Команды AT нужно вводить руками.
По изложению в статье логично предполагается, что вводим  cu -l /dev/cuaU0 и в ответ должен выпасть указанный текст, а этого не просходит.
2. Для штатного выхода из утилиты cu нужно последовательно нажать тильду(~) и Ctrl+D.
Для невладеющих вопросом эти моменты будут головной болью.
Сам через это прошел ;)

kpp, 2011-01-24 в 11:46:43

И еще, в версии 7.2-RELEASE ничего в исходниках править не нужно. Хотя при вставке\извлечении модема в /var/log/messages пишется Unknown USB device: vendor 0x16d8 product 0x5533 bus uhub2

kpp, 2011-04-14 в 18:20:59

Страница баланса несколько изменилась у пиплов.
Коррекция скрипта получения балланса:
ostatok=`wget http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/ --post-data "X_Username=$NAME&X_Password=$PASSWO
iconv -c -f cp1251 | grep аванс |\
sed 's/^.*аванс \([0-9][0-9]*\.[0-9][0-9]\).*$/\1/'`

kpp, 2011-04-14 в 18:21:57

ostatok=`wget http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/ --post-data "X_Username=$NAME&X_Password=$PASSWORD" -O - -q |\
iconv -c -f cp1251 | grep аванс |\
sed 's/^.*аванс \([0-9][0-9]*\.[0-9][0-9]\).*$/\1/'`

Dark_LemON, 2011-06-12 в 20:09:43

kpp,
парсер sed в твоём случае не работает если баланс имеет вид Х.Х и актуален только для положительных балансов с четырьмя числовыми символами.

Dark_LemON, 2011-06-12 в 22:45:08

так будет лучше
ostatok=`wget http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/ --post-data "X_Username=$NAME&X_Password=$PASSWORD" -O - -q |\
iconv -c -f cp1251 | grep аванс |\
sed 's/^.*аванс \([0-9]*\.[0-9]*\).*$/\1/'`


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 2 чел.
За последние 30 мин было: 35 человек
За сегодня было
1 показов,
1 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1988 секунд
Из них PHP: 32%; SQL: 68%; Число SQL-запросов: 79 шт.
Исходный размер: 134784; Сжатая: 25951