
Estou tentando fazer meu adaptador sem fio PCI Atheros AR1111 EB-WG funcionar. No momento, o wifi nem foi detectado. Estou no Ubuntu 12.04 64 bits e consegui encontrar um driver xp64bit. Eu segui os passos exatos aqui: https://help.ubuntu.com/community/WifiDocs/Driver/Ndiswrapper
E onde eu faço:
ndiswrapper -l
Eu recebo algo como:
{name of driver} : driver installed
device ({Chipset ID}) present
o que mostra que o driver foi instalado corretamente
No entanto, depois de carregar o novo módulo:
sudo modprobe ndiswrapper
nada acontece e o iwconfig mostra que ainda não tenho wlan.
Eu tentei fazer dmseg | grep ndiswrapper, mas não houve erros de carregamento de driver ou algo estranho.
Eu também tenho a lista negra ath5k, ath8k em /etc/modprobe.d/blacklist.conf
O que estou fazendo de errado? O que poderia estar causando isso?
Responder1
ndiswrapper
é inerentemente falho e sempre será incompatível com a grande maioria dos drivers WiFi existentes. Internamente, ele usa uma forma de emulação semelhante à wine
usada em aplicativos gerais do espaço do usuário. É uma ciência imperfeita devido à semântica variável e ao uso de chamadas de função dos drivers de dispositivo NDIS e porque ndiswrapper
historicamente só implementou suporte para chamadas de função que são absolutamente necessárias para drivers que foram direcionados para suporte, ou seja, o mínimo necessário. Portanto, muitas chamadas de função ainda não foram implementadas e podem não ser implementáveis devido ao design da pilha de rede do kernel Linux.
Você provavelmente não está fazendo nada "errado", exceto que acho que você precisa carregar ndiswrapper
o módulo do kernel primeiro,entãocorrer ndiswrapper -l
. Mas se você não está obtendo a interface, então ésimplesmente não está funcionando. Esta é praticamente a norma para ndiswrapper
.
Da mesma forma wine
, versões individuais de drivers para placas sem fio individuais devem ser especificamente "direcionadas" e as equipes de desenvolvimento (voluntárias ou comerciais) devem analisar as chamadas NDIS do driver e determinar como modificá-las ndiswrapper
para oferecer suporte a esse driver. Esta é uma metodologia de desenvolvimento padrão para camadas de emulação, uma vez que implementar uma camada de emulação inteira é muito trabalhoso e, de qualquer maneira, virá repleto de bugs, devido a incompatibilidades semânticas, incompatibilidades de camadas e assim por diante.
Você deve procurar mais pela existência de um driver nativo de código aberto para o seu chipset. Caso contrário, você provavelmente está sem sorte. ndiswrapper
não é uma solução; é um espaço reservado temporário para fornecer a um pequeno subconjunto de usuários com chipsets incomuns funcionalidade sem fio básica até que um driver de código aberto possa ser escrito. Não confie nisso; não espere que funcione; insista em um driver nativo ou simplesmente substitua seu hardware por algo que seja compatível imediatamente. Desculpe.