SDB:Ndiswrapper

Перейти к: навигация, поиск
NDISwrapper — это программа использующая *.inf файлы Windows драйвера в Linux, которые прилагаются вместе с оборудованием для работы беспроводной карты.

Установка NDISwrapper

В дальнейшем будут приводиться консольные команды. Поэтому, чтобы не было недоразумений, уясните следующие команды для ввода:

$ command 
  • команда не требующая прав администратора и выполняется от обычного пользователя "$"
# command 
  • команда, требующая права администратора и выполняется от суперпользователя "#", но может выполняться из окружения обычного пользователя "$" с правами суперпользователя sudo, см. особенности

C установочного носителя

По умолчанию NDISwrapper включен в состав установочного CD/DVD носителя openSUSE.

Установите с помощью консольного менеджера пакетов zypper следующие пакеты:

# zypper in ndiswrapper ndiswrapper-kmp-`uname -r | cut -f3 -d"-"` wireless-tools 

или воспользуйтесь графическим инструментом YaST, установив следующие пакеты:

  • ndiswrapper
  • ndiswrapper-kmp-[default|desktop|pae|xen]
  • wireless-tools
  • где default|desktop|pae|xen - разновидность ядра, для выбора правильного значения части строки воспользуйтесь командой: uname -r

Из репозитория

Вы можете получить последнюю версию NDISwrapper, воспользовавшись репозиторием driver:/wireless. В зависимости от версии openSUSE и используемого ядра необходимо добавить правильно выбранный репозиторий:

Для ядра по умолчанию

Если вы после установки openSUSE не обновляли ядро по умолчанию, то правильным выбором репозитория будет:


Для обновленного ядра

Если вы обновили ядро до последней версии из Update, то правильным выбором будет:


После добавления соответствующего репозитория обновите его, cкачиванием метаданных и преобразование их в кэш:

# zypper ref 

Приступите к установке NDISwrapper:

# zypper in ndiswrapper ndiswrapper-kmp-`uname -r | cut -f3 -d"-"` wireless-tools 

После завершения установки, вы можете отключить репозиторий, выполнив:

# zypper mr -dR ndiswrapper

Из исходников

Вы также можете загрузить и скомпилировать последнюю версию с сайта Ndiswrapper .

Приобретение Windows драйвера

Вы можете определить необходимый драйвер для конкретного устройства, исходя из списка совместимости Ndiswrapper + вы можете воспользоваться Linuxant страницей, в которой есть драйвера, работающие с NDISwrapper, также на ней находятся некоторые 64-битные драйвера, которые не предлагаются на сайтах производителя.

Если вы используете 64-битное ядро Linux, то вам необходимо найти соответствующий 64-разрядный драйвер Windows (что несколько затруднительней найти, чем 32-битный драйвер Windows). Таким образом, если вы не сможете найти 64-битный драйвер Windows, тогда установите 32-битную версию openSUSE.
Поддержка NDIS 6 находится в стадии разработки и на данный момент не поддерживается NDISwrapper.

Находясь в Windows

Если у вас имеется двойная загрузка системы и ваша карта исправно работает в Windows, то одним из способов получения драйвера — это достать его из раздела установленной Windows. Помните, что разрядность имеет немаловажное значение.

Находясь в Windows, зайдите в Диспетчер устройств и в разделе " Сетевые адаптеры" найдите свою беспроводную карту. Щелкните правой клавишей на соответствующем устройстве и перейдите "Свойства->Драйвер->Сведения..." .Здесь вы найдете путь к файлу *.sys, как правило располагающийся по адресу C:\windows\system32\drivers\ .

Воспользуйтесь " Поиском" Windows, чтобы найти соответствующий *.inf файл, который является не более чем простым текстовым файлом с перечнем необходимых файлов драйвера. Таким образом, запрос поиска в Windows будет выглядеть так:

  • все файлы перечисленные в файле: *.inf
  • строчка в файле *.inf: путь до *.sys файла найденного выше
  • найти соответствующие файлы на: локальный диск C :\

