我正在运行 Ubuntu:
#lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.4 LTS
Release: 12.04
Codename: precise## Heading ##
和:
内核信息:
3.8.0-38-generic #56~precise1-Ubuntu SMP Thu Mar 13 16:23:47 UTC 2014 i686 i686 i386 GNU/Linux
我想知道这个正在运行的内核是否是使用哪个构建的CONFIG_MODVERSIONS
。有什么命令吗?
更新
#/usr/src/ubuntu-precise# make oldconfig | grep CONFIG_MODVERSIONS
/boot/config-3.8.0-38-generic:3420:warning: symbol value 'm' invalid for SPI_PXA2XX_PCI
/boot/config-3.8.0-38-generic:4222:warning: symbol value 'm' invalid for VIDEO_EM28XX_RC
/boot/config-3.8.0-38-generic:6694:warning: symbol value 'm' invalid for NFS_V3
/boot/config-3.8.0-38-generic:6696:warning: symbol value 'm' invalid for NFS_V4
之后没有任何进展。在这里停留了 30 多分钟
答案1
尝试这个:
安装
dpkg-dev
软件包。这是第 2 步所需的。sudo apt-get install dpkg-dev
下载当前使用的内核源代码:
apt-get source linux-image-$(uname -r)
这将在当前目录中创建一个包含内核源代码的目录。例如,在运行内核版本 的 13.10 上
3.11.0-12-generic
,它创建了:/home/terdon/linux-3.11.0
检查文件中是否设置了该选项
~/linux-3.11.0/.config
:$ grep CONFIG_MODVERSIONS ~/linux-3.11.0/debian.master/config/config.common.ubuntu CONFIG_MODVERSIONS=y
y
正如您上面看到的,该选项默认设置为(开启),因此,除非您编译了自己的内核,否则该选项是在您正在使用的内核中设置的。
答案2
尝试:
grep MODVERSIONS /boot/config-$(uname -r)
如果你得到
CONFIG_MODVERSIONS=y
然后它就打开了。
答案3
对于 2.4 内核,CONFIG_MODVERSIONS
可以在文件夹中的 Makefile 中找到/usr/src/linux-2.4.x-xx/
。
另一个症状是出现错误消息,例如,unresolved symbol reference
可能的原因之一可能是 -CONFIG_MODVERSIONS
已启用,但 LKM 并未同样进行编译。