【问题标题】:Kernel compilation error (invalid magic number)内核编译错误(无效的幻数)
【发布时间】:2013-01-18 15:25:00
【问题描述】:

我正在尝试从下载的源代码编译内核。我使用 kernel.org 的源代码制作了内核映像。

我已经成功地将它加载到 grub 中,但是当我尝试运行加载的模块时,它给出了错误消息:"invalid magic number"。我没有得到我需要修复的东西来完成这些事情。

我遵循的步骤:

  1. 制作 xconfig,
  2. 制作 bzImage
  3. 制作模块
  4. 制作modules_install
  5. 我还从 bzImage 更改了映像的名称(在 /boot 文件夹中),然后从以下位置创建了 initrd 映像:
  6. # dracut /boot/initramfs-3.1.6-1.fc16.x86_64.img 3.1.6-1.fc16.x86_64(命令抄自网络)

【问题讨论】:

    标签: linux-kernel kernel fedora


    【解决方案1】:

    每次编译内核时,还必须重新编译需要在该内核中使用的内核模块。例如,您不能在内核 3.7 上加载为内核 2.6.39 编译的模块。您必须为内核 3.7 重新编译它。

    更多细节 --> 更好的答案

    【讨论】:

    • 我用命令“make modules”制作模块,然后是“make modules_install”
    • 我想你也遇到了同样的错误。你能发布确切的错误信息吗?您是否加载了正确的内核?
    • 我得到:正在加载初始 ram 磁盘,错误:首先加载内核
    • 看起来是个不同的问题
    【解决方案2】:

    实际上我怀疑这与内核模块有什么关系。看起来内核本身被称为模块。内核可能构建不正确或从 grub 命令行加载不正确。

    http://forums.gentoo.org/viewtopic-t-932358-start-0.html 试试看。

    内核构建中的某些文件可能没有被正确清理,因此其中包含不正确的数据,因为您在之前的构建尝试中进行了任何更改。

    另外请注意,x86 映像最终会位于内核源代码中的 arch/x86_64/boot/bzImage 或 arch/x86/boot/bzImage 中,请确保您确实复制了内核本身,而不是其他一些不正确的文件。

    如果失败,请尝试使用 grub 1.x,因为它比 grub 2.x 更易于使用,只需注意很多不同之处,您应该阅读正确版本的 grub 教程。根据发行版的不同,grub 1.x 通常位于 grub-legacy 或类似的包中。

    编辑:如果你只为你的硬件构建你的内核......不要使用 initramfs 它的过度杀伤力。如果您的系统无法为基本驱动程序加载足够大的内核(例如,sparc 的内核映像大小非常有限),您可能会希望这样做。另一个可能通过网络启动,但总的来说它是不需要的。如果您必须使用 initramfs,请先让您的内核构建在没有它的情况下正常工作。

    我个人也用包含的基本驱动程序(基本上是磁盘和文件系统)构建我的内核并使用它来构建它。

    make mrproper (save/backup your .config first) ; 
    make menuconfig ; 
    make -j8 ; 
    make modules_install ; 
    cp arch/x86_64/boot/bzImage /boot/linux-3.7.1 ; 
    

    (修改 grub 以启动新内核)我完成并准备重新启动。

    能否附上失败的截图?

    【讨论】:

    • 感谢您的详细解答。很高兴有您用来编译和安装新内核的步骤。
    【解决方案3】:

    我没有 100% 清楚地了解您的问题。无论如何,您从 kernel.org 下载了一些内核树,并使用新映像成功启动。

    然后您尝试使用 insmod 或 modprobe 加载 LKM 即内核模块。

    所以你得到“无效的幻数”。

    解决方案

    需要在新内核中重新编译内核模块,然后尝试插入。

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 2010-12-06
      • 2015-10-14
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 2012-11-19
      • 1970-01-01
      相关资源
      最近更新 更多