Windows драйвера в Linux (сетевые)

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Windows драйвера в Linux (сетевые)

Непрочитанное сообщение Olej » 03 июл 2017, 01:14

Есть такая возможность - использовать некоторые драйвера (из комплекта поставки устройств), написанных под Windows, в Linux.
Wi-Fi в Linux. Краткий курс (wifi wireless hardware driver linux)
Один из вариантов получения нужного "драйвера" я всё же упомяну -
ndiswrapper. Вспомним, что производитель, как правило, снабжает свой
адаптер нужным драйвером и мы даже оплачиваем его при покупке. Драйвер
этот, как правило, для m$win, и уж, наверняка, в виде двоичного файла.
Обидно, но делать нечего. Кроме как попытаться использовать этот
драйвер. Для меня это второй известный случай успешного использования
проприетарного ПО, презентуемого в двоичном виде, под Linux (первый -
кодеки в mplayer). Итак:

* берём ndiswrapper с http://ndiswrapper.sourceforge.net
* make; make install;
* инсталлируем NDIS (win) драйвер командой:
ndiswrapper -i filename.inf
где filename.inf - inf-файл из состава драйвера;
* если в ответ на ndiswrapper -l вы получите что-то вроде:
Installed ndis drivers:
driver_name driver present, hardware present
- примите поздравления;
* позаботьтесь о том, чтобы модуль ndiswrapper был загружен (а
используете вы для этого rc.modules, modules.conf или нечто из
/etc/hotplug - ваше дело). В команде загрузки модуля в качестве
параметра if_name=desired_name можно указать имя сетевого
интерфейса, "появляющегося" после загрузки модуля. Если ничего не
указывать, имя будет - wlan0;
* позаботьтесь о том, чтобы этот новый интерфейс конфигурировался
при старте: вообще-то это делается командой ifconfig, но мало ли,
какими конфигурационными файлами и программами настройки
завуалировал этот факт мейнтейнер вашего дистрибутива...
1. Это, конечно, костыли ... но иногда помогает.
2. Обычно этот трюк срабатывает (насколько я видел) только для сетевых устройств.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 03 июл 2017, 01:18

Вот этот проект NDISwrapper:
NDISwrapper — программный продукт, позволяющий использовать драйверы беспроводных устройств WiFi, предназначенные для операционной системы Microsoft Windows, в операционной системе Linux. Аналогичная программа для FreeBSD называется NDISulator. NDISwrapper включает в себя модуль ядра и утилиту для управления драйверами.
Этот проект берёт своё начало из аналогичных разработок NetBSD / FreeBSD.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 04 авг 2017, 15:37

Olej писал(а):Вот этот проект NDISwrapper:
Вот подробнейшее описание как использовать NDISwrapper для сетевых устройств - Как установить wifi драйвер в Linux?.
Некоторые производители оборудования не выпускают спецификации на устройства или драйверы Linux для своих беспроводных сетевых карт. В этом проекте реализованы вызовы ядра Windows и NDIS (Network Driver Interface Specification) из ядра Linux. Драйвер Windows для беспроводной сетевой карты связывается с промежуточным слоем в Linux и работает также как будто-то он работает в Windows, то есть без бинарной эмуляции.
Эта программа присутствует в репозитории Linux Mint, но отсутствует в Ubuntu. Это я знал давно, поэтому решил не усложнять себе жизнь, а добавить репозиторий Linux Mint и установить эту замечательную программу.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 04 авг 2017, 15:44

Olej писал(а):
Эта программа присутствует в репозитории Linux Mint, но отсутствует в Ubuntu. Это я знал давно, поэтому решил не усложнять себе жизнь, а добавить репозиторий Linux Mint и установить эту замечательную программу.

Код: Выделить всё

olej@nvidia ~ $ lsb_release -a
No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18.1 Serena
Release:	18.1
Codename:	serena

Код: Выделить всё

