Я использую тюнер DVB, USB-тюнер. Я добавил драйвер в ядро, и он регистрируется. Но когда устройство подключено, оно не вызывает функцию зонда.
Есть ли что-то, что я должен добавить? Например, должен ли драйвер устройства быть сопоставлен с устройством или что-то в этом роде? и, пожалуйста, объясните, как загружается драйвер, в зависимости от типа usb-устройства. Ядро, которое я использую, — linux 3.5.
решение1
Вы точно знаете, что ваше устройство работает с драйвером? Если да:
Прошивка
Для некоторых устройств также требуется дополнительная прошивка. К сожалению, метод, необходимый для извлечения прошивки и ее установки, зависит от устройства. Для некоторых устройств требуется загрузить копию драйвера Windows и использовать инструменты для извлечения прошивки. Google вам в этом поможет.
Измененные идентификаторы поставщика и продукта
Иногда поставщики меняют идентификатор поставщика и продукта, который является методом, используемым драйверами для распознавания совместимых устройств.
Эти идентификаторы жестко закодированы в драйвере. К счастью, современные драйверы устройств имеют метод для временного добавления идентификаторов поставщиков и продуктов во время выполнения.
lsusb
Для получения идентификаторов вашего устройства используйте :
# lsusb
Bus 002 Device 001: ID 1234:abcd Acme Corp DVB Tuner
Отключите устройство и выгрузите драйвер (чтобы получить новую отправную точку):
# rmmod acme_dvb
Далее загрузите драйвер:
# modprobe acme_dvb
Наконец, сообщите водителю о новых идентификаторах USB:
# echo 1234 abcd > sys/bus/usb/drivers/acme_dvb/new_id
Обратите внимание, что точный путь может отличаться.
Подключите устройство и проверьте, распознано ли оно:
# dmesg
Если это сработает, правильным решением будет сообщить об этом как об ошибке в драйвере, чтобы, как можно надеяться, разработчик добавил новые идентификаторы.