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

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
732 0.8kb 2009-03-16 патч для С-motech 650U для FreeBSD 6.3-RELEASE #0

cdma.shar
файл скачан размер размещён примечание
cdma.shar
734 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 и ограничения максимального размера сегмента
подписка

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

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0587 секунд
Из них PHP: 36%; SQL: 64%; Число SQL-запросов: 79 шт.
Исходный размер: 134839; Сжатая: 25966