在我的 Linux 机器(Debian Wheezy)上,我尝试访问并口,request_region()
但失败了,因为系统已经加载了内核模块parport
......
所以,我的rmmod
模块lp
,,ppdev
和。然后,我可以成功插入我的模块。parport_pc
parport
inb()
但是,从返回的基地址0xff
,无论写入什么值。
在rmmod
内核中的那些模块之前,我可以编写和读取这个寄存器。然后我在系统启动时将这些模块列入黑名单,我可以读写这些寄存器,我的模块也可以工作。似乎 的clearup
函数parport_pc
做了一些使硬件无法使用的事情。(至少端口的状态与加载模块之前的状态不同)。
我的问题是为什么,我应该怎么做才能恢复端口而不是重新加载parport_pc
?