HSDPA-UMTS-EDGE-GPRS
Введение
Нижеследущий текст описывает процесс подключения к интернету используя Novatel Wireless HSDPA модем и NetBSD версии 4.99.32 или выше.
Novatel Wireless делает возможным подключиться к 3G провайдеру либо к Интернету.
Модем предоставляет надежную беспроводную связь со средней скоростью 1.8Mbps и легкой инсталяцией устройства в любой мини PCI Express слот.
Фактически это те же самые карточки Dell продаваемые в их лэптопах, которые я использую.
Требования
Вам будет необходима NetBSD версии 4.99.32 или выше, с вкомпилированной поддержкой USB generic serial port
(например данные, поверх сотовых сетей) в ядре.
Выполните следующую команду для проверки поддерживает ли ваше ядро устройство ugensa (не найдено означает что
устройство ugensa не вкомпилировано в ядро):
# ident /netbsd|grep ugensa
И добавьте эти опции в ваше ядро если оно не поддерживает устройство:
ugensa* at uhub? port ?
ucom* at ugensa?
Опции должны быть включены в GENERIC ядре по умолчанию. Причина по которой нам необходима эта версия
NetBSD а не другая заключается в том, что в исходном коде NetBSD версии 4.99.32 есть ID производителя и устройства для этой карты и драйвер поддерживает это экзотическое устройство.
Вы также можете пропатчить исходники NetBSD версии 4.0. и добавить необходимые фрагменты кода сами.
Отредактируйте фай sys/dev/usb/usbdevs.h и добавьте в него определения модема (около линии 914).
#define USB_PRODUCT_DELL_HSDPA 0x8137 /* Dell/Novatel Wireless HSDPA Modem */
Отредактируйте файл sys/dev/usb/usbdevs и добавьте следующее определение (около линии 908).
product DELL HSDPA 0x8137 Dell/Novatel Wireless HSDPA Modem
Данные выше шестнадцатеричные значения определяются командой usbdevs -v:
port 2 addr 3: full speed, self powered, config 1, Novatel Wireless HSDPA Modem(0x8137), Novatel Wireless(0x413c), rev 0.00,
serial Novatel Wireless HSDPA Modem
Здесь вы можете увидеть ID продукта 0x8137 и ID производителя - 0x413c.
Карта определяет себя как Novatel Wireless хотя имеет ID фирмы Dell.
Когда все настроено и карта работает соответствующим вы должны увидеть ее в выводе dmesg | grep -i hsdpa:
ugensa0: Novatel Wireless Novatel Wireless HSDPA Modem, rev 1.10/0.00, addr 3
Реализация
Все что вам будет нужно так это использование утилит ppp идущих в поставку с NetBSD. Перейдите в директорию etc/ppp и создайте файл chatscript со следующими строками:
# строка "abort"
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO
ANSWER' ABORT DELAYED
# инициализация модема
ATZ
# номер провайдера
OK-AT-OK "ATDT*99***1#"
# соединение с провайдером
CONNECT \d\c
Ваш номер дозвона к провайдеру будет отличаться от приведенного в этом примере. Информацию о номере дозвона можно получить у вашего профайдера.
Далее создадим файл options со следующими сроками:
/dev/ttyU0
921600
noauth
crtscts
debug
persist
defaultroute
usepeerdns
novj
nobsdcomp
user 1122334455
lcp-echo-interval 30
lcp-echo-failure 10
mtu 1500
mru 1500
connect 'chat -v -f /etc/ppp/chatscript'
Опция "user" устанавливается в соответствии с номером вашего телефона.
Соединение
Теперь можно запустить демон ppp:
/usr/sbin/pppd call options
После выполнения этой команды, ваш сетевой интерфейс ppp0 должен быть поднят. Проверьте это утилитой ifconfig.
В файле options включен дебагинг и вы можете увидеть логи pppd в файле /var/log/messages.
Этот простой shell скрипт предназначен для быстрого подключения к провайдеру.
#!/bin/sh
# Script to connect to 3G
# By yazzy[at]yazzy[dot]org
# Date: Dec 10 2007
#
#
# Some variables:
SUDO=${SUDO:-`which sudo`} # Where to find sudo
PPPD=${PPPD:-`which pppd`} # Where to find pppd
showchoices() {
echo ""
echo "Please type in one of the arguments: (c)onnect or (d)isconnect.\n"
}
startpppd() {
echo "Dialing ..."
${SUDO} ${PPPD} call options
if [ $? != 0 ]; then
echo
echo
echo "Connection failed."
echo
else
echo
echo
echo "Connection created."
echo
fi
}
connect() {
# Is ttyUSB0 device there?
if [ -c ${DEV} ]; then
startpppd
else
echo "Modem device not found."
fi
}
disconnect() {
if [ -f /var/run/ppp0.pid ]; then
echo -n Disconnecting ...
${SUDO} kill `cat /var/run/ppp0.pid`
if [ $? != 0 ]; then
echo Something went wrong. The connection is probably still up.
else
echo Done
fi
else
echo Connection already is down 1>&2
fi
}
# Chose an option to start this script with
case $1 in
"") ### Show the message when no arguments are given.
showchoices ;;
[Cc]|[Cc][Oo][Nn][Nn][Ee][Cc][Tt])
connect ;;
[Dd]|[Dd][Ii][Ss][Cc][Oo][Nn][Nn][Ee][Cc][Tt])
disconnect ;;
*) ### Show the message for every other option.
showchoices ;;
esac
Заключительные мысли
Все доступные опции файла options могут быть найдены в ман файле pppd(8).
Вы так же можете использовать kppp для конфигурации соединения, но у меня уже был с ним проблемный опыт.
И помня, что серфинг, используя 3G мобильные сети очень дорог, я не рекомендую скачивать большие файлы не имея анлима...
Я также обнаружил несколько HSDPA устройств, которым необходимо как минимум 1.16 версия драйвера ugensa из-за несоответствий ID производителей и ID устройств.
Автор YazzY
Оригинал "http://www.ezunix.org/index.php?title=HSDPA-UMTS-EDGE-GPRS"
Перевод rmx
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 6259 просмотра