На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » И2Р Программы » Мир Linux » Практикум в Linux

Дозваниваемся до Сети и ещё немного о ноутбуках

Рассказ об опыте использования Linux на ноутбуке, безусловно, не полон, но один пробел бросается в глаза особенно: представляя браузеры и средства работы с электронной почтой, я ничего не сказал о средствах доступа к Сети. А, между тем, если для десктопов выход в Интернет через локальную сеть всё чаще – не редкость, то для ноутбуков модем, по-прежнему, – неотъемлемый атрибут Интернет. Что ж, постараюсь восполнить этот пробел.

Абсолютное большинство программ поддержки доступа по последовательному каналу, обращаются к устройству с незатейливым названием /dev/modem. И это – правильно, поскольку вопрос «к которому именно последовательному порту подключён (или под именем которого эмулируется) модем» не имеет прямого отношения ни к дозвону, ни к PPP (Poin-to-Point Protocol). Это справедливо, но, в то же время, означает, что создание символической ссылки (симлинка) /dev/modem -> /dev/ttySn – может оказаться заботой пользователя. Здесь n – номер COM-порта, нумерация – от «0». Соответствующая команда очень проста:

 ln -s /dev/ttySn /dev/modem

Вполне может оказаться, что и эта команда не потребуется. Если вышеприведённый симлинк не был создан при инсталляции системы (что вполне вероятно), то его создаст любой из пакетов поддержки последовательного соединения, которым вам предстоит воспользоваться на следующем этапе. «Каноническим» в этом классе является, безусловно, пакет ppp Майкла Кэллагэна (Michael Callahan), включающий в себя драйвер ppp.c и демон pppd. Кроме того, ядро должно поддерживать ppp-соединение, что обеспечивается соответствующим модулем, но если вы не перекомпилировали ядро, отказавшись при этом от поддержки ppp, то всё необходимое в вашей системе уже есть. Пакет также включает в себя ряд утилит и скриптов, которые должны бы, по идее, избавить пользователя от каких бы то ни было трудностей при настройке соединений. Прежде всего, это – pppsetup. Именно этот скрипт создаст вышеупомянутый симлинк /dev/modem. Только сначала нужно будет ответить, к какому COM-порту подключён модем. Вопрос не столь уж тривиален, если речь идёт не о внешнем модеме, «ручками» подключаемом к определённому разъёму, а, например, о PCMCIA-устройстве. Последнее, кстати, должно было быть определено автоматически, что, как правило, и происходит. Если же этого не случилось, то придётся вспомнить о kudzu – демоне определения аппаратной конфигурации. Хочется верить, что трудностей с определением модема не возникнет: в противном случае задача значительно усложняется и обсуждение способов её решения уже выходит за рамки данной заметки. Прискорбно, конечно, что такой вариант не исключается, но… В Linux у вас, по крайней мере, есть шанс добиться работы устройства, производитель которого и не подозревал о возможности его использования под данной ОС, а велики ли шансы использовать устройство под MS Windows, если соответствующего драйвера – нет?

Если вы не знаете, к какому порту подключён модем (или какой порт эмулирует PCMCIA-устройство), то лучше сразу перейти к знакомству с более «изощрёнными» пакетами, мы же вернёмся к pppsetup. Последующие вопросы (телефонный номер провайдера, его DNS, скорость порта, строка инициализации модема) не должны вызвать затруднений. На вопрос о домене провайдера лучше не отвечать: «не пустой» ответ всего лишь удлинит путь вашего запроса, поскольку всякое неизвестное имя компьютера вместо того, что бы быть тут же направленным к DNS, сначала будет «разыскиваться» внутри домена провайдера, что совершенно бессмысленно, если только вы действительно не имели в виду одну из машин домена, и просто «по забывчивости» не указали его [домена] пост-фикс. А вот вопрос о том, какой тип аутентификации PPP использует ваш провайдер, поставит в тупик большинство пользователей. Не ошибусь, если предположу, что на этот вопрос не ответят и многие системные администраторы ISP. А скрываются за этим довольно простые вещи: в отличие от обычных BBS, протоколов SLIP и CSLIP, использующих для аутентификации набор вопросов-ответов, которые можно наблюдать непосредственно в терминальном окне, протокол PPP, дополнительно или «вместо» использует свои протоколы аутентификации. Это, по идее, должно повысить защищённость соединения. Протоколов таких несколько:

  • PAP – Password Autentification Protocol
  • CHAP – Challenge Handshake Autentification
  • MS-CHAP-80 – то же, но в исполнении MicroSoft. В Сети, пока, – редкость.

