Единственная возможность у меня дома выйти в сеть интернет — подключиться к беспроводному CDMA Wellcom (местный аналог SkyLink'а). А так как компьютеров несколько — желательно раздать этот самый Wellcom для всех, независимо друг от друга. Отличнейшим решением становится использование wi-fi роутера D-Link DIR-320, имеющего USB-порт, с альтернативной прошивкой, позволяющей подключить к нему USB-модем AnyData ADU-300A.
Теоретически, этот вопрос уже неоднократно обсуждался на просторах необъятной сети, я же решил свести все в одну «инструкцию для ленивых».
Дальше упражняемся в консоли телнетовской сессии (лучше через copy/paste, чтобы не ошибиться в написании). Для начала нам необходимо определить vendor и product code для нашего модема. Для каждого устройства они уникальны. В открытой сессии telnet даём команду:
Теперь вставляем модем в USB-порт роутера и наблюдаем за происходящим. На экране должно появиться нечто подобное:
Записываем параметры vendor и product. Выходим по Ctrl-C.
Проверяем запуск порта модема:
на экране должно появиться что вроде этих строк:
Отлично! Нам теперь доступны порты /dev/usb/tts/0 и /dev/usb/tts/1, из которых нам понадобится первый — tts0.
Теперь добавляем скрипты дозвона ppp-соединения:
Создаём файл /tmp/ppp/peers/dialup, но сначала недостающий каталог peers:
Запускаем редактор и используем обычный «копипаст»:
В редакторе vi переходим в режим редактирования, нажав «i», и вставляем код, начиная с верхнего левого угла:
Жмём «Esc» и сохраняем в файл командой
Выходим из редактора
для проверки делаем просмотр созданного файла командой:
Результат должен быть именно таким, как и в вышеприведенных строках:
Следующий файл /tmp/ppp/dialup.chat копипастим аналогично:
результат:
Добавляем созданные файлы в /tmp/local/.files командами:
Сохраняемся в память роутера
И перегружаем роутер командой:
Теперь можно перекурить, а заодно и проверить работоспособность соединения перед завершающим этапом. Файлы дозвона у нас уже сохранены, необходимо лишь еще раз, вручную, запустить порт модема.
Теперь можем пробовать соединиться. Обратите внимание — в нашем скрипте dialup указан параметр nodetach, поэтому мы будем оставаться в открытой сессии до нажатия Ctrl-C. Таким образом, можно будет увидеть, что происходит в процессе дозвона:
После ввода команды в нашей телнетовской терминальной сессии должно происходить что-то подобное:
Теперь уже можно открыть браузер, спросить что-нибудь у гугля (или яндекса, по вкусу), зайти на любимый сайт… Можно также проверить скорость соединения через http://www.testinternet.ru/ или подобные, чтобы убедиться, что она не ниже, чем было при прямом подключении к компьютеру.
Для завершения соединения возвращаемся в окно telnet и жмём Ctrl-C.
Чтобы постоянно не прописывать все эти интересные и увлекательные штуки при каждом включении роутера, создадим файл автозапуска порта модема и соединения — /tmp/local/sbin/post-boot
Наполняем файл автозагрузки:
Что бы наш файл мог выполниться системой при загрузке, присваиваем ему атрибут выполнения:
И не забываем сохраняться
Всё готово! Перегружаемся и пробуем!
Для контроля выполнения команд можно открыть сессию телнет с командой:
Наслаждаемся работой системы!
Важно!
Коды Vendor и Product в статье указаны для моего модема! Не забывайте менять их для своих устройств!
Теоретически, этот вопрос уже неоднократно обсуждался на просторах необъятной сети, я же решил свести все в одну «инструкцию для ленивых».
- После первоначального включения роутера он прописался в моей домашней локальной сети с адресом 192.168.0.1. Ставим IP-адрес сетевой карты компьютера в 192.168.0.2. Подключаем роутер прилагаемым шнурком к сетевой карте компьютера. Важно — все остальное, ежели вдруг оно есть, от роутера отключаем!
- Качаем проверенную мной прошивку, представляющую из себя вариант прошивки Олега. Переименовываем ее в firmware.bin
- Скачиваем tftp2.exe. Запускаем, указываем в настройках адрес роутера (192.168.0.1, не забыли?) и путь к прошивке. Путь не должен иметь пробелов и отличных от английских символов. Я положил все в c:\temp и запускал оттуда.
- Отключаем питание роутера. Зажимаем reset.
- Не отпуская reset, включаем питание роутера и ждём появления индикатора-«тучки» подключения сетевого устройства.
- Отпускаем reset и одновременно жмем на кнопку «Upgrade» в программе tftp2. С первого раза не всегда получается сделать это вовремя, надо потренироваться.
- В случае попадания наблюдаем частое помигивание индикатора LAN (~3-4 сек).
- Ждём порядка 5 минут пока прошивка «развернётся», после этого загорится индикатор «статус».
- Ставим IP сетевой карты компьютера на автоматическое получение адреса.
- Заходим в роутер по протоколу telnet (адрес 192.168.1.1) login/pass: admin/admin. Для работы с telnet под Виндой рекомендую воспользоваться putty.
c:\> telnet 192.168.0.1
Login: admin
Password: admin
Дальше упражняемся в консоли телнетовской сессии (лучше через copy/paste, чтобы не ошибиться в написании). Для начала нам необходимо определить vendor и product code для нашего модема. Для каждого устройства они уникальны. В открытой сессии telnet даём команду:
$tail -f /usr/tmp/syslog.log
— смотрим логи ядра системы в реальном времени.Теперь вставляем модем в USB-порт роутера и наблюдаем за происходящим. На экране должно появиться нечто подобное:
Okt 29 05:02:09 kernel: hub.c: new USB device 00:03.0-1, assigned address 2
Okt 29 05:02:09 kernel: usb.c: USB device 2 (vend/prod 0x16d5/0x6506) is not claimed by any active driver.
Записываем параметры vendor и product. Выходим по Ctrl-C.
Проверяем запуск порта модема:
$insmod usbserial vendor=0x16d5 product=0x6506 (не забываем указывать ваши собственные значения!)
$ls -l /dev/usb/*
на экране должно появиться что вроде этих строк:
crw------- 1 admin root 188, 0 Okt 29 2009 0
crw------- 1 admin root 188, 1 Okt 29 2009 1
Отлично! Нам теперь доступны порты /dev/usb/tts/0 и /dev/usb/tts/1, из которых нам понадобится первый — tts0.
Теперь добавляем скрипты дозвона ppp-соединения:
Создаём файл /tmp/ppp/peers/dialup, но сначала недостающий каталог peers:
$mkdir /tmp/ppp/peers
Запускаем редактор и используем обычный «копипаст»:
$vi
В редакторе vi переходим в режим редактирования, нажав «i», и вставляем код, начиная с верхнего левого угла:
debug
/dev/usb/tts/0
115200
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 5
usepeerdns
noauth
nodetach
mtu 1400
mru 1400
user 'cdma'
password 'cdma'
connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2 > /tmp/chat.log"
Жмём «Esc» и сохраняем в файл командой
:w /tmp/ppp/peers/dialup
Выходим из редактора
:q
для проверки делаем просмотр созданного файла командой:
$cat /tmp/ppp/peers/dialup
Результат должен быть именно таким, как и в вышеприведенных строках:
debug
/dev/usb/tts/0
115200
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 5
usepeerdns
noauth
nodetach
mtu 1400
mru 1400
user 'cdma'
password 'cdma'
connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log"
Следующий файл /tmp/ppp/dialup.chat копипастим аналогично:
$vi
'' ''
'' 'ATZ'
'OK' 'ATD #777'
'CONNECT' ''
Esc -> :w /tmp/ppp/dialup.chat -> :q
результат:
$cat /tmp/ppp/dialup.chat
'' ''
'' 'ATZ'
'OK' 'ATD #777'
'CONNECT' ''
Добавляем созданные файлы в /tmp/local/.files командами:
$echo /tmp/ppp/peers/dialup > /tmp/local/.files
$echo /tmp/ppp/dialup.chat >> /tmp/local/.files
Сохраняемся в память роутера
$flashfs save && flashfs commit && flashfs enable
И перегружаем роутер командой:
$reboot
Теперь можно перекурить, а заодно и проверить работоспособность соединения перед завершающим этапом. Файлы дозвона у нас уже сохранены, необходимо лишь еще раз, вручную, запустить порт модема.
$insmod usbserial vendor=0x16d5 product=0x6506
Теперь можем пробовать соединиться. Обратите внимание — в нашем скрипте dialup указан параметр nodetach, поэтому мы будем оставаться в открытой сессии до нажатия Ctrl-C. Таким образом, можно будет увидеть, что происходит в процессе дозвона:
$pppd call dialup
После ввода команды в нашей телнетовской терминальной сессии должно происходить что-то подобное:
Script /usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log finished (pid 162), status = 0x0
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/usb/tts/0
............................................................
local IP address 10.50.29.187
remote IP address 10.50.29.148
primary DNS address 80.255.144.8
secondary DNS address 80.255.1.9
Script /tmp/ppp/ip-up started (pid 165)
Script /tmp/ppp/ip-up finished (pid 165), status = 0x0
Теперь уже можно открыть браузер, спросить что-нибудь у гугля (или яндекса, по вкусу), зайти на любимый сайт… Можно также проверить скорость соединения через http://www.testinternet.ru/ или подобные, чтобы убедиться, что она не ниже, чем было при прямом подключении к компьютеру.
Для завершения соединения возвращаемся в окно telnet и жмём Ctrl-C.
Чтобы постоянно не прописывать все эти интересные и увлекательные штуки при каждом включении роутера, создадим файл автозапуска порта модема и соединения — /tmp/local/sbin/post-boot
$mkdir /tmp/local/sbin
Наполняем файл автозагрузки:
$vi
#!/bin/sh
insmod usbserial vendor=0x16d5 product=0x6506
sleep 5
pppd call dialup
Esc -> :w /tmp/local/sbin/post-boot -> :q
Что бы наш файл мог выполниться системой при загрузке, присваиваем ему атрибут выполнения:
$chmod +x /tmp/local/sbin/post-boot
И не забываем сохраняться
$flashfs save && flashfs commit
Всё готово! Перегружаемся и пробуем!
$reboot
Для контроля выполнения команд можно открыть сессию телнет с командой:
$tail -f /usr/tmp/syslog.log
Наслаждаемся работой системы!
Важно!
Коды Vendor и Product в статье указаны для моего модема! Не забывайте менять их для своих устройств!