olej@nvidia ~ $ apt search ndiswrapper*
i   ndiswrapper                     - Userspace utilities for the ndiswrapper Li
p   ndiswrapper:i386                - Userspace utilities for the ndiswrapper Li
v   ndiswrapper-common              -                                           
v   ndiswrapper-common:i386         -                                           
i   ndiswrapper-dkms                - Source for the ndiswrapper Linux kernel mo
p   ndiswrapper-source              - Source for the ndiswrapper Linux kernel mo
i   ndiswrapper-utils-1.9           - Transitional dummy package upgrading to nd
v   ndiswrapper-utils-1.9:i386      -                                           
Чего не могу сказать, так это то, установлены ли эти 3 пакета в Mint 18.1 по умолчанию, или я их сам как-то устанавливал по какой-то необходимости (а возможно по зависимостям).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 04 авг 2017, 15:53

Olej писал(а): Чего не могу сказать, так это то, установлены ли эти 3 пакета в Mint 18.1 по умолчанию, или я их сам как-то устанавливал по какой-то необходимости (а возможно по зависимостям).

Код: Выделить всё

olej@nvidia ~ $ which ndiswrapper
/usr/sbin/ndiswrapper

olej@nvidia ~ $ ndiswrapper
install/manage Windows drivers for ndiswrapper

usage: ndiswrapper OPTION
-i inffile       install driver described by 'inffile'
-a devid driver  use installed 'driver' for 'devid' (dangerous)
-r driver        remove 'driver'
-l               list installed drivers
-m               write configuration for modprobe
-ma              write module alias configuration for all devices
-mi              write module install configuration for all devices
-v               report version information

where 'devid' is either PCIID or USBID of the form XXXX:XXXX,
as reported by 'lspci -n' or 'lsusb' for the card

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 04 авг 2017, 15:59

Olej писал(а): Вот подробнейшее описание как использовать NDISwrapper для сетевых устройств - Как установить wifi драйвер в Linux?.

Код: Выделить всё

