
我正在使用 DVB 調諧器、USB 調諧器。我已經將驅動程式添加到核心中並且正在註冊。但是當設備連接時,它不會呼叫探測函數。
有什麼我要補充的嗎?例如設備驅動程式應該要映射到設備還是其他什麼?請解釋如何根據 USB 裝置的類型載入驅動程式。我使用的核心是linux 3.5。
答案1
您確定您的設備可以與該驅動程式配合使用嗎?如果是這樣:
韌體
有些設備還需要額外的韌體。不幸的是,提取韌體並安裝它所需的方法取決於設備。有些要求您下載 Windows 驅動程式的副本並使用工具來提取韌體。谷歌將在這裡為您提供幫助。
更改的供應商和產品 ID
有時供應商會更改供應商和產品 ID,這是驅動程式用於識別相容設備的方法。
這些 ID 被硬編碼在驅動程式中。幸運的是,現代設備驅動程式有一種在運行時臨時添加供應商和產品 ID 的方法。
用於lsusb
取得您裝置的 ID:
# lsusb
Bus 002 Device 001: ID 1234:abcd Acme Corp DVB Tuner
拔下設備並卸載驅動程式(以獲得新的起點):
# rmmod acme_dvb
接下來,載入您的驅動程式:
# modprobe acme_dvb
最後,告訴驅動程式新的 USB ID:
# echo 1234 abcd > sys/bus/usb/drivers/acme_dvb/new_id
請注意,確切的路徑可能會有所不同。
插入您的裝置並檢查它是否已被識別:
# dmesg
如果這有效,正確的做法是將其報告為針對驅動程式的錯誤,以便維護人員新增新的 ID。