2013-06-04 86 views
3

我正在嘗試修改嵌入式設備的觸摸屏驅動程序以獲得多點觸控支持。問題是這個驅動程序最初並不是作爲一個模塊編譯的,所以我不知道有什麼方法可以在完成內核重建之後進行更改。這不是我想要做的。我試圖修改現有的驅動程序並將其編譯爲模塊;在更改名稱後,它會加載而不會抱怨,但沒有事件會在原始驅動程序輸出的旁邊報告。有沒有更好的方法來做我想要的?任何特定的原因,這可能無法正常工作?如何修改不作爲模塊編譯的Linux內核驅動程序?

+0

需要補充的重要一點是,這是一個i2c驅動程序,它看起來有點不同。我可以解除驅動程序作爲@msh說,但當我這樣做: 'insmod /mnt/onboard/zforce_i2c_multitouch.ko echo zforce 0x50>/sys/bus/i2c/devices/i2c-0/new_device' 我仍然得到: 'i2c i2c-0:無法註冊i2c客戶端zforce在0x50(-16)' – giorgio130

回答

3

您可以嘗試在加載模塊之前手動取消綁定原始驅動程序。請參閱this LWN post

+0

感謝您的鏈接,真的很有趣。我可以解決原始驅動程序沒有問題,並且與其關聯的設備/ dev/input/event0消失;然而,如果我加載我自己的驅動程序並將硬件綁定到它,這樣的設備不會被創建,因此我無法獲得任何輸出...要檢查什麼? – giorgio130

+0

我可以用mknod手動創建設備:'mknod/dev/input/event1 c 13 65',但是我得到:'[root @(none)/]#cat/dev/input/event1 cat:can not打開'/ dev/input/event1':沒有這樣的設備' – giorgio130

+0

你確定主要/次要號碼適合你的驅動嗎?還要注意與任何Android守護進程通常管理設備節點創建進行迴歸戰。 –