olej@nvidia ~ $ apt search ndisgtk
p   ndisgtk                         - graphical frontend for ndiswrapper (instal
p   ndisgtk:i386                    - graphical frontend for ndiswrapper (instal

olej@nvidia ~ $ sudo apt install ndisgtk
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  ndisgtk
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 16,8 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 147 kB.
Пол:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 ndisgtk amd64 0.8.5-1ubuntu1 [16,8 kB]
Получено 16,8 kБ за 0с (62,4 kБ/c)  
Выбор ранее не выбранного пакета ndisgtk.
(Чтение базы данных … на данный момент установлено 374887 файлов и каталогов.)
Подготовка к распаковке …/ndisgtk_0.8.5-1ubuntu1_amd64.deb …
Распаковывается ndisgtk (0.8.5-1ubuntu1) …
Обрабатываются триггеры для desktop-file-utils (0.22-1ubuntu5.1) …
Обрабатываются триггеры для gnome-menus (3.13.3-6ubuntu3.1) …
Обрабатываются триггеры для mime-support (3.59ubuntu1) …
Обрабатываются триггеры для hicolor-icon-theme (0.15-0ubuntu1) …
Настраивается пакет ndisgtk (0.8.5-1ubuntu1) …
В гл. меню администрирования под названием "Драйверы Windows для беспроводных устройств".
Дальше (установку драйверов .inf) я проверять не стал (нет у меня сейчас под рукой таких устройств ... а когда-то нужно было! :-( ) ...
Относительно модуля ядра:

Код: Выделить всё

olej@nvidia ~ $ sudo modprobe ndiswrapper

olej@nvidia ~ $ lsmod | grep ndis
ndiswrapper           286720  0
Так что всё, что пишет автор о сборке из исходников ndiswrapper ... это от лукавого, это автор просто плохо понимает... ;-)
Вложения
nd1.png
nd1.png (18.68 КБ) 3793 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 17 окт 2020, 19:23

Olej писал(а):
Эта программа присутствует в репозитории Linux Mint, но отсутствует в Ubuntu. Это я знал давно, поэтому решил не усложнять себе жизнь, а добавить репозиторий Linux Mint и установить эту замечательную программу.
Для полноты картины ...
Не знаю что там в Ubuntu, но вот вам Ferora:

Код: Выделить всё

[olej@xenix 04]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 25 (Twenty Five)
Release:	25
Codename:	TwentyFive

Код: Выделить всё

[olej@xenix 04]$ dnf list ndis*
Последняя проверка окончания срока действия метаданных: 6:28:35 назад, Fri Aug  4 09:44:26 2017.
Доступные пакеты
ndisc6.x86_64                                                    1.0.3-2.fc25                                                updates               
ndiswrapper.x86_64                                               1.61-1.fc25                                                 rpmfusion-free-updates

Код: Выделить всё

[olej@xenix 04]$ sudo dnf install ndiswrapper
Последняя проверка окончания срока действия метаданных: 1:31:29 назад, Fri Aug  4 14:45:19 2017.
Зависимости разрешены.
===================================================================================================================================================
 Package                        Архитектура         Версия                                               Репозиторий                         Размер
===================================================================================================================================================
Установка:
 akmod-ndiswrapper              x86_64              1.61-2.fc25                                          rpmfusion-free-updates              231 k
 akmods                         noarch              0.5.6-7.fc25                                         updates                              22 k
 fakeroot                       x86_64              1.20.2-4.fc24                                        fedora                              101 k
 fakeroot-libs                  x86_64              1.20.2-4.fc24                                        fedora                               35 k
 kmodtool                       noarch              1-24.fc25                                            updates                              16 k
 ndiswrapper                    x86_64              1.61-1.fc25                                          rpmfusion-free-updates               41 k
 rpm-build                      x86_64              4.13.0.1-1.fc25                                      updates                             147 k
 rpmdevtools                    noarch              8.9-1.fc25                                           fedora                              105 k
 xemacs-filesystem              noarch              21.5.34-20.20170124hgf412e9f093d4.fc25               updates                              21 k

Результат операции
===================================================================================================================================================
Установка  9 Пакетов

Объем загрузки: 719 k
Объем изменений: 1.1 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/9): akmods-0.5.6-7.fc25.noarch.rpm                                                                              171 kB/s |  22 kB     00:00    
(2/9): rpm-build-4.13.0.1-1.fc25.x86_64.rpm                                                                        1.0 MB/s | 147 kB     00:00    
(3/9): ndiswrapper-1.61-1.fc25.x86_64.rpm                                                                          131 kB/s |  41 kB     00:00    
(4/9): rpmdevtools-8.9-1.fc25.noarch.rpm                                                                           595 kB/s | 105 kB     00:00    
(5/9): fakeroot-1.20.2-4.fc24.x86_64.rpm                                                                           632 kB/s | 101 kB     00:00    
(6/9): akmod-ndiswrapper-1.61-2.fc25.x86_64.rpm                                                                    455 kB/s | 231 kB     00:00    
(7/9): kmodtool-1-24.fc25.noarch.rpm                                                                               251 kB/s |  16 kB     00:00    
(8/9): xemacs-filesystem-21.5.34-20.20170124hgf412e9f093d4.fc25.noarch.rpm                                         213 kB/s |  21 kB     00:00    
(9/9): fakeroot-libs-1.20.2-4.fc24.x86_64.rpm                                                                      354 kB/s |  35 kB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                       245 kB/s | 719 kB     00:02     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : kmodtool-1-24.fc25.noarch                                                                                                     1/9 
  Установка    : rpm-build-4.13.0.1-1.fc25.x86_64                                                                                              2/9 
  Установка    : fakeroot-libs-1.20.2-4.fc24.x86_64                                                                                            3/9 
  Установка    : fakeroot-1.20.2-4.fc24.x86_64                                                                                                 4/9 
  Установка    : xemacs-filesystem-21.5.34-20.20170124hgf412e9f093d4.fc25.noarch                                                               5/9 
  Установка    : rpmdevtools-8.9-1.fc25.noarch                                                                                                 6/9 
  Установка    : akmods-0.5.6-7.fc25.noarch                                                                                                    7/9 
  Установка    : akmod-ndiswrapper-1.61-2.fc25.x86_64                                                                                          8/9 
  Установка    : ndiswrapper-1.61-1.fc25.x86_64                                                                                                9/9 
  Проверка     : ndiswrapper-1.61-1.fc25.x86_64                                                                                                1/9 
  Проверка     : akmod-ndiswrapper-1.61-2.fc25.x86_64                                                                                          2/9 
  Проверка     : akmods-0.5.6-7.fc25.noarch                                                                                                    3/9 
  Проверка     : rpm-build-4.13.0.1-1.fc25.x86_64                                                                                              4/9 
  Проверка     : rpmdevtools-8.9-1.fc25.noarch                                                                                                 5/9 
  Проверка     : fakeroot-1.20.2-4.fc24.x86_64                                                                                                 6/9 
  Проверка     : kmodtool-1-24.fc25.noarch                                                                                                     7/9 
  Проверка     : xemacs-filesystem-21.5.34-20.20170124hgf412e9f093d4.fc25.noarch                                                               8/9 
  Проверка     : fakeroot-libs-1.20.2-4.fc24.x86_64                                                                                            9/9 

Установлено:
  akmod-ndiswrapper.x86_64 1.61-2.fc25      akmods.noarch 0.5.6-7.fc25         fakeroot.x86_64 1.20.2-4.fc24                                       
  fakeroot-libs.x86_64 1.20.2-4.fc24        kmodtool.noarch 1-24.fc25          ndiswrapper.x86_64 1.61-1.fc25                                      
  rpm-build.x86_64 4.13.0.1-1.fc25          rpmdevtools.noarch 8.9-1.fc25      xemacs-filesystem.noarch 21.5.34-20.20170124hgf412e9f093d4.fc25     

Выполнено!

Код: Выделить всё

[olej@xenix 04]$ sudo modprobe ndiswrapper

[olej@xenix 04]$ lsmod | grep ndiswrapper
ndiswrapper           282624  0
Но ничего похожего на графическую оболочку управления ndiswrapper я здесь не нашёл.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux

Непрочитанное сообщение Olej » 15 авг 2022, 12:39

Olej писал(а):
03 июл 2017, 01:14
Есть такая возможность - использовать некоторые драйвера (из комплекта поставки устройств), написанных под Windows, в Linux.
Снова понадобилась эта мелочь...
Уточню:
- этот трюк работает только для сетевых устройств (WiFi-свистки и т.п.)- которым нужен не собственно код драйвера, а только информация из .inf файла для определения интерфейсов.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux (сетевые)

Непрочитанное сообщение Olej » 01 ноя 2022, 02:30

Olej писал(а):
15 авг 2022, 12:39
Снова понадобилась эта мелочь...
Есть такое подозрение, что в новых дистрибутивах всё что связано с ndiswrapper уже нет. Этот проект закрылся за ненадобностью?

Код: Выделить всё

olej@nvidia:~/2022/ACCOUNTS$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21
Release:	21
Codename:	vanessa

Код: Выделить всё

olej@nvidia:~/2022/ACCOUNTS$ aptitude search ndis
p   libcgi-application-plugin-actiondispatch-perl   - attribute extension for CGI::Application                  
v   librust-winapi+functiondiscoverykeys-devpkey-de -                                                           
v   librust-winapi+ntddndis-dev                     -                                                           
v   librust-winapi-0+functiondiscoverykeys-devpkey- -                                                           
v   librust-winapi-0+ntddndis-dev                   -                                                           
v   librust-winapi-0.3+functiondiscoverykeys-devpke -                                                           
v   librust-winapi-0.3+ntddndis-dev                 -                                                           
v   librust-winapi-0.3.9+functiondiscoverykeys-devp -                                                           
v   librust-winapi-0.3.9+ntddndis-dev               -                                                           
p   libtest-indistdir-perl                          - test environment setup for development with IDE           
v   londiste3                                       -                                                           
p   ndisc6                                          - IPv6 diagnostic tools                                     
p   python3-londiste                                - Database replication for PostgreSQL based on PgQ          
p   undistract-me                                   - Notifies user when long-running terminal commands complete
olej@nvidia:~/2022/ACCOUNTS$ 
olej@nvidia:~/2022/ACCOUNTS$ 

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Windows драйвера в Linux (сетевые)

Непрочитанное сообщение Olej » 01 ноя 2022, 02:37

Olej писал(а):
01 ноя 2022, 02:30
Этот проект закрылся за ненадобностью?
Очень даже может быть ... последняя версия на странице проекта ndiswrapper Files обозначена (2.5 года назад!):
ndiswrapper-1.63.tar.gz 2020-05-03 203.4 kB
Возможно ( :?: ) нужда отпала, потому как Linux научился подхватывать большинство устройств?

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя