我使用串行设备驱动程序静态编译linux内核,即obj-y。
现在我正在研究一个简单的串行驱动程序,我想测试它,但由于在内核启动时加载了模块,IO端口区域(0x3f8及以后)会注册到串行模块。我需要删除(取消注册)它,以便我可以将它分配给我的驱动程序。
那么,有没有办法删除静态链接的设备驱动程序?或者我应该重新编译整个内核:/
答案 0 :(得分:4)
您应该重新编译整个内核并使此驱动程序为obj-m
。
一旦加载(由modprobe
自动完成或由insmod
手动完成),您可以将其删除(使用rmmod
),修改代码,再次编译并重新加载
当然,如果在驱动程序运行期间出现了一些未正确处理的严重错误,整个内核将处于不稳定状态,您必须重新启动(直到您修复导致此问题的原因)。