2012-08-05 169 views
2

我需要修改位於Linux 3.2.0中的內核模塊。在drivers/staging/bcm之內,驅動程序應該支持設備ID爲198F:015E,而不是在InterfaceInit.h文件中,它被提及爲198F:15E,我將其更改爲015E,但仍然在編譯成功後,內核沒有拾取新的設備ID。在Linux內核模塊中自定義.mod.c MODULE_ALIAS

這裏是modinfo輸出:

filename:  <somewhere/>bcm_wimax.ko 
license:  GPL 
version:  5.2.45 
description: Beceem Communications Inc. WiMAX driver 
srcversion:  D6016018ABCFFD16AF31D22 
alias:   usb:v19D2p0007d*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v0489pE017d*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v19D2p0132d*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v198FpBCCDd*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v198Fp0220d*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v198Fp0210d*dc*dsc*dp*ic*isc*ip* 
alias:   usb:v198Fp0300d*dc*dsc*dp*ic*isc*ip* 
depends:   
vermagic:  3.2.0-26-generic-pae SMP mod_unload modversions 686 
parm:   debug:Debug level (0=none,...,16=all) (uint) 

198F:015E依然沒有出現!開始編譯後奇怪的是,我可以看到一個名爲bcm_wimax.mod.c的文件在模塊源文件夾中生成。在裏面,我發現了modinfo別名的東西。它看起來像:

#include <linux/module.h> 
#include <linux/vermagic.h> 
#include <linux/compiler.h> 

MODULE_INFO(vermagic, VERMAGIC_STRING); 

struct module __this_module 
__attribute__((section(".gnu.linkonce.this_module"))) = { 
    .name = KBUILD_MODNAME, 
    .init = init_module, 
#ifdef CONFIG_MODULE_UNLOAD 
    .exit = cleanup_module, 
#endif 
    .arch = MODULE_ARCH_INIT, 
}; 

MODULE_INFO(staging, "Y"); 

static const struct modversion_info ____versions[] 
__used 
__attribute__((section("__versions"))) = { 
}; 

static const char __module_depends[] 
__used 
__attribute__((section(".modinfo"))) = 
"depends="; 

MODULE_ALIAS("usb:v198Fp0300d*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v198Fp0210d*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v198Fp0220d*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v198FpBCCDd*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v19D2p0132d*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v0489pE017d*dc*dsc*dp*ic*isc*ip*"); 
MODULE_ALIAS("usb:v19D2p0007d*dc*dsc*dp*ic*isc*ip*"); 

MODULE_INFO(srcversion, "D6016018ABCFFD16AF31D22"); 

但我試圖修改bcm_wimax.mod.c但編譯後,該文件得到恢復到它的原始狀態,消除我的編輯。我怎樣才能將我的198f:015e添加到模塊別名部分?

+0

您不應該實際修改生成的文件。我沒有一個banglalion調制解調器來測試這個。如果我能找到任何讀取內核源碼的東西,我會發布它。除了爲什麼3.2.0最新的3.5-rc7? – Aftnix 2012-08-05 03:35:16

回答

2

198F:015E相同198F:15E

看着好像你有興趣BCM_USB_PRODUCT_ID_SYM內核源代碼,但該設備沒有出現在InterfaceUsbtabledrivers/staging/bcm/InterfaceInit.c

您可以添加它,並希望驅動程序也支持該設備。

+0

非常感謝你的配偶,你只是發現了一塊拼圖的缺失! – 2012-08-14 03:51:49