Contents

  1. Вступление
  2. Установка
    1. Устанавливаем пакеты (с Internet-доступом на Ubuntu-машине)
    2. Устанавливаем пакеты (с Internet-доступом на другой машине)
      1. В настоящее время поддерживаемые версии
    3. Устанавливаем пакеты (без Internet-доступа)
  3. Конфигурация
    1. Запретите свободные драйверы
    2. Определяем беспроводной адаптер
      1. Беспроводной PCI-адаптер
      2. Беспроводной USB-адаптер
    3. Скачиваем Windows-драйверы
    4. Устанавливаем Windows-драйвер
      1. Устанавливаем Windows-драйвер, используя ndisgtk (графический интерфейс ndiswrapper)
      2. Устанавливаем Windows-драйвер, используя командную строку
    5. Загружаем модуль нового драйвера
    6. Настраиваем беспроводную сеть
      1. Настраиваем беспроводную сеть, используя nm-applet (пользовательский интерфейс GNOME для Network Manager)
      2. Настраиваем беспроводную сеть, используя network-admin (Network Admin)
      3. Настраиваем беспроводную сеть, используя командную строку
    7. Автоматически загружаем при старте
      1. Исключительно для апплета Network Manager
  4. Решение проблем
    1. Некоторые общие ошибки
  5. Компилируем последнюю версию ndiswrapper
    1. Устанавливаем заголовочные файлы ядра
    2. Скачиваем и распаковываем текущую версию
    3. Устанавливаем Ndiswrapper
    4. Собираем deb-пакеты и устанавливаем (работает только для старых версий ndiswrapper)
  6. Полезные ссылки

1. Вступление

Даже если для вашей беспроводной сетевой карты нет родного Linux-драйвера, у вас по-прежнему есть возможность заставить её работать с помощью Ndiswrapper. Ndiswrapper — модуль Linux, который позволяет Ubuntu использовать Windows-драйвер для беспроводных карт (в большинстве случаев).

2. Установка

Ubuntu поставляется с необходимым предустановленным драйвером, но нуждается в пакете ndiswrapper-utils, чтобы заставить его работать. Кроме того, есть графический интерфейс для ndiswrapper, которым вы можете воспользоваться, — ndisgtk. Этот интерфейс позволит вам устанавливать (install), удалять (uninstall) и автоматически запускать (automatically start) ndiswrapper-драйверы с наименьшими усилиями.

2.1. Устанавливаем пакеты (с Internet-доступом на Ubuntu-машине)

Если вам удалось получить доступ в Интернет каким-то другим методом, находясь при этом в системе Ubuntu, то:

1. Убедитесь в том, что репозитории multiverse и universe разрешены; см. AddingRepositoriesHowto

2. Установите пакет ndisgtk из репозиториев Ubuntu.

sudo apt-get install ndisgtk

Если вы не знаете, как устанавливать приложения, вы можете прочитать это руководство.

2.2. Устанавливаем пакеты (с Internet-доступом на другой машине)

Скачайте файлы для своей версии Ubuntu:

2.2.1. В настоящее время поддерживаемые версии

  1. Для 10.04 Lucid Lynx
    1. http://packages.ubuntu.com/lucid/misc/ndiswrapper-common

    2. http://packages.ubuntu.com/lucid/ndiswrapper-utils-1.9

    3. http://packages.ubuntu.com/lucid/ndisgtk

  2. Для 9.10 Karmic Koala
    1. http://packages.ubuntu.com/karmic/misc/ndiswrapper-common

    2. http://packages.ubuntu.com/karmic/misc/ndiswrapper-utils-1.9

    3. http://packages.ubuntu.com/karmic/net/ndisgtk

  3. Для 9.04 Jaunty Jackalope
    1. http://packages.ubuntu.com/jaunty/misc/ndiswrapper-common

    2. http://packages.ubuntu.com/jaunty/misc/ndiswrapper-utils-1.9

    3. http://packages.ubuntu.com/jaunty/net/ndisgtk

  4. Для 8.10 Intrepid Ibex
    1. http://packages.ubuntu.com/intrepid/misc/ndiswrapper-common

    2. http://packages.ubuntu.com/intrepid/misc/ndiswrapper-utils-1.9

    3. http://packages.ubuntu.com/intrepid/net/ndisgtk

  5. Для 8.04 Hardy Heron
    1. http://packages.ubuntu.com/hardy/misc/ndiswrapper-common

    2. http://packages.ubuntu.com/hardy/misc/ndiswrapper-utils-1.9

    3. http://packages.ubuntu.com/hardy/net/ndisgtk

  6. Для 6.06 Dapper Drake
    1. http://packages.ubuntu.com/dapper/misc/ndiswrapper-utils

    2. http://packages.ubuntu.com/dapper/net/ndisgtk