Что же делать, если неизвестно, какой протокол аутентификации использует провайдер и использует ли он его вообще? Если нет желания знакомиться со структурой файлов /etc/ppp/chap-secrets и /etc/ppp/pap-secrets, то можно запустить pppsetup дважды, указав в качестве протокола аутентификации первый раз PAP, а второй – CHAP. Вариант MS-CHAP-80 стоит пробовать только в том случае, если без этого успех не был достигнут. Вариант SCRIPT указывать нужно только в том случае, если известно, что провайдер требует выполнения специального скрипта. После этого стоит познакомиться с содержимым вышеназванных файлов. Кроме слегка отличающихся комментариев они должны содержать одинаковые строки:

 <username> * <password> *

Какой именно командой инициализируется соединение с провайдером (ppp-go, internet-on, etc.) зависит от конкретной реализации пакета ppp в вашем дистрибутиве. В любом случае, этот скрипт вызовет сначала программу дозвона chat, передав ей введённые вами данные, а после установки коннекта будет запущен pppd – демон, обслуживающий ppp-соединение. Вот, собственно, и всё по поводу ppp. Подробнее – здесь:

…Практически уверен, что у тех, кто только знакомится с Linux, имея опыт общения с MS Windows, вся изложенная информация вызовет недоумение и разочарование: «если это так сложно, то как же мы дозванивались в Windows? И где множество соединений, телефонов, сценариев?» Это недоумение не безосновательно. Его испытывали все, кто настраивал ppp-соединение под Linux. В том числе, наверное, Дэйв Кумбс (Dave Coombs) и Эйвери Пэннран (Avery Pennarun) – сотрудники Worldvisions Computer Technology. В отличие от многих, эти двое не только посетовали, но и написали в 1997 году свою «альтернативу» пакету pppwvdial. «Ревизии», правда, подверглась не работа ppp-демона (то есть пакет ppp по-прежнему используется), а вышеупомянутый chat и процедура конфигурации. Wvdial сам находит подключённый модем, определяет его максимальную скорость и формирует строку инициализации. Используя эвристические алгоритмы, wvdial также определяет способ дозвона и аутентификации, не требуя от пользователя никакой иной информации, кроме <username> и <password>. Поддерживается множество сценариев соединения, телефонов дозвона и т.д. Всё это описывается в одном файле, имеющем структуру, очевидную настолько, что его может редактировать пользователь, далёкий от программирования. Достаточно сказать, что три страницы руководства (man), полностью описывающие конфигурирование и использование программы, имеют суммарный объём менее 14кб. Название «умная (inelligent) программа ppp-соединения», использованное авторами, прочно закрепилось за wvdial. Успех был безусловным: программу дополняли графическими оболочками, счётчиками объёма передачи и времени, визуализаторами обмена, но сама она изменилась очень мало: нужды не было. Сочетание «главного» (/etc/wvdial.conf) и пользовательских (~/.wvdialrc) файлов конфигурации плюс возможность указывать при запуске секции конфигурационных файлов, которые определят конфигурацию для данного запуска, делают разнообразие настроек неисчерпаемым. Объём source-пакета программы – менее 70кб. Правда, если в вашей системе не окажется библиотеки wvstreams, то её придётся загрузить, но и это всего 180кб. Короче: «дёшево и сердито!». Даже – бесплатно, если быть точным. Возможно, некоторые пользователи узнают в этом описании «звонилку» из их дистрибутива: вполне вероятно, что так оно и есть: Debian, RedHat и SuSE и используют wvdial и внесли в его развитие свой вклад. Viva Open Source!