Поиск может занять некоторое время! Когда вы нашли *.inf файл, загляните с помощью текстового редактора внутрь и уточните др. файлы необходимые для установки драйвера. вам повезет, если все файлы находятся в одном каталоге, например, C:\Program Files\Atheros\Drivers\. Скопируйте все эти файлы в определенное место, например, в папку раздела или на внешний USB жесткий диск, которые будут доступны в системе Linux.

Находясь в Linux

Этот способ менее извращенный и не требующий входа в Windows.

Определите тип вашего беспроводного устройства, выполнив:

$ /sbin/lspci -nn 

Найдите строчку информации, соответствующей вашему устройству, например:

04:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n     
Wireless LAN Controller [14e4:4727] (rev 01) 

С помощью текстового редактора загляните в журнал сведений об установке драйверов Windows: /WINDOWS/setupapi.log или /WINDOWS/INF/setupapi.dev.log и найдите соответствующий *.inf файл устройства.

Например:

#I022 Found "PCI\VEN_14E4&DEV_4318&SUBSYS_1356103C" in C:\SWSetup\WLAN\bcmwl5a.inf;

Device: "Broadcom 802.11b/g WLAN"; Driver: "Broadcom 802.11b/g WLAN"; Provider: "Broadcom"; Mfg: "Broadcom"; Section name: "BCM43XG2".

Для облегчения поиска соответствующих строчек воспользуйтесь значениями ID, выделенные выше красным, например, PCI\VEN_14E4 или используя ключевые фразы: Broadcom, WLAN и т.д.

Установите соответствующий драйвер, пройдя к разделу установка.

Из программного обеспечения

Существуют несколько мест, где можно попытаться найти драйвера. Ниже перечислены возможные варианты, в порядке предпочтения:

  • с помощью установочного носителя CD, поставляемом вместе с аппаратурой
  • с веб-сайта производителя вашего ПK или карты
  • по поиску вашего *.sys файла в Google

Если вам повезло, то вы с легкостью найдете правильный *.inf и связанные с ним файлы. В некоторых случаях необходимо распаковать *.cab или *.exe файл с драйверами. Для распаковки этих файлов воспользуйтесь консольной утилитой cabextract:

# zypper in cabextract 

Найдите и распакуйте *.cab или *.exe файл, например, в папку /tmp:

$ cabextract -d /tmp/driver/ *.cab 

Опять же, найдя все соответствующие файлы, скопируйте их в определенное место, доступном для Linux раздела.

Распределение нескольких *.inf файлов

Если вы обнаружили два или более *.inf файлов, каждый из которых предназначен для различных версий Windows, например: bcmwl5a.inf и bcmwl5.inf. Тогда загляните внутрь содержимого *.inf файла и обратите внимание на начало следующих строк:

[Version] 
Signature= "$Windows NT$"

Установка драйвера

Установите драйвер указав путь к *.inf файлу:

# /usr/sbin/ndiswrapper -i /путь/до/*.inf 
Совет: Вместо того, чтобы вводить абсолютный путь к файлу, вы может предпочтете изменить директорию, содержащую *.inf файл, перед тем, как запустить команду. Если путь к этой директории содержит пробелы, например, "Program Files", тогда воспользуйтесь обратным слешем \. Иногда для новичка сначала проще перейти в директорию, содержащую необходимый *.inf файл:

