Prefácio
Eu conheço meu caminho em torno de um shell bash ... um pouco ... mas eu sou um n00b quando se trata de hackers Kernal e drivers de dispositivos Linux. Eu engoli os primeiros 3 capítulos dos Drivers de Dispositivos Linux, Edição 3 - PDF , então eu sei um pouco mais sobre isso do que Eu fiz no início da semana, mas ainda não muito.
Por favor, se você declarar 'apenas faça x e então y ', onde x é algo como 'baixe o kernel mais recente' e y é algo como 'construí-lo', gentilmente link para um tutorial ou guia sobre como fazer x e y , porque n00b.
Sistema
- Distribuição: Ubuntu 14.04.4 LTS, Trusty Tahr
- Kernel: 4.4.0-47-genérico
Problema
Estou tentando substituir o driver btusb
do kernel pelo driver Bluetopia USB BT SS1BTUSB
(fonte de driver e arquivos de compilação de CodeAurora ), porque eu estou tentando aprender mais sobre a implementação da pilha Bluetopia Bluetooth, e este é o primeiro passo para ser capaz de fazer isso.
Eu posso criar com sucesso o módulo SS1BTUSB
Kernel e instalá-lo.
$ sudo insmod SS1BTUSBM.ko
$ lsmod | grep SS1BTUSB
SS1BTUSBM 32768 0
E, seguindo as instruções do artigo do lwn.net , posso desvincular os dispositivos anexados ao driver btusb
.
$ ls /sys/bus/usb/drivers/btusb
1-1.5:1.0 1-1.5:1.1 bind module new_id remove_id uevent unbind
$ sudo -i
# echo "1-1.5:1.0" > /sys/bus/usb/drivers/btusb/unbind
# echo "1-1.5:1.1" > /sys/bus/usb/drivers/btusb/unbind
-bash: echo: write error: No such device
# ls /sys/bus/usb/drivers/btusb
bind module new_id remove_id uevent unbind
Não sei por que a desativação do segundo dispositivo causa o erro, mas o resultado é que os dispositivos não são vinculados ao driver btusb
.
No entanto, quando tento vincular esses dispositivos ao driver SS1BTUSB1
, recebo o mesmo erro.
# echo "1-1.5:1.1" > /sys/bus/usb/drivers/SS1BTUSB/bind
-bash: echo: write error: No such device
# echo "1-1.5:1.0" > /sys/bus/usb/drivers/SS1BTUSB/bind
-bash: echo: write error: No such device
Parece que o erro "No such device" é razoavelmente genérico e pode significar várias coisas, sugestões sobre como depurar / diagnosticar este problema seriam muito apreciadas.
Notas aleatórias
(pode ou não ajudar a diagnosticar o problema).
O driver btusb
é usado por outros drivers - pode estar relacionado.
$ lsmod | grep btusb
btusb 45056 0
btrtl 16384 1 btusb
btbcm 16384 1 btusb
btintel 16384 1 btusb
bluetooth 516096 25 bnep,btbcm,btrtl,btusb,rfcomm,btintel
Informações USB no dongle USB Bluetooth ...
$ lsusb
.
Bus 001 Device 003: ID 0a12:1243 Cambridge Silicon Radio, Ltd
.
Na verdade, é uma placa de desenvolvimento de fone de ouvido CSR8675 configurada como um dongle BT (esse bit eu conheço), então os detalhes parecem um pouco malucos ...
$ usb-devices
.
T: Bus=01 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=1243 Rev=20.32
S: Product=CSR8675 USB Headset
S: SerialNumber=ABCDEF0123456789
C: #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
.
Mas é um dispositivo Bluetooth HCI funcional.