
Я пытаюсь заставить работать мой беспроводной адаптер Atheros AR1111 EB-WG PCI. Сейчас Wi-Fi даже не определяется. У меня Ubuntu 12.04 64bit, и мне удалось найти драйвер xp64bit. Я выполнил точные шаги здесь: https://help.ubuntu.com/community/WifiDocs/Driver/Ndiswrapper
И где я это делаю:
ndiswrapper -l
Я получаю что-то вроде:
{name of driver} : driver installed
device ({Chipset ID}) present
что показывает, что драйвер установлен правильно
Однако после загрузки нового модуля:
sudo modprobe ndiswrapper
ничего не происходит, и iwconfig показывает, что у меня по-прежнему нет wlan.
Я попробовал выполнить dmseg | grep ndiswrapper, но не было никаких ошибок загрузки драйверов или чего-то странного.
У меня также есть черный список ath5k, ath8k в /etc/modprobe.d/blacklist.conf
Что я делаю не так? Что может быть причиной этого?
решение1
ndiswrapper
изначально несовершенен и всегда будет несовместим с подавляющим большинством драйверов WiFi. Внутренне он использует форму эмуляции, похожую на ту, wine
что используется для общих приложений пользовательского пространства. Это несовершенная наука из-за различной семантики и использования вызовов функций драйверов устройств NDIS, а также потому, что ndiswrapper
исторически реализовывалась поддержка только тех вызовов функций, которые абсолютно необходимы для драйверов, на которые была нацелена поддержка, т. е. самый минимум. Поэтому многие вызовы функций все еще не реализованы и могут быть нереализуемы из-за конструкции сетевого стека ядра Linux.
Вы, скорее всего, не делаете ничего «неправильного», за исключением того, что, как мне кажется, вам ndiswrapper
сначала нужно загрузить модуль ядра,затемзапустить ndiswrapper -l
. Но если вы не получаете интерфейс, то этопросто не работает. Это практически норма для ndiswrapper
.
Как и wine
, отдельные версии драйверов для отдельных беспроводных карт должны быть специально «нацелены», и команды разработчиков (волонтеры или коммерческие) должны анализировать вызовы NDIS драйвера и определять, как модифицировать ndiswrapper
для поддержки указанного драйвера. Это стандартная методология разработки для слоев эмуляции, поскольку реализация целого слоя эмуляции очень трудоемка и в любом случае будет переполнена ошибками из коробки из-за семантических несоответствий, несоответствий слоев и т. д.
Вам следует усерднее искать открытый исходный код, родной драйвер для вашего чипсета. Если это не удастся, вам, вероятно, не повезло. ndiswrapper
не является решением; это временный заполнитель, чтобы предоставить небольшой подгруппе пользователей с необычными чипсетами базовую беспроводную функциональность, пока не будет написан открытый исходный код драйвера. Не полагайтесь на него; не ждите, что он будет работать; настаивайте на родном драйвере или просто замените свое оборудование на то, что поддерживается из коробки. Извините.