$ cd /путь/каталог\ с\ пробелами/*.inf файл 

Например:

$ cd /windows/C/Program\ Files/ 

После этого вы можете установить драйвер, указав только *.inf файл

# ndiswrapper -i filename.inf 

Если установка прошла хорошо, тогда удостоверьтесь в том, что драйвер был установлен корректно:

# /usr/sbin/ndiswrapper -l 

Если вы установили действительный/совместимый с Windows драйвер, то NDISwrapper покажет вроде этого:

<driver-name> : driver installed

device (xxxx:xxxx) present (alternate driver: <native-driver-name>)

  • где <driver-name> - показывает имя установленного драйвера NDISwrapper; <native-driver-name> - имя пересекающегося родного Linux драйвера.
Этот Linux драйвер возможно придется занести в черный список "blacklist", если он установлен и в настоящие время обнаружен в файле журналирования: /var/log/messages. Черный список предотвращает попытки управления устройством родным драйвером, что играет немаловажную роль в использовании NDISwrapper. Для занесения этого драйвера в черный список выполните:

# echo blacklist имя_драйвера > /etc/modprobe.d/ndiswrapper.conf 

Если же NDISwrapper сообщает "invalid driver", то необходимо удалить этот драйвер и попробовать другой.

Для удаления драйвера выполните:

# /usr/sbin/ndiswrapper -r <имя_драйвера> 

В качестве дополнительной проверки успешной установки драйвера соответствует наличие директории с именем драйвера:

$ cd /etc/ndiswrapper

USB WLAN флешка

Если у вас имеется USB WLAN флешка, тогда необходим дополнительный шаг, который следует сделать, чтобы установить драйвер, т.е. вы должны подсунуть NDISwrapper-у - VendorID и ProductID флешки с помощью опции "-d".

Посмотрите идентификатор устройства с помощью "Информация об оборудовании" в YaST или выполнив:

$ lsusb 

В результате вы узнаете ID устройства из четырех-символьных/цифр как, например, 168c и 0013.

Чтобы связать ID усройства с Ndiswrapper выполните:

# /usr/sbin/ndiswrapper -d xxxx:xxxx <имя_драйвера> 

Для просмотра успешной загрузки драйвера выполните:

$ dmesg | tail 

Если драйвер работает, то вы можете создать псевдоним "alias" NDISwrapper в /etc/modules.conf с помощью команды:

# /usr/sbin/ndiswrapper -m 

Загрузите модуль NDISwrapper:

# /sbin/modprobe ndiswrapper 

После этого вы можете настроить устройство с помощью Yast.

Настройка карты в YaST

Если у вас какие-то проблемы при обнаружении беспроводной карты в NetworkManager, тогда настройте сетевую карту исходя из нижеприведенных действий.

Вы не сможете редактировать сетевые настройки YaST, когда сеть контролируется с помощью NetworkManager.

Существуют много всевозможных конфигураций. Это только типичный пример:


Пояснение:

  • Для начала разрешите управление сети традиционным методом ifup: YaST → Сетевые настройки → Общие параметры
  • Затем, чтобы начать конфигурацию сети перейдите в раздел вкладки "Обзор"
  • Выберите "Добавить" в нижней части окна
    • Тип устройства: "Беспроводной"
    • Название конфигурации: "0" (или любой другой)
    • Имя модуля: "ndiswrapper"
    • Параметры: оставьте пустыми в том числе и "PCMCIA", "USB"
    • ... и, наконец, "Далее"
  • На следующем экране "Настройки сетевой карты" выберите версии динамического адреса и затем нажмите "Далее"
  • В разделе "Настройка беспроводной сетевой карты" оставляем настройки по умолчанию, т. е.:
    • Режим работы: "Управляемая"
    • Имя сети (ESSID): "" (оставьте пустым)
    • Метод аутентификации: "WEP-открытый"
    • Тип ввода ключа: "Контрольная фраза"
    • Ключ шифрования: "" (оставьте пустым)
    • ... и, наконец, "Далее"
  • Если откроется менеджер паролей, укажите свой пароль
  • Проигнорируйте предупреждение "Не использовать шифрование - это риск безопасности"
  • Вернитесь в "Общие параметры" и выберите "Управляемый пользователем с NetworkManager"
  • ... и, наконец, "OK"

Поздравления! Ваша карта настроена.

Теперь вы можете открыть NetworkManager и выбрать одну из найденных сетей.

Если Ваш SSID (имя беспроводной сети) не транслируется, тогда задайте самостоятельно, в параметрах NetworkManager.

Потенциальные конфликты и проблемы

Не загружается NDISwrapper, а при выполнении команды "lsmod|grep -i ndiswrapper" соответствующий модуль не отображается?

Загрузите модуль вручную:

# /sbin/modprobe -v ndiswrapper 

И если модуль загружается без ошибок, тогда перезапустите сеть:

# systemctl restart network.service

Для загрузки модуля во время загрузки системы, выполните:

# echo ndiswrapper > /etc/modules-load.d/ndiswrapper.conf

Не подключается к беспроводной сети с помощью NetworkManager?

Подключитесь с помощью YaST, выбрав при этом "традиционный метод ifup" и присвоев статические настройки интерфейса ( IP-адрес, шифрование, метод аутентификации и т. д.).

Tакже cмотрите