А теперь несколько слов о «потомках» wvdial:

  • Наиболее приемлемым графическим «образом» wvdial является, на мой взгляд, gtkdial. Как раз для ноутбука: ничего лишнего и минимальные требования к системе.
  • Если у вас нет недостатка в памяти и быстродействии процессора, но есть интерес к статистике ppp-соединения можно попробовать qtwvdialer. Красиво. Правда, кроме обычных для всех современных дистрибутивов Linux утилит и библиотек, в данном случае потребуются ещё и tmake и QtDesigner.
  • x-wvdial –демонстрация торжества UNIX-идеологии: скрипт размером в 20кб, написанный на языке командного интерпретатора (в MS-DOS такие назывались bat-файлами). Никакой компиляции, а через запуск других приложений можно не только соединиться с провайдером, но, и:
    • пинговать сервер провайдера во время сеанса – что б не отключил раньше времени;
    • принять электронную почту;
    • синхронизировать время;
    • отредактировать настройки wvdial.
    Вот уж – «мал золотник…»
  • А вот, наверное, пример того, как не надо делать – gppp. Ничего принципиально нового, «опора» на конфигурационные файлы wvdial и при этом – ошибки их анализа.
  • gpppnb – единственная из названных программ, которая «опирается» не на wvdial, а на скрипты ppp-on/ppp-off. Но внимания программа заслуживает не из-за этого отличия, а потому, что написана специально для ноутбуков и позволяет прямо из её окна управлять состоянием PCMCIA-карт.

Если вы используете ноутбук с PCMCIA-модемом, то вы должны были обратить внимание на последнюю из названных программ. PCMCIA-карты (особенно – «пожилые») не самые экономичные устройства и нагреваются при работе довольно сильно. А какой процент времени вы действительно используете свой модем или сетевую карту? То-то… Упомянутая программа, при своей очевидной полезности, не является, однако, «лучшим выбором» в своём классе. Поэтому, приведу несколько советов по эксплуатации PCMCIA-карт:

  • переводите их в «suspend» сразу после загрузки. Например, добавив в rc.local строку:
     cardctl suspend
    
  • включайте (resume), при необходимости, непосредственно командой:
     cardctl resume
    
  • если набор 14-ти символов представляется вам слишком утомительным, или вы никак не запомните нужную команду, в ~/.mc/menu можно вставить приведённые ниже строки – и с этих пор управлять модемом через меню MidnightCommander:
     0 Suspend modem
     cardctl suspend
     1 Resume modem
     cardctl resume
    
  • Ещё вариант – добавить пару строк в ~/.profile, после чего вместо 14 букв достаточно будет набирать только две: SU или RE
     alias SU='cardctl suspend'
     alias RE='cardctl resume'
    
  • ну, а если вы не чужды программированию, то «хорошим тоном» будет написать свой скрипт, активирующий PCMCIA-устройства перед запуском wvdial и переводящий их в «suspend» после окончания его работы. Например, такой:
     echo "Resuming modem..." cardctl resume 1 && sleep 2
     # пауза, причём, только в случае успешной инициализации
     echo "Starting GTKdial..."
     gtkdial & # запуск gtkdial в фоновом режиме
     echo "Press Enter when connected"
     read ready # при наличии коннекта - запускаем программу чтения почты
     poppy && # причём, с ожиданием окончания
     echo "Close GTKdial if You don't need connection"
     wait # ждём окончания всех запущенных процессов
     echo "Suspend modem?(y/n)?" # только после этого можно «гасить» модем
     read suspend
     if [ $suspend = 'y' ] # да и то, только если хочется
     then
     cardctl suspend 1 &&
     sleep 2 # чтобы заметить вывод не экран
     fi
    
    Скрипт запускается в терминальном окне X-Window, PCMCIA-модем занимает 1-й сокет, в качестве «звонилки» используется gtkdial, а почту считывает poppy. У вас, разумеется, может быть иначе, а остальное должно быть понятно из комментариев.

Описывая ppp, нельзя не упомянуть пакет diald, обеспечивающий «дозвон по требованию», когда какое-либо приложение потребует выхода в Интернет. А также ipchains и iptables, позволяющие превращать Linux-машину в «мост» в Интернет для локальной сети, но для ноутбуков, изначально послуживших поводом для этой заметки, это, всё-таки, скорее исключение, чем правило.

Владимир Попов
Softerra

Лучшие статьи раздела читайте в еженедельном сетевом журнале
"I2R Computer"
Подпишитесь на рассылку
"Мир Linux. И2Р"
Подписка на Subscribe.Ru
Другие разделы
Идеология
Программы
Linux против Microsoft
Установка и первые шаги
Практикум в Linux
Фольклор
Новое в разделе
FAQ по Linux
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100