Доступ FreeBSD к интернету через 3G

При включении  модема во FreeBSD, необходимо сменить  режим «Zero-CD» на режим Modem. 

Задача решается   с помощью  camcontrol+devd или usb_modeswitch.

Будем использовать  — camcontrol+devd.

 Драйвер u3g  загрузим посредством /boot/loader.conf или пересоберем ядро с его поддержкой.

Модем обнаружен как umass0. Однако возможно  обнаружение и как ugen0.

u3g_load=»YES»

umass_load=»YES»

 

Перезагрузим систему, или загрузим модули используя kldload.

Подключив модем к  системе и использовав  команду usbdevs для просмотра модема,Вы обнаружите строку принадлежащую вашему модему.

# usbdevs -v

 

port 1 addr 3: full speed, power 100 mA, config 1, USB MMC Storage(0x1000), Qualcomm, Incorporated(0x05c6), rev 0.00

 

Из этой строки необходимо получить идентификатор производителя и продукта, в данном случае  это vendor = 0x05c6 и product = 0x1000.

 Затем используйте команду camcontrol devlist.

# camcontrol devlist

<option … > at scbus1 target 0 lun 0 (da1,pass1)

 

Модем обнаружился как Option ICON 2.31, в последней части строки как (da1, pass1), нам необходимо использовать значения «Option» и «pass1».

 Создайте папку в /etc с именем devd, /etc/devd. в этой папке создайте файл с любым именем,например option.conf.

В файле option.conf, разместите следующее:

 

attach 100 {

match «device-name» «umass[0-9]+»;

match «vendor» «0x05c6»;

match «product» «0x1000»;

match «devclass» «0x00»;

action «sleep 3; /sbin/camcontrol cmd `/sbin/camcontrol devlist | /usr/bin/grep Option | /usr/bin/awk ‘{match($10, /pass[0-9]+/);

print substr($10, RSTART, RLENGTH) }’` -c ’01 00 00 00 00 00′ -i 1 i1 > /dev/null»;

};

Замените идентификаторы vendor и product на соответствующие вашему модему.

 

В строке action необходимо поменять несколько вещей:

/usr/bin/grep Option <- заменить выводом camcontrol devlist,  это Option

$10 <- $10 это значение 10-го результата строки camcontrol devlist, у меня это значение pass1.

Пример:

</option><option … > at scbus1 target 0 lun 0 (da1,pass1)

$1 = </option>$2 = ICON

$3 = 2.31>

$4 = at

$5 = scbus1

$6 = target

$7 = 0

$8 = lun

$9 = 0

$10 = (da1,pass1)

/pass[0-9]+/ <- замените последнее значение соответствующим их вашего вывода camcontrol devlist, если у вас это cd1 здесь должно бы /cd[0-9]+/

 

Сохраните  option.conf. Отключите ваш модем и выполните перезапуск /etc/rc.d/devd для перезагрузки новой конфигурации devd.

#/etc/rc.d/devd restart

Stopping devd.

Starting devd.

 

Подключите снова свой модем и если всё  будет хорошо вы получите сообщение:

umass1: detached

ucom0: <option … > on uhub2

ucom0: configured 3 serial ports (U0.%d)

 

Если данноего сообщения нет,  повторите включение несколько раз.

Отключение модема в ручную, не используя devd:

# camcontrol devlist

</option><option … > at scbus1 target 0 lun 0 (da1,pass1)

# camcontrol cmd pass1 -c «01 00 00 00 00 00» -i 1 i1

Если всё нормально, ucom0 поднялся, тогда u3g создаст /dev/cuaU0.0, если вы будете использовать ubsa, то будет создан /dev/cuaU0. Мы будем использовать /dev/cuaU0.0 в ppp.conf.

 

Вот выборка ppp.conf для Malaysia Celcom 3G ISP.

 

# MaUi~~ (Jun, 21, 2009)

# 3G (HSDPA/UTMS) /etc/ppp/ppp.conf (FreeBSD)

# This file should be in put in /etc/ppp/

# IMPORTANT! every line IN A LABEL (label:) should start with a space!!

# word «#» infront of line tell ppp not to read the line

# to start dialing. run —> ppp -ddial label (or any label you add)

default:

# add default gateway when connected

# шлюз по-умолчанию

add default HISADDR

# ——————————

# to enable NAT for sharing internet with other pc

#Включаем NAT

nat enable yes

# ——————————

# enable dcc send from client behind the gateway

nat same_ports yes

nat use_sockets yes

# ——————————

# to see connection error/link/speed : tail -f /var/log/ppp.log

# Логи для изучения ошибок

set log phase tun connect

# ——————————

# auto update with the isp nameserver in /etc/resolv.conf

# Пользуемся сервером DNS

enable dns

# or used other dns server

# set dns 127.0.0.1

# ——————————

# 3G Celcom.

# if using ubsa, ucom0 = cuaU0

# if using u3g, ucom0 = cuaU0.0

# Настройка самого модема

3g:

set device /dev/cuaU0.0

set dial «ABORT BUSY ABORT NOsCARRIER TIMEOUT 5 «» ATZ OK-ATZ-OK AT+CGDCONT=1,\»IP\»,\»celcom3g\» OK dATDT

TIMEOUT 40 CONNECT»

# dial number are *99# or *99***1

#Набрать номер,логин и ключ аунтификации

set phone «*99***1#»

set authname «»

set authkey «»

# Установить IP адреса с маской  на интерфейсе

set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0

enable lqr

# запретить работу по IPV6

disable ipv6cp

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *