Глава 7. Wi-Fi для Linux
Глава 7. Wi-Fi для Linux
Каждый беспроводной сетевой адаптер (за исключением Apple AirPort Card) поставляется с драйверами и конфигурационными инструментами для Microsoft Windows, но это не означает, что Windows является единственной операционной системой, которая будет работать с данным адаптером. Сети TCP/IP безразлично, какой тип операционной системы используется на компьютерах, подключенных к ней. Она просто принимает биты и байты с порта компьютера и распространяет их. Если вы можете найти нужный драйвер для своего сетевого адаптера, у вас есть возможность использовать беспроводную сеть с компьютером любого типа. Данное утверждение так же справедливо для Linux и различных версий Unix, как и для систем Windows и Macintosh. Эта глава содержит информацию о подключении вашего компьютера на базе Linux к сети Wi-Fi и описывает некоторые утилиты и инструменты, которые могут упростить положение вещей. В главе 8 вы можете найти похожую информацию об использовании в сети Wi-Fi компьютеров Unix.
Найти нужный драйвер не всегда просто. Данная глава поясняет, как найти необходимые драйверы под Linux для нескольких адаптеров и как установить и использовать их для подключения к беспроводной сети. Глава предназначена для пользователей, которые уже имеют достаточный опыт работы с Linux по настройке и использованию проводного сетевого подключения. Если вам необходимо получить дополнительную поддержку по использованию ваших клиентов под Linux, вы должны обратиться к соседу-специалисту или поискать более подробную книгу по Linux.
Драйверы: особенности и противоречия
Перед тем как глубже окунуться в таинства подключения устройств под Linux к беспроводным сетям, давайте уделим немного времени обзору задач драйверов и причине их чрезвычайной важности. В этой главе вы сможете найти совет по поиску нужных драйверов для различных типов беспроводных сетевых адаптеров и их использованию для подключения компьютеров под Linux к беспроводной сети.
Драйвер — это средство взаимодействия операционной системы и периферийного устройства, подключенного к компьютеру. Драйвер преобразует входящие команды и данные, полученные или переданные устройству в форму, понятную операционной системе. Он управляет памятью и синхронизацией с ОС, определяет порты ввода-вывода (I/O) и прерывания, которые будут использоваться с операционной системой. На рис. 7.1 показано взаимодействие между компьютером и стандартным драйвером устройства.
Рис. 7.1
Каждое периферийное устройство, включая беспроводной сетевой адаптер, требует драйвер, преобразующий стандартные функции ОС в команды управления. Устройство без правильного драйвера полезно не больше, чем пресс-папье или дверная пружина.
Например, драйвер для клавиатуры сообщает компьютеру о том, какой порт ввода/вывода переносит данные, преобразует нажатия клавиш в понятные данные и управляет включением/выключением индикаторов Caps Lock, Num Lock и Scroll Lock. Драйвер принтера содержит специальные алгоритмы, отличающие матричный принтер от лазерного. Драйвер для устройства ввода или вывода будет определять, используется ли при работе последовательный или параллельный порт, USB-порт, разъем PCMCIA или один из внутренних слотов расширения на материнской плате компьютера. Драйвер для беспроводного сетевого адаптера устанавливает номер канала, используемый радиоустройством для передачи и приема данных, уровень передаваемой радиоустройством мощности и скорость передачи данных.
Драйверы для беспроводных Ethernet-адаптеров управляют на физическом уровне протоколами TCP/IP, оперируя информацией, необходимой адаптерам для установки и использования радиосоединений с сетью, тогда как другие уровни определяют формат передаваемых данных и их содержание. Этим гарантируется возможность адаптера работать с различными форматами данных.
Драйверы также согласовывают работу некоторой части оборудования с различными операционными системами. Они преобразуют входные и выходные сигналы в команды на «родственном языке» устройства и наоборот.
Драйверы, написанные для различных операционных систем, управляющих одним и тем же устройством, начинают работу, имея инструкции в виде различных форм, и преобразуют данные инструкции в тот же самый набор элементов управления устройством. Поэтому, если ваш компьютер работает под Linux, требуются драйверы устройства, написанные специально для данной операционной системы.
Может быть полезным представление драйвера как словаря для устройства.
Все словари, написанные на английском, датском и малайском, содержат одинаковый набор понятий, но они представлены на языках, которые будут понятны разным пользователям. Драйверы компьютерных устройств аналогичны, только вместо языков человеческой речи выступают операционные системы.
Драйвер устройства является отличной от конфигурационной утилиты программой, но многие разработчики программного обеспечения комбинируют оба типа в единую программу установки. Конфигурационная утилита содержит набор конфигурирующих устройство команд и поля ввода, принимающие данные в обоих направлениях через драйвер к сетевому адаптеру.
Где искать драйверы
Итак, вам нужен драйвер для операционной системы компьютера, чтобы использовать беспроводной сетевой адаптер. Если вам повезло или вы предусмотрительно побывали в нужном магазине, необходимый драйвер находится на CD-ROM, поставляемом с адаптером или в комплекте с операционной системой.
Большая часть выпускаемых беспроводных адаптеров является брендовой продукцией, имя настоящего производителя которой не указывается на упаковке или корпусе самого устройства. Зачастую необходимо выполнить некую исследовательскую работу по определению нужного драйвера для конкретного адаптера. Orinoco и Cisco занимают особенно активную позицию на рынке изготовления адаптеров по лицензии. Производители адаптеров могут не захотеть, чтобы вы знали о том, чье оборудование помещено внутри их корпусов, но разработчики посреднических драйверов для Linux зачастую определяют, какие марки с какими драйверами будут работать.
Главным носителем драйвера под Linux для вашего беспроводного адаптера является CD, поставляемый с адаптером. Некоторые производители включают их вместе с драйверами под Windows, но не рассчитывайте на это. Хорошо, если драйвер входит в комплект. Тогда вам не придется тратить время на его поиски в других источниках.
Если у вас есть возможность выбора, лучше приобрести адаптер, который поставляется с драйвером для вашей операционной системы. Производители адаптеров, выпускающие драйверы под Linux, делают все возможное для предоставления своей продукции потенциальным пользователям, но на данном этапе развития рынка беспроводных сетей подобные драйверы не распространены. Кроме того, они тестируются самими производителями, и в случае некорректной работы вам есть где искать виноватых. Но нет ничего хуже, чем в ответ на любые вопросы услышать от сотрудников службы технической поддержки из центра приема заказов, что они не поддерживают данное программное обеспечение.
Так как Wi-Fi-сети становятся все более популярными, у производителей появляется больше стимулов продавать драйверы, предназначенные для относительно узкого сегмента рынка. Когда общее количество беспроводных пользователей измеряется десятками миллионов, пять или менее процентов тех, кто хочет использовать беспроводную сеть с Linux, превращается в значительное число потенциальных покупателей.
Если драйвер не поставляется с адаптером, проверьте Web-сайт производителя на наличие таковых, доступных для бесплатной загрузки. Многие производители печатают адреса Web-сайтов на этикетках своих адаптеров и в руководствах, но если вы не можете отыскать адрес, попробуйте набрать http: / /www, [название марки].сот или посмотрите в одной из online-директорий драйверов к устройствам, например http://www.windrivers.com. http://www.driverzone.com или http://www.driversplanet.com. Слйты-директории ориентируются на сбор драйверов для Windows, но как только вы зайдете по ссылке на страницу драйверов производителя, как правило, сможете найти драйверы и для других операционных систем, если они вообще существуют.
Если у вас уже есть адаптер, изготовленный компанией, не поддерживающей Linux, вам придется перейти из относительно стабильного мира коммерческого оборудования к необъятной вселенной групп пользователей, спискам адресов электронной почты и Web-сайтам. Сообщества пользователей, упомянутых здесь, состоят из людей, стремящихся повысить эффективность своих любимых операционных систем, и тех, кто тратит свое личное время (и рабочие ресурсы) на предоставление информации и ответы на вопросы. В таких сообществах десятки разработчиков программного обеспечения создают драйверы к устройствам и конфигурационные инструменты для беспроводных адаптеров.
Драйверы для Linux
Более 80 различных марок беспроводных сетевых адаптеров имеют ярлыки сертификации Wi-Fi, но почти все они используют один из четырех-пяти интегрированных чипсетов. Следовательно, для управления почти всеми адаптерами необходимы лишь несколько драйверов Linux.
Некоторые компании, в том числе Cisco, Intel, Orinoco, Addtron и Samsung, для беспроводных сетевых адаптеров предлагают свои собственные драйверы Linux. Если вы не можете найти драйвер Linux от изготовителя, можно попробовать использовать один из драйверов, имеющихся в комплектах поставки Linux, или скачать драйвер от посредника-разработчика. В табл. 7.1 содержится частичный перечень драйверов для Linux.
Таблица 7.1. Драйверы беспроводных адаптеров для Unux
Адаптер
Адаптеры, использующие чип Intersil Prism II Actiontec, Addtron, Bromax, Compaq, D-Unk, GemTec, Unksys, Nokia, Samsung, SMC, Z-Com, ZoomAir и прочие
Источник драйвера
Скачайте последнюю версию wlan-ng драйверов на http://linux-Wlan.CQm/PUP/linux-Wlan-ng или попробуйте драйверы HostAP на http://www.epitest.fi/Pnsm2
Адаптер
Orinoco, Lucent
Источник драйвера
Драйверы Unux на CD поставляются с адаптерами и на http://www.orinocowireless.com
Для получения информации об альтернативных драйверах, см http://www.hpi.hp com/personai/Jeap.Tpurriipes/Unux/Qnnocchtmi
Адаптер
Apple
Источник драйвера
Адаптеры AirPort являются частными версиями продуктов Orinoco Попробуйте скачать драйверы на http://www.orinocowireless.com или
http://www.hp|.hp.CQm/persQnal/Jean_Tourrilhes/Linux/QrinQCpfhtrnl
Адаптер
BreezeComDS11
Источник драйвера
http://www.xs4ailni/~bvermeui/swailpw
Адаптер
Cisco 340 и 350, Dell TrueMobile 1100
Источник драйвера
http://www.cisco.com/public/sw-sentr/sw-wireless.shtml Другая версия данного драйвера входит в состав пакета Linux PCMCIA и ядро Unux под наименованием airo о (для PCI и ISA версий) и airo_csо (для PCMCIA)
Адаптер
D-Unk DWL-500
Источник драйвера
ftp //ftp.dlink.com/Wireless/DWL-500/Driver/DWL500_linux_driver_034.tar.gz
Адаптер
Ericsson 11 Mb DSSS WLAN
Источник драйвера
http://www.ericsson.cQm/wlan/su_downloads11.asp
Адаптер
Intel PRO/Wireless 2011
Источник драйвера
http://www.appsr.cps.intel.com.scnpts-df/Product_Filter.asp?ProductID=450
Адаптер
Nokia C110/C111
Источник драйвера
http://www.nokia.com/phones/productsupport/wlan/c110_c111
Адаптер
Samsung MagicLan
Источник драйвера
http:/www.magiclan.com.product/magiclan/download/mlist.isp
Адаптер
Symbol Spectrum24 High Rate, 3Com AirConnect
Источник драйвера
http://vww.sourceforge.net/projects/spectrum24
Адаптер
3Com WLAN XJack
Источник драйвера
http://www.xs4all.nl/~bvermeul/swallow
Адаптер
D-Link DWL-650+ и устройства со скоростью 22 Мбит/с от других поставщиков
Источник драйвера
Почти все из этих карт используют новый чипсет Т1, на момент написания книги не имевший поддержки Linux. О будущих разработках можно поставщиков узнать на http://wyw.hpl.hp.com/personal/Jean_Tourrilhes/Linux
Если вы не можете найти свой адаптер в этом списке, посмотрите на Web-сайте Wireless LAN Resources for Linux (Беспроводные ресурсы LAN для Linux) на http://www.hpI.hp.com/personal/Jean_Tourrilhes/Linux. Этот сайт служит в качестве центра сбора информации о работе беспроводных сетей под Linux.
Не вся информация на сайте касается сетей 802.11b, но здесь представлено очень много полезной информации.
Сообщество Linux известно тем, что оказывает помощь новым пользователям. Специалисты, знающие о том, какой драйвер будет работать с вашим беспроводным адаптером Whoopie-Matic Lightning Bolt, возможно, уже указали ссылки на необходимую вам информацию в сетевой конференции Linux.
Сетевая конференция comp.os.linux.networking представляет собой место для размещения вопросов о нахождении драйверов для беспроводных сетевых адаптеров.
Перед размещением ваших собственных вопросов всегда полезно просмотреть архивы конференций на предмет ранее опубликованных ответов, которые могут решить вашу проблему. Группы пользователей обычно оказывают большую помощь, если знают, что вы, по крайней мере, попытались найти ответ сами.
Посмотрите в секции comp.os.linux на http://groups.google.com для поиска архивов предыдущих вопросов и ответов.
Чипсеты Prism от Intersil используются в большинстве беспроводных сетевых адаптеров, выпускаемых под многими марками. Web-сайт Intersil
содержит текущий список пользователей Prism на http: //www.intersil.com /design /prism/prismuser/index.asp.
Если ваш адаптер создан на чипсете Prism, можно использовать драйвер linux-wlan, доступный для загрузки на http://www.linux-wlan.com/download.html.
Если вашего адаптера нет в списке Prism и ни один из других источников не может сообщить вам, где найти драйвер, следующим этапом является идентификация и поиск драйвера для чипсета внутри адаптера. Эту информацию почти всегда можно найти, введя ID-код ФКС, указанный на этикетке адаптера, на поисковой странице FCC ID Search Page Федеральной комиссии связи на http://www.fcc.gov/oet/fccid. Эта база данных предоставляет ссылки на базу данных с копиями документации, предоставляемой с приложением производителя для утверждения типового образца. Обычно в нее включается техническое описание и несколько основных схем. Беглого чтения достаточно, чтобы получить ответ о производителе чипсета, а эта информация поможет найти подходящий драйвер.
Другие программы для беспроводной сети под Linux
Некоторые из драйверов Linux для специальных беспроводных адаптеров поставляются с конфигурационными утилитами, управляющими назначением каналов, выбором SSID и так далее. Также доступны отдельные пакеты беспроводных приложений, которые могут упростить процессы настройки и использования беспроводного подключения к сети.
Как правило, эти пакеты основаны на Wireless Extensions (Беспроводные расширения) для Linux API, которые включены в большинство последних версий Linux и программы Wireless Tools (Инструменты беспроводной сети), применяющие беспроводные расширения. Комбинированная документация по Wireless Extensions и по Wireless Tools представлена в режиме online на http://www.hpl.hp.cQm/personal/Jean_Tourrilhnes/Linux/UnMX.Wireless.Exten$ionsThtml.
По мере появления другого программного обеспечения для Linux Web-страница Wireless Tools for Linux http://wvw.bpl.hp.com/personal/Jear_Tourrilhes/Linux/Tools.html) станет, вероятно, одним из лучших мест для получения необходимой информации.
Если ядро поддерживает беспроводные расширения, пользователь может менять сетевую конфигурацию без перезапуска драйвера. Беспроводные расширения являются отключенными по умолчанию, поэтому в конфигурации ядра пользователь должен включить функцию CONFIG_NET_RADIO.
Wireless Tools
Wireless Tools (Инструменты беспроводной сети) представляют собой набор программ, управляющих беспроводными расширениями. Они доступны для загрузки на http://www.hpl.hp.com/personal/Jean_Tourrilhes_Linux/Tools.html.
Wireless Tools являются консольными программами, но также обеспечивают основу для других программ, которые добавляют графический интерфейс пользователя (GUI) к органам управления и статистики.
Wireless Tools содержит каталог /proc/net/wireless и три программы: iwconfig, iwspy и iwpriv. Программы Wireless Tools скорее являются основой для разработчиков программного обеспечения, нежели простыми в использовании ресурсами для конечных пользователей. Они выполняют важную подготовительную работу для других программ, поэтому полезно знать принцип их работы и доступные функции. С точки зрения же реальной работы программы, аналогичные KOrinoco и gWireless, гораздо более просты в использовании для каждого, за исключением наиболее ярых приверженцев командной строки.
/proc/net/wireless
Каталог /proc/net/wireless представляет собой виртуальный каталог в псевдофайловой системе /ргос, который отображает некоторую статистическую информацию о беспроводном интерфейсе. Каталог /ргос показывается как файлы, поэтому команда cat /proc/net/wireless будет отображать состояние беспроводной сети:
>cat /proc/net/wireless
Inter-lstal Quality I Discarded packets
face Itusllink level noise I nwid crypt misc
eth2: fO 15. 24. 4 181 0 0
Расшифровывается данный перечень следующим образом:
— листинг status показывает текущее состояние сетевого устройства;
— значения Quality (Качество) представляют качество сигнала в соединении, уровень сигнала на входе приемника и уровень шума приемника при отсутствии сигнала;
— значения Discarded packets (Отброшенные пакеты) отражают количество пакетов, пропущенных из-за недействительного сетевого ID (nwid) или из-за невозможности декодировать содержимое пакетов.
iwconfig
Программа iwconfig управляет функциями конфигурирования беспроводного адаптера. В сети 802.11b они включают следующие параметры:
— Channel — номер канала, используемого адаптером;
— nwid — код сети. В сети 802.11b nwid аналогичен SSID;
— name — название типа беспроводной сети или протокола, используемого в ней. Это может быть тип адаптера или стандартное название, например «802.11b»;
— enc — ключ шифрования, используемый в данный момент.
Команда iwconfig без аргумента воспроизводит список текущих значений iwconfig и /proc/net/wireless.
iwspy
Программа iwspy устанавливает и отображает IP-адрес локального компьютера и МАС-адрес.
Iwpnv
Программа iwpnv обеспечивает дополнительную поддержку для свойственных устройству расширений.
KOrinoco
KOrinoco — это программа, которая предоставляет информацию и конфигурационные настройки Wireless Tools в виде набора экранов и диалоговых окон для графической среды KDE рабочего стола. Она имитирует Orinoco Client Manager для Windows. Даже несмотря на то, что программа выглядит аналогично поставляемой с сетевыми адаптерами Orinoco, она должна работать и с другими марками, обеспечивающими поддержку драйверами беспроводных расширений под Linux. Информация о программе и инструкции для загрузки находятся в сети на http://korinoco.sourceforge.net.
Главное окно состояния KOrinoco показывает необходимую информацию о текущем подключении, в том числе уровень сигнала, номер канала и SSID текущего сетевого подключения. KOrinoco Configuration Editor (Редактор конфигурации KOrinoco) предоставляет все функции, необходимые для связи с беспроводной точкой доступа или подключения к Ad-Hoc-сети.
gWireless
gWireless представляет собой другой набор программ беспроводной сети, использующих информацию из Wireless Tools. Он включает апплет панели Gnome, по мере улучшения качества текущего сетевого подключения меняющий цвет с красного на оранжевый, а затем на зеленый, и графический интерфейс для функций и информации, использующий iwconfig. Графический интерфейс по-прежнему находится в стадии развития, но проект выглядит многообещающе. Домашней страницей для информации о gWireless является http://gwifiapplet.sourceforge.net.
NetCfg
NetCfg — это инструмент конфигурирования сети в среде Gnome. Он позволяет пользователю создавать и изменять профили подключения и менять сетевые настройки в режиме реального времени. Домашняя страница NetCfg расположена на http://netcfg.sourceforge.net.
Wavemon
Программа Wavemon для мониторинга и конфигурирования настроек беспроводного адаптера использует псевдографическую библиотеку ncurses. Она содержит экран Overview (Обзор) со всей важной информацией из Wireless Tools в графической форме, «оповещение об уровне», срабатывающее при падении уровня сигнала ниже предопределенного порога, и полноэкранный дисплей истории, отображающий изменения уровня сигнала, шума и качества сигнала с течением времени. Имеется также инструмент конфигурирования с набором меню для простоты настройки.
Для получения большей информации о wavemon и ссылок на свежую версию программы загляните на http://www.jm-music.de/projects.html.
Программы отображения состояния
Некоторые программы импортируют информацию из листингов /proc/net/ wireless в графические дисплеи. Основное различие между этими программами проявляется в формате дисплея.
Wvlanmon
Wvlanmon представляет собой разновидность апплета панели Gnome, который отображает качество связи в виде цветной панели. Вы можете найти wvlanmon на http://tobi.tildesoftware.net/index/projects/wvlanmon.
E-Wireless
E-Wireless — это апплет Enlightenment (Обучение), который отслеживает и отображает информацию о качестве сигнала на основании листингов /proc/net/wireless.
Программа доступна для загрузки на http://www.bitshift.org/wireless.shtml.
Wmwave
Wmwave представляет собой плавающую панель, отображающую качество связи, уровень сигнала и уровень шума в небольшом окне. Она доступна на http://www.schuermann.org/-dockapps.
GKrellMwireless
Монитор GKrellM — это графическое окно системной информации, которое может использовать темы для соответствия с внешним видом многих оконных менеджеров. Беспроводной плагин GKrellM добавляет информацию о сетевом подключении. Для получения общей информации о GKrellM зайдите на главный Web-сайт на http://web.wt.net/~billw/gkrellm/gkrenm.html. Для ознакомления с подробностями о беспроводном плагине зайдите на http://gkrellm.luon.net/gkrellmwireless.phtml.
WireStat
WireStat отображает беспроводные сетевые подключения в формате Xload.
Скачайте программу с http://www.bogor.net/idkf/idkf/software/linux-hack/wlan.
Удаленный мониторинг
Запись /proc/net/wireless выглядит как файл, поэтому здесь можно извлекать информацию о состоянии удаленных сетевых клиентов из сети. Программы Signal Level Server (Сервер уровня сигнала) и Clients (Клиенты) Стивена Хенли (Steven Hanley) предоставляют эту информацию в графическом окне. Для получения подробностей и загрузки зайдите на http://wibble.net/~sjh/wireless.
Конфигурирование течки доступа
Кроме Apple AirPort Base Station многие другие конфигурационные утилиты для беспроводных точек доступа используют Web-интерфейс, внутренний интерфейс командной строки с удаленного терминала или оба варианта, поэтому нет никакой разницы в том, какую операционную систему вы используете на компьютере-хосте, подключенном к точке доступа. Команды точки доступа, элементы управления и окна отображения состояния будут одинаковыми в любой системе.
Точка доступа Apple AirPort Base Station конфигурируется сложнее. Внутреннее программное обеспечение, поставляемое с AirPort Base Station, рассчитано на Macintosh-конфигурирование с использованием AirPort Setup Assistant (Мастер установки AirPort) и AirPort Admin Utility (Утилита администрирования AirPort).
Для настройки AirPort Base Station с хоста под Linux вам понадобится конфигурационная программа для Linux. На сегодняшний день только одна программа — AirPort Base Station Configurator — присутствует в этом описании. Отдельные версии программы для двух AirPort Base Station («Snow» и более старой «Graphite») доступны на http://edge.mcs.drexel.edu/GICL/people/sevy/airport.
Поскольку программа написана как приложение Java, AirPort Configurator будет запускаться на любом компьютере, где установлена Java Runtime Environment (JRE). Сюда относятся платформы Windows, Solaris и Linux. Вы можете получить копию JRE на http://java.sun.eom/products/jdk/l.2/jre.