在我的Linux機器(Debian的喘息),我試圖通過request_region()
訪問並口,但失敗了,因爲系統已經加載的內核模塊parport
...如何訪問並行端口在Linux中
所以, I rmmod
模塊lp
,ppdev
,parport_pc
和parport
。然後,我可以成功插入我的模塊。
但是,從基地址inb()
返回的0xff
,無論寫什麼值。
之前rmmod
這些模塊來自內核,我可以寫和讀這個寄存器。然後,我將這些模塊加入系統啓動時加載的黑名單中,我可以讀寫這些寄存器,並且我的模塊也可以工作。看起來,parport_pc
的clearup
功能做了一些使硬件無法使用的東西。 (至少端口的狀態與載入模塊之前的狀態不一樣)。
我的問題是爲什麼,我該怎麼做才能恢復端口而不是重新加載parport_pc
?
爲什麼你需要一個內核模塊來訪問並行端口?你可以使用Linux提供的界面嗎? –
我的意圖是更好地理解硬件,所以我想通過儘可能簡單的方法在最低級別訪問它。是的,我可以使用Linux提供的parport,但問題是我不能不使用它。 –