gpt4 book ai didi

linux - 在 Mac OS X 上构建 Linux 内核

转载 作者:IT王子 更新时间:2023-10-29 00:16:46 26 4
gpt4 key购买 nike

我正在做一个修改Linux内核的项目。我有一台桌面 Linux 机器,我可以在上面构建内核。

但是,我要去旅行,我想在路上工作。我只有一台 MacBook。当我尝试构建 Linux 内核时,它提示说 elf.h 找不到

我从网上下载了一个 elf.h。现在它提示:NO ELF

我尝试从我的 Linux 桌面复制整个 /usr/include,并将其设置为 include 目录,但仍然出现奇怪的错误,如 "u8"not declared

在 Mac 上进行内核开发的标准方法是什么?我在同一台 Mac 上有一台运行 Linux 的虚拟机,它将用于测试修改后的内核。但是,我真的不想在它上面构建内核,因为它有点慢。

最佳答案

首先,我同意只使用 Linux VM 通常更简单。也就是说,如果您真的想要这样做,我已经使用以下过程成功编译了 Linux 内核代码。

在开始之前,您可能需要在 Mac 上区分大小写的文件系统上安装 Linux 源代码树。 (默认的 HFS 文件系统不区分大小写。)我不会在这里介绍,但很多人这样做是为了编译 Android 源代码树,所以 you can use Google to find instructions

首先,您需要以下文件来在 OS X 机器上交叉编译内核(将它们从已知工作的 Linux VM 复制到本地 /usr/include ):

/usr/include/elf.h
/usr/include/features.h
/usr/include/bits/predefs.h
/usr/include/bits/wordsize.h
/usr/include/gnu/stubs.h
/usr/include/gnu/stubs-64.h

接下来,您需要将 malloc.h 置于 Linux 系统的预期位置,因此:

sudo ln -s /usr/include/malloc/malloc.h /usr/include/malloc.h

最后,您需要担心系统上安装的编译器是否适合构建 Linux 内核。我已将此过程用于为 Android 编译的内核,使用适当的交叉编译器工具链,但我不确定您是否可以使用 OS X 上的默认 gcc 编译器成功编译 Linux 内核(假设您有随附的编译器) Xcode...)


编辑:您可能还需要按照上述“nmagerko”评论中链接的错误中指出的步骤进行操作,以确保您具有正确的依赖项和 sed 的 GNU 版本。特别是:

$ sudo port install libelf
$ sudo port install gsed

关于linux - 在 Mac OS X 上构建 Linux 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com