Info <!> Для продвинутых пользователей: Есть известная ошибка в этих Debian-пакетах, подробно изложенная в этой нити. Если у вас возникают проблемы после установки из этих пакетов, модуль ядра может быть не установлен, поэтому вы можете получать ошибку FATAL: Module ndiswrapper not found, когда запускаете modprobe ndiswrapper в терминале. Лучший способ избежать этой проблемы — скомпилировать исходники, доступные тут: http://ndiswrapper.sourceforge.net/. Это довольно просто, но требуется установить пакет build-essential. Вы можете установить его без подключения к Интернету, используя apt-cdrom из командной строки или менеджер пакетов synaptic вместе с установочным CD Ubuntu.

Скопируйте соответствующие файлы в директорию на Ubuntu-машине (например, в свою домашнюю директорию) и установите их в таком порядке:

sudo dpkg -i ndiswrapper-common_*.deb
sudo dpkg -i ndiswrapper-utils-*.deb
sudo dpkg -i ndisgtk_*.deb

Info <!> Команды, перечисленные выше, — общий пример установки .deb-пакетов из командной строки. Необходимо находиться в директории, куда были скопированы файлы. Если терминал вам ещё не привычен, попробуйте почитать BasicCommands.

2.3. Устанавливаем пакеты (без Internet-доступа)

Если вы производили установку, используя Dapper Alternate CD, эти пакеты, кроме ndisgtk, включены в него.

Вставьте CD в дисковод, выберите System > Administration > Synaptic Package Manager и поищите ndis. Если вы не знаете как устанавливать приложения, прочтите это руководство.

3. Конфигурация

3.1. Запретите свободные драйверы

Во-первых, все версии, начиная с Ubuntu 6.06, содержат открытый (open source) драйвер bcm43xx, который был заменён в 8.04 на b43 и b43legacy, см. WifiDocs/Driver/bcm43xx. Если этот драйвер у вас не работает, тогда вы должны отключить его, так как он будет создавать конфликты с ndiswrapper. Чтобы отключить его, добавьте строчки blacklist bcm43xx для каждого драйвера к чёрному списку modprobe (modprobe blacklist).

echo -e "blacklist bcm43xx\nblacklist b43\nblacklist b43legacy\nblacklist ssb" | sudo tee -a /etc/modprobe.d/blacklist

Warning /!\ Для версий 9.04 и выше, имя файла изменилось на blacklist.conf

(Или просто отредактируйте файл /etc/modprobe.d/blacklist и добавьте blacklist bcm43xx, blacklist b43, blacklist b43legacy и blacklist ssb к концу файла.) Примечание: Это влияет только на то, что будет загружено при запуске, поэтому придётся перезагрузиться, чтобы драйверы bcm43xx были запрещены. Если у вас основанная на Atheros карта, добавьте в чёрный список не только ath_pci, но ещё и ath_hal, так как ndiswrapper не будет работать, если ath_hal до сих пор загружен.

