Linux 内核模块别名

Linux 内核模块别名,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,在编译不同版本的Linux内核时,我不时会看到一些驱动程序被删除,取而代之的是其他驱动程序 例如,提交5772DCAA790851EC068AFCD0D1F160D801B126E会删除(删除)Xirlink C-it摄像头的IBM驱动程序,该驱动程序位于v2.6.37分支的drivers/media/video/usbvideo/ibmcam.C。较新的驱动程序出现在v2.6.38中的drivers/media/video/gspca/xirlink_cit.c 对于这个特定的驱动程序,我看到

在编译不同版本的Linux内核时,我不时会看到一些驱动程序被删除,取而代之的是其他驱动程序

例如,提交
5772DCAA790851EC068AFCD0D1F160D801B126E
会删除(删除)Xirlink C-it摄像头的IBM驱动程序,该驱动程序位于v2.6.37分支的
drivers/media/video/usbvideo/ibmcam.C
。较新的驱动程序出现在v2.6.38中的
drivers/media/video/gspca/xirlink_cit.c

对于这个特定的驱动程序,我看到新驱动程序支持的所有设备都是旧驱动程序支持的,正如在
xirlink\u cit.c
中定义的
usb\u device\u表中所写的那样。但是,我没有看到从较新的驱动程序模块到较旧的驱动程序模块的任何别名。我知道存在
MODULE\u ALIAS
宏,但在本例中,我没有看到它被使用

也就是说,我想知道通过编程定义别名的所有可能方式。
感谢您的帮助:)

为什么需要从新到旧的别名?无论如何,驱动程序的选择通常不是这样的。让我们假设较旧的驱动程序将生成一个名为ibmca的模块。要手动加载它,可以使用“modprobe ibmca”。但是,如果模块名称发生更改(现在是xirlink),则无法重用以前的名称,这可能会导致在内核之间迁移时出错。但是,99.99999%的时间从未使用模块名称。您是对的,但是在任何地方定义别名都有助于识别添加/删除的驱动程序之间的可跟踪性,正如Xirlink C-it摄像头的情况一样,为什么需要一个从新到旧的别名?无论如何,驱动程序的选择通常不是这样的。让我们假设较旧的驱动程序将生成一个名为ibmca的模块。要手动加载它,可以使用“modprobe ibmca”。但是,如果模块名称发生更改(现在是xirlink),则无法重用以前的名称,这可能会导致在内核之间迁移时出错。但是,99.99999%的时间从未使用模块名称。您是对的,但是在任何地方定义别名都有助于识别添加/删除的驱动程序之间的可跟踪性,正如Xirlink C-it摄像头的情况一样。