使用内核 4.10.0-20-generic 加载模块 btusb 时出错

使用内核 4.10.0-20-generic 加载模块 btusb 时出错

我遇到了以下问题。我需要重新编译 btusb 模块才能使用蓝牙修补 当我最终运行补丁时,模块没有加载:

$ lsmod | grep bluetooth
bluetooth             557056  10 btrtl,btintel,bnep,btbcm

我确实尝试手动加载模块并出现此错误:

$ sudo modprobe btusb
modprobe: ERROR: could not insert 'btusb': Exec format error

我尝试的最后一件事是编译并加载原始代码,但显示了相同的错误。

这可能是 btusb 源代码中的错误吗?如果答案是肯定的,我会在 launchpad 上报告该错误,但我先在这里发帖以确保万无一失。我提供了更多信息这里

谢谢您的进步。

更新:有关该模块的更多信息:

$ modinfo btusb | egrep 'filename|vermagic'
filename:       /lib/modules/4.10.0-20-generic/kernel/drivers/bluetooth/btusb.ko
vermagic:       4.10.8 SMP mod_unload

答案1

您需要返回到源代码的 drivers/bluetooth 目录,然后

make -C /lib/modules/$(uname -r)/build M=$(pwd) clean
cp /usr/src/linux-headers-$(uname -r)/.config ./
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth
sudo modprobe -r btusb
sudo modprobe -v btusb

发生错误是因为源代码是在错误的内核头上编译的。modinfo结果证实了这一点,因为 vermagic 信息(内核 4.10.8)与文件名信息(4.10.0-20)不匹配

相关内容