我目前正在尝试修改e1000e驱动程序以在具有环形拓扑的网络中使用标准网络适配器(82574L)(我不是指任何特定的环形拓扑)。我想在驱动程序级别执行此操作(我仍在学习驱动程序,主要来自“Linux设备驱动程序”)。 所以我的问题是: 是否可以使用一个驱动程序控制2个网络适配器?我的意思是,是否可以为“虚拟适配器”编写驱动程序,它可以控制2个物理适配器,并使它们被系统视为一个设备?
答案 0 :(得分:0)
是的,很多司机实际上都是这样做的。通常的做法是创建一个" bus"驱动程序,意味着您的驱动程序将提供某种总线,例如PCI。但没有人阻止你创建自己的虚拟总线。
因此,将为您的总线上出现或消失的所有设备调用总线驱动程序。当您收到有关总线上设备的通知时,您将创建并注册Linux内核的结构,例如: struct net_device
或更多一般struct device
。
实际上,作为设备驱动程序开发人员,您在此处有很多选择。您可以为每个设备(例如e1000驱动程序)创建/注册,以某种方式将设备分组并将大量物理设备表示为单个逻辑(RAID),将它们包装到非常特定的设备(设备映射器)等等。