内核模块升级,停机时间最短,无需重启

时间:2014-10-08 06:17:50

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

我有一个动态加载的字符驱动程序模块,例如主编号X,它读取串口流量,然后应用程序正在使用带有Major X的/ dev / node条目处理串口流量。

我想更新驱动程序模块,以便新模块应获取相同的主编号X,并使用与Major X相同的/ dev节点条目开始处理相同的串行端口。

在新模块成功加载并开始接管旧模块处理工作之前,不允许使用rmmod卸载旧驱动程序模块。

应该没有重新启动,升级到新模块将使旧驱动程序模块的停机时间最短。

应该采取什么措施?

2 个答案:

答案 0 :(得分:0)

我会查看设备驱动程序框架并使用元总线,设备和驱动程序架构来注册您的驱动程序,使虚拟驱动程序位于串行驱动程序之上。

您的应用程序向虚拟驱动程序注册。

您实现了虚拟驱动程序的逻辑,以接受新的真实驱动程序的注册。

答案 1 :(得分:0)

基本上,使用modprobe卸载他的mod,在/ lib / modules / YourKernel /中添加/更新mod,使用modprobe重新加载mod。记得使用CURRENT版本的内核头编译mod!