![修复不匹配的 vermagic Ubuntu 20.04 内核 5.4.0-42-generic](https://linux22.com/image/1175632/%E4%BF%AE%E5%A4%8D%E4%B8%8D%E5%8C%B9%E9%85%8D%E7%9A%84%20vermagic%20Ubuntu%2020.04%20%E5%86%85%E6%A0%B8%205.4.0-42-generic.png)
从 Ubuntu 18 升级到 20.04 后,我需要修补蓝牙驱动程序才能使其正常工作。按照以下步骤操作后如何使我的蓝牙设备工作?我遇到了问题,出现错误
kernel: [13632.548685] btusb: version magic '5.4.44 SMP mod_unload ' should be '5.4.0-42-generic SMP mod_unload '
对于如何解决不匹配问题,您有什么想法吗?
答案1
该错误告诉您,您根据 5.4.44 内核源代码编译了驱动程序,但您运行的是 5.4.0。如果您在 Linux 机器上执行 uname -a,您可能会看到您正在运行 5.4.0-42-generic,如果您在 .ko 文件上执行 modinfo,您将看到它是 5.4.44。
无论出于什么原因,Ubuntu 中的 Linux 源代码现在返回的是 44 子级别,而不是 0。您可以在 Makefile 的第 4 行的 Linux 源代码树的顶级目录中看到这一点。它似乎在 20.04 和 20.04.1 之间发生了变化。我不确定这是否是故意的,因为它基于 5.4.44 分支。我正在做一些性能测试,当我尝试重新编译内核时,我无法让 cpufreq-info 工作。我将子级别改回零,重新编译内核,cpufreq-info 就可以工作了。
我确信这不是解决问题的正确方法,但我可以继续。我尝试执行 apt source linux 和 apt source linux-5.4.0,两者都将子级别设置为 44。