Warning /!\ Чтобы заставить работать D-link DWL-G122 USB wireless device, нам пришлось заблокировать также и rt2500usb, а затем перезагрузиться. Нас осенило, когда информация о соединении устройства (device's "Connection Information") продолжала сообщать нам о том, что драйвером является rt2500usb, несмотря на то, что мы следовали всем инструкциям на этой странице.

Warning /!\ D-Link DWL-G122 USB Wireless device: По состоянию на декабрь 2008 года Ubuntu 8.10 предоставляет полную поддержку «из коробки» ("out of the box") для этого устройства, используя драйвер rt73usb. В этом случае нет необходимости использовать ndiswrapper вовсе и нет необходимости вносить какие-либо изменения в стандартный файл /etc/modprobe.d/blacklist. После присоединения D-Link USB device, ввод команды lsusb в консоли должен возвращать что-то вроде этого:
Bus 001 Device 002: ID 07d1:3c03 D-Link System DWL-G122 802.11g Adapter [ralink rt73]
Чтобы проверить, что драйвер rt73usb загружен, введите команду lsmod | grep rt73usb и проверьте, что вывод содержит строку, начинающуюся с rt73usb, которая значит, что драйвер загружен.

3.2. Определяем беспроводной адаптер

3.2.1. Беспроводной PCI-адаптер

  1. Откройте терминал (Applications | Accessories | Terminal), наберите lspci и нажмите Enter.

  2. Просмотрите вывод команды lspci на предмет наличия своей беспроводной карты.

  3. После того, как вы определили свою карту, запишите содержимое первой колонки, которое должно быть похожим на 0000:00:0c.0.

  4. Теперь наберите lspci -n в терминале и нажмите Enter.

  5. Найдите PCI ID для своего устройства. В выводе команды ваше устройство будет известно под идентификатором, который вы только что записали, например, 0000:00:0c.0. PCI ID будет в третьей колонке вывода и будет иметь вид 104c:8400.

3.2.2. Беспроводной USB-адаптер

  1. Откройте терминал (Applications | Accessories | Terminal), наберите lsusb и нажмите Enter.

  2. Просмотрите вывод команды lsusb на предмет наличия своей беспроводной карты.

  3. После того, как вы определили свою карту, запишите chipset ID, который будет в виде 104c:8400.

3.3. Скачиваем Windows-драйверы

  1. Найдите Windows-драйвер, соответствующий вашему чипсету: используйте информацию об ID, которую вы только что получили, и список ndiswrapper, чтобы найти и скачать правильные файлы Windows-драйвера для вашего или очень похожего (одинаковые chipset ID) беспроводного адаптера.

  2. Распакуйте Windows-драйвер, используя инструменты (запускаемые из терминала) unzip, cabextract и/или unshield, и найдите INF-файл (расширение .INF или .inf) и SYS-файл (расширение .SYS или .sys). Сначала, возможно, придётся установить cabextract и unshield.

  3. Если есть несколько INF- и SYS-файлов, взгляните на список ndiswrapper, чтобы найти какие-нибудь подсказки о том, какие файлы следует использовать.

  4. Если у вас есть Windows-драйверы на CD и вы не можете извлечь INF- или Bin-файлы, можете попробовать установить драйверы на Windows-машину. Затем просмотрите: Контрольная панель-Система-Вкладка «Оборудование»-Кнопка «Драйверы устройств». Потом найдите своё устройство среди сетевых адаптеров. После того, как найден сетевой адаптер, посмотрите, какой драйвер используется, с помощью двойного щелчка на адаптере в списке. Потом перейдите на вкладку «Драйверы» и нажмите на кнопку «Информация о драйверах». Драйвер и путь будут указаны; он обычно находится в папке C:/windows/system32/drivers. Чтобы наверняка, произведите поиск этого файла. BIN-файл и INF-файл обычно имеют одно и то же имя в папке C:/windows/system32. После обнаружения всех файлов скопируйте их на flash-носитель или запишите на CD, чтобы переместить их на Ubuntu-машину для установки при помощи Ndiswrapper.
  5. Убедитесь, что INF-файл, SYS-файл и все BIN-файлы помещены вместе в одну директорию.

3.4. Устанавливаем Windows-драйвер

3.4.1. Устанавливаем Windows-драйвер, используя ndisgtk (графический интерфейс ndiswrapper)

3.4.2. Устанавливаем Windows-драйвер, используя командную строку

В терминале запустите следующую команду:

ndiswrapper скопирует .inf- и sys-файлы в /etc/ndiswrapper/.... Не забывайте, что набираемое вами имя файла зависит от регистра (is case-sensitive).

3.4.2.1. Проверяем и убеждаемся, что драйвер был установлен правильно

3.5. Загружаем модуль нового драйвера

3.6. Настраиваем беспроводную сеть

3.6.1. Настраиваем беспроводную сеть, используя nm-applet (пользовательский интерфейс GNOME для Network Manager)

Warning /!\ При использовании этого метода настройки с драйвером TNET1450 беспроводная сеть продолжила отбрасывать пакеты и беспроводное подключение переставало отвечать через несколько минут. Если вы столкнулись с похожими проблемами, используйте метод network-admin, описанный ниже.

Warning /!\ nm-applet не использует стандартный файл NetworkAdmin /etc/network/interfaces для хранения настроек беспроводной сети, поэтому вы не будете иметь возможность использовать команды ifup и ifdown, чтобы запускать (start) и останавливать (stop) сетевой адаптер. Запуск и останов ndiswrapper (sudo modprobe ndiswrapper / sudo modprobe -r ndiswrapper) может быть использован вместо этого. Это может затруднить диагностирование проблем с соединением.

Warning /!\ nm-applet требует запись в /etc/modules, чтобы запускать ndiswrapper при старте системы. Однако, эта установка должна быть удалена при использовании ручной настройки (network-admin), так как ndiswrapper будет запущен приложением network-admin при помощи только команды alias в /etc/modprobe.d/ndiswrapper.

3.6.2. Настраиваем беспроводную сеть, используя network-admin (Network Admin)

Это альтернативный, более естественный метод использования GNOME-апплета nm-applet.

  1. Откройте инструмент Networking Admin (System | Administration | Networking), выберите Wireless connection и нажмите Properties, убедитесь, что флажок Enable roaming mode не установлен.

  2. В поле Network Name выберите или наберите ESSID своей сети
  3. В поле Password type выберите тип вашего сетевого пароля: Hex (например, 208AB43..) или Ascii (например, secret)
  4. В поле Password наберите или вставьте свой сетевой пароль
  5. В Connection Configuration выберите тип настройки сети — обычно это DHCP.
  6. Если ваша сеть настраивается с использованием статических IP-адресов, заполните IP-адрес своего компьютера, маску подсети и IP-адрес шлюза.
  7. Нажмите OK, чтобы применить эти установки — они будут размещены в файле /etc/network/interfaces

  8. Для полноты, в диалоге Network Settings нажмите Save и наберите запоминающееся имя для настроенной сети. Оно может быть использовано для того, чтобы выбирать между несколькими сетями вручную.

  9. Ваша беспроводная сеть должна быть уже настроена — перейдите к «Автоматически загружаем при старте»

3.6.3. Настраиваем беспроводную сеть, используя командную строку

Если вышеприведённые методы не предоставляют рабочего беспроводного сетевого соединения, вы можете отредактировать файл сетевых интерфейсов вручную и диагностировать сеть с помощью командной строки.

3.7. Автоматически загружаем при старте

Если всё работает, вам нужно сообщить своей системе о необходимости загружать модуль при старте. В зависимости от метода используемого сетевого менеджера, это потребует различных настроек

3.7.1. Исключительно для апплета Network Manager

Warning /!\ nm-applet требует запись в /etc/modules, чтобы запускать ndiswrapper при старте системы. Однако, эта установка должна быть удалена при использовании ручной настройки (network-admin), так как ndiswrapper будет запущен приложением network-admin с помощью команды alias в /etc/modprobe.d/ndiswrapper и наличие записи в etc/modules может быть причиной, по которой беспроводной сетевой драйвер не запустится подобающим образом

Warning /!\ Строго рекомендуется сделать резервную копию (backup copy) файла /etc/modules прежде, чем вручную редактировать его.

4. Решение проблем

sudo killall dhclient
sudo ifconfig eth0 down

4.1. Некоторые общие ошибки

5. Компилируем последнюю версию ndiswrapper

Этот раздел основан на вики-странице проекта ndiswrapper и был скопирован с Ubuntu Forums. Первоначальный пост может быть найден тут. Пожалуйста, обсуждайте испытываемые проблемы или ошибки там.

Info <!> В Jaunty ndiswrapper.ko находится в другом месте:

Info <!> Прежде, чем вы начнёте компилировать свой собственный ndiswrapper, пожалуйста, заметьте, что всякий раз когда вы обновляете ядро, вам нужно компилировать ndiswrapper заново. Тем не менее, в случае переустановки не будет необходимости в удалении предыдущих следов ndiswrapper, как это было разобрано выше.

5.1. Устанавливаем заголовочные файлы ядра

5.2. Скачиваем и распаковываем текущую версию

5.3. Устанавливаем Ndiswrapper

5.4. Собираем deb-пакеты и устанавливаем (работает только для старых версий ndiswrapper)

Info <!> Пожалуйста, заметьте: Это технически устаревший материал. Однако, в определённых обстоятельствах может потребоваться использование более старой версии ndiswrapper для того, чтобы заставить работать беспроводную карту. Если по какой-либо причине не работают предыдущие этапы, тогда скачайте версию до 1.16, чтобы применить последующее.

6. Полезные ссылки


CategoryNetworking

WifiDocs/Driver/NdiswrapperRu (last edited 2011-06-22 13:19:57 by vpn-3248)