【问题标题】:Issue compiling kernel modules编译内核模块的问题
【发布时间】:2013-03-18 04:40:54
【问题描述】:

我买了一个新的 Toshiba Satellite C855 并在上面安装了 Ubuntu 12.10 却发现预装的 wifi 和以太网驱动程序不起作用。结果,这台新计算机完全无法访问互联网。我下载了正确驱动程序的源代码,目前正在安装它们。当我构建模块时,出现以下错误

make -C /lib/modules/3.5.0-17-generic/build M=/home/<user>/Desktop/rtl_92ce_92se_8723ae_88ee_linux_mac80211_0012.0207.2013 modules
make[1]: Entering directory `/lib/modules/3.5.0-17-generic/build`
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/lib/modules/3.5.0-17-generic/build`
make: *** [all] Error 2

我必须创建/lib/modules/3.5.0-17-generic/build 目录。我确实安装了标题(/usr/src/linux-headers-3.5.0-17/)。在发布这个问题之前,我也对这个主题进行了很多谷歌搜索,但我发现的所有内容要么已死,要么没有答案。

注意:我宁愿避免显示输出。由于我发帖的这台计算机不是东芝机器,而且新机器没有互联网接入,我必须手动输入输出或使用闪存驱动器进行麻烦。此外,如果我需要安装任何软件包,我还需要指向 .deb 软件包的链接,而不是 apt-get install 命令。

先谢谢了。

【问题讨论】:

  • 你有 build-essential 包吗?
  • 做模块准备
  • make modules-prepare 只是说没有目标规则。 Build-essential 没有安装,但现在已经安装了,并且没有任何变化。仍然对两者都说没有规则。

标签: linux linux-kernel linux-device-driver ubuntu-12.10


【解决方案1】:

我设法自己修复了它,并想我会发布我的解决方案:

在我最初的问题中,我说我必须 mkdir 构建目录。我没有意识到这应该是内核源目录的符号链接。一旦我这样做了,一切(包括我的以太网,wifi 仍然有点不稳定)突然工作。

【讨论】:

    【解决方案2】:

    我建议您停止在目标 PC 上进行编译。 您缺少编译内核的所有基本工具,并且在没有 Internet 连接的情况下获取它们是一项乏味的工作,处理所有依赖项,这是一场噩梦。

    你有两个选择:

    1. 搜索为您的目标 PC 预编译的二进制模块。
    2. 自己编译,在另一台机器上,我建议在 virtualbox / vmware 下进行,这样你就可以安装你正在尝试编译的确切版本的 Ubuntu。然后只需将.ko 复制到您的目标insmod,就可以开始了。

    【讨论】:

    • 是否必须手动运行 insmod 才能加载模块,或者是否有什么地方可以“删除”.ko 以便在启动时自动加载?
    • insmod必须手动启动,当然还有其他方法可以实现,google一下吧。
    • 这不是回复,而是其他阅读此问题试图找到答案的人的答案:/etc/modules/etc/modules.conf:将模块添加到列表中将在启动过程中加载。
    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多