gpt4 book ai didi

linux - 在 Linux 内核模块中自定义 .mod.c MODULE_ALIAS

转载 作者:太空狗 更新时间:2023-10-29 12:20:14 25 4
gpt4 key购买 nike

我需要修改位于 Linux 3.2.0 中的内核模块。在 drivers/staging/bcm 中,驱动程序应该支持设备 ID 198F:015E,而不是在 InterfaceInit.h 文件中,它被提到如 198F:15E,我将其更改为 015E,但在成功编译后,新设备 ID 仍未被内核获取。

这是 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 添加到模块别名部分?

最佳答案

198F:015E198F:15E

相同

查看内核源代码,您似乎对 BCM_USB_PRODUCT_ID_SYM 感兴趣,但该设备不存在于 InterfaceUsbtable drivers/staging/bcm/InterfaceInit.c

您可以添加它并希望驱动程序也支持该设备。

关于linux - 在 Linux 内核模块中自定义 .mod.c MODULE_ALIAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com