
Estou usando um sintonizador DVB, sintonizador USB. Adicionei o driver ao kernel e ele está sendo registrado. Mas quando o dispositivo está conectado, ele não invoca a função de teste.
Há algo que devo acrescentar? Tipo, o driver do dispositivo deveria ser mapeado para o dispositivo ou algo assim? e explique como um driver é carregado, com base no tipo de dispositivo USB. O kernel que estou usando é o Linux 3.5.
Responder1
Você tem certeza de que seu dispositivo funciona com o driver? Se for assim:
Firmware
Alguns dispositivos também precisam de firmware adicional. Infelizmente, o método necessário para extrair o firmware e instalá-lo depende do dispositivo. Alguns exigem que você baixe uma cópia do driver do Windows e use ferramentas para extrair o firmware. O Google irá ajudá-lo aqui.
IDs de fornecedor e produto alterados
Às vezes, os fornecedores alteram o ID do fornecedor e do produto, que é o método usado pelos drivers para reconhecer dispositivos compatíveis.
Esses IDs são codificados no driver. Felizmente, os drivers de dispositivos modernos têm um método para adicionar IDs de fornecedores e produtos temporariamente em tempo de execução.
Use lsusb
para obter os IDs do seu dispositivo:
# lsusb
Bus 002 Device 001: ID 1234:abcd Acme Corp DVB Tuner
Desconecte seu dispositivo e descarregue o driver (para obter um novo ponto de partida):
# rmmod acme_dvb
Em seguida, carregue seu driver:
# modprobe acme_dvb
Por fim, informe ao driver sobre os novos IDs USB:
# echo 1234 abcd > sys/bus/usb/drivers/acme_dvb/new_id
Observe que o caminho exato pode variar.
Conecte seu dispositivo e verifique se ele foi reconhecido:
# dmesg
Se isso funcionar, a coisa certa a fazer seria reportá-lo como um bug no driver, para que o maitainer adicione os novos IDs.