This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM64B:交叉编译 Debian Linux 内核- linux-libc-dev 头未拉取正确的架构

Guru**** 1969805 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1411008/sk-am64b-cross-compile-debian-linux-kernel---linux-libc-dev-headers-not-pulling-correct-architecture

器件型号:SK-AM64B

工具与软件:

我正在尝试使用 AMD64构建机器为 AM64B 系统创建 Debian (Bookworm) Linux 内核。  我将使用" github.com/.../master" 作为有关如何构建内核的指南、并且仅使用"ti-linux-kernel-rt"包。  我已经设置了系统以进行交叉编译、并使用该系统进行交叉编译、从而在另一个存储库中创建 ARM64映像。  我可以看到使用正确的内核模块交叉编译器进行的构建。  但是我看到"linux-libc-dev"软件包的文件夹("build/bookworm/ti-linux-kernel-rt/ti-linux-kernel-rt_09.02.00.010-rt-1/debian/linux-libc-dev/usr/include/")具有一个名为"x86_64 linux-gnu/asm"的文件夹、该文件夹是编译机的架构。  我希望它能够像我在 AM64x 系统上所做的内核构建中看到的那样拉动"AArch64-Linux-GNU/asm"。

我修改了 "run.sh"、如下所示:

(cd "$builddir/$package_name_$deb_version"&& DEB_HOST_ARCH=ARM64 DEb_BUILD_OPTIONS=verbose debbuild --no-lintian --no-sign-b || true)
以下是我的"rules"文件:
```μ A
#!/usr/bin/make -f

export CROSS_COMPILE="$(CURDIR)/../../../../tools/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
Export Deb_host_arch=ARM64

srctree ?=。

编译指示符
构建架构
$(make) arch=ARM64 cross_compile=$(cross_compile)-J2 V=1 KERNELRELEASE=6.1.83-K3-RT KBUILD_BUILD_VERSION=1 -f $(srctree)/Makefile defconfig ti_arm64_prune.config ti_rt.config riaps.config
$(make) arch=arm64 cross_compile=$(cross_compile)-J2 V=1 KERNELREASE=6.1.83-K3-RT KBUILD_BUILD_VERSION=1 -f $(srctree)/Makefile


构建:build-arch

二进制代码
binary-arch:build-arch
$(make) Deb_HOST_ARCH=ARM64 ARCH=ARM64 CROSS_COMPILE=$(CROSS_COMPILE=J2 V=1 KERNELREASE=6.1.83-K3-RT KBUILD_BUILD_VERSION=1 -f $(srctree)/Makefile intdeb-pkg


清洁
rm -rf debian/files debian/linux-*
$(make)清洁

binary:binary-arch
```μ A
 
我在这里遗漏了什么?  我应该在"debug"命令或"rules"文件中指示另一个编译标志吗?
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    看起来 GitHub 参考被截断。  我正在使用"TexasInstruments/debian-repos"作为指南。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mary:

    您是否按照下面链接的说明为 AM64x 构建 Debian? 我认为内核不是交叉编译的、而是在 ARM QEMU 环境中本地编译的。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_00_07_Debian/exports/docs/debian/Building_Debian_Image .html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我就是这样为 AM64B 创建映像的、但此过程假设您从 apt repo (在 bdebstrap_configs 文件的 packages 部分中定义)拉取 Linux 内核。  我们希望根据系统要求(配置标志和设备树添加)自定义内核、因此我需要构建一个内核 并将其放入本地存储库中、以便在使用上述方法创建映像时使用。  使用相同的构建机器来创建这两者、因此设置是基于这些说明的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mary:

    让我尝试在我的设置上复制这一点并查看一下。 我目前正在做另一项工作、但希望我能够在星期五之前回复您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mary:

    很抱歉我迟到了答复。 这似乎是为 Debian 构建内核源代码,你需要按照下面链接的指令。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_00_07_Debian/exports/docs/debian/Building_Debian_Packages .html

    这使用 Docker ARM 环境来构建 ARM 软件包。

    在 debian-repos 中、ti-linux-kernel-rt/rt version.sh 定义了 RT 内核 repo URL。 我没有亲自尝试它,但我认为你可以修改它,以指向你自己的内核 repo 在你的计算机本地。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢!  看起来应该起作用。   

x 出现错误。请重试或与管理员联系。