删除静态编译的设备驱动程序模块

时间:2013-11-01 13:00:37

标签: linux linux-kernel linux-device-driver

我使用串行设备驱动程序静态编译linux内核,即obj-y。

现在我正在研究一个简单的串行驱动程序,我想测试它,但由于在内核启动时加载了模块,IO端口区域(0x3f8及以后)会注册到串行模块。我需要删除(取消注册)它,以便我可以将它分配给我的驱动程序。

那么,有没有办法删除静态链接的设备驱动程序?或者我应该重新编译整个内核:/

1 个答案:

答案 0 :(得分:4)

您应该重新编译整个内核并使此驱动程序为obj-m

一旦加载(由modprobe自动完成或由insmod手动完成),您可以将其删除(使用rmmod),修改代码,再次编译并重新加载

当然,如果在驱动程序运行期间出现了一些未正确处理的严重错误,整个内核将处于不稳定状态,您必须重新启动(直到您修复导致此问题的原因)。