É possível copiar um driver do Windows para o Linux?

6

Eu tenho um adaptador Bluetooth, está funcionando muito bem no meu Windows 7 (x64). Mas no meu Fedora 24 (x64), ele continua me mostrando que o " Bluetooth está desligado " mesmo quando eu tentei ligá-lo.

Estou tentando resolver esse problema desde ontem e não adianta ! Eu já tenho estes instalados: bluez-hidhci , bluez-utils e gnome-Bluetooth . Nenhum deles funcionou para mim !

Alguma ideia? Obrigado!

ATUALIZAÇÃO:

$ lsusb
...
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd 
$ rfkill list
...
2: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
$ dmesg | grep -i blue
[   12.067177] Bluetooth: Core ver 2.21
[   12.067212] Bluetooth: HCI device and connection manager initialized
[   12.067218] Bluetooth: HCI socket layer initialized
[   12.067221] Bluetooth: L2CAP socket layer initialized
[   12.067232] Bluetooth: SCO socket layer initialized
[   18.619866] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   18.619871] Bluetooth: BNEP filters: protocol multicast
[   18.619876] Bluetooth: BNEP socket layer initialized
$ hciconfig
hci0:   Type: BR/EDR  Bus: USB
    BD Address: AE:2D:22:00:FF:00  ACL MTU: 344:12  SCO MTU: 180:16
    DOWN 
    RX bytes:461 acl:0 sco:0 events:17 errors:0
    TX bytes:296 acl:0 sco:0 commands:17 errors:0
$ uname -a
Linux local.arfed 4.5.5-300.fc24.x86_64 #1 SMP Thu May 19 13:05:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    
por 0x0584 01.01.2017 / 12:24

1 resposta

19

Respondendo a pergunta no título: É possível copiar um driver do Windows para o Linux?

Não, não sem (muito) trabalho extra.

Um driver conecta-se ao kernel do sistema operacional, permitindo "direcionar" algum hardware.

O kernel do Linux e o kernel do Windows são compreensivelmente muito diferentes (ou ambos seriam chamados de "Windows" ou "Linux"). Portanto, não se pode esperar simplesmente pegar um driver, mesmo que esteja disponível na forma de fonte, do Windows e torná-lo link com o kernel do Linux, ou até compilá-lo razoavelmente limpo em um sistema Linux (ou em qualquer sistema que não é a (s) versão (ões) específica (s) do Windows para a qual foi escrito).

Você não pode nem pegar um driver de SOs que são superficialmente semelhantes, como os sistemas BSD, e apenas importá-lo para outro sistema Unix sem alguma codificação delicada. Dito isto, o compartilhamento de código no "nível de dispositivo" acontece de tempos em tempos entre sistemas Unix gratuitos, mas não sem o esforço extra de ajustar o código em uma nova infraestrutura de kernel.

Eu acredito que há casos em que as pessoas escreveram código do kernel para acessar blobs binários de drivers reversos. Obviamente, é necessário que alguém se sente para ver o driver binário, descobrir o que está fazendo e escrever os bits apropriados do código do kernel do Linux, então não é apenas uma questão de copiar o driver .

    
por 01.01.2017 / 12:57