我尝试在 VirtualBox 中的 ubuntu 11.10 上构建 Linux 内核 3.0.4。以下是我的步骤:
- 下载源代码
- tar xjvf linux-source-3.0.0.tar.bz2
- cd linux-source-3.0.0
- 制作 menuconfig,不做任何改变,但使用默认配置并保存为 .config
- 制作
实际上我认为应该是 3.0.4,因为从 Makefile 中我可以看到
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 4
EXTRAVERSION =
然后在第二阶段制作模块时,发生了一个错误:
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
也许是因为 3.0.4 是一个新版本,所以我找不到任何相同的问题或任何解决方案。
答案1
__modver_version_show() 是一个内部函数,仅在您未启用 CONFIG_MODULE 时使用和已启用 CONFIG_SYSFS。换句话说,仅有的当您的 .config 中有 CONFIG_SYSFS 但没有 CONFIG_MODULE 时,您将看到此错误。
对于普通桌面,!CONFIG_MODULE && CONFIG_SYSFS 是一个损坏的配置。
鉴于您所做的设置,您应该首先将发行版提供的内核的 .config 复制到内核源代码的顶级目录,然后执行“make oldconfig”。
我不是 ubuntu 用户,要找到您的发行版内核 .config,请搜索您的 /boot 或检查您是否有 /proc/kconfig.gz,然后将其复制(您需要 zcat 来复制 kconfig.gz,因为它是压缩的)到正确的位置。
答案2
假设 Ubuntu 的配置如下,
CONFIG_MODULE=Y
CONFIG_SYSFS=Y
我不认为问题出在这个选项上。我倾向于绕过这个驱动程序。
驱动模块 » 暂存 » RTS5139 »
<N>