如何为arm64构建ubuntu? (如何将 ARCH 和 CROSS_COMPILE 变量赋予 `debian/rules` 命令)

如何为arm64构建ubuntu? (如何将 ARCH 和 CROSS_COMPILE 变量赋予 `debian/rules` 命令)

有人建议我这是问这个问题的正确地方,从其他问题来看似乎也是如此。我希望能在这里得到答案。
(顺便说一句,我尝试构建 ubuntu 的原因是在 ubuntu 内核中添加一些调试信息,以使用 qemu 调试虚拟机上的 ubuntu 安装失败。虚拟机基于 qemu 的 arm64 'virt' 机器,但是有不同的地址映射,并且有一个简单的外围设备模型,可以加载和使用基于 multi2sim 的复杂 .so 文件。)

我通过下载了ubuntu源git clone git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git
根据https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel包含的 Arm 构建过程,我这样做了:

LANG=C fakeroot debian/rules clean  
LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch  

我已经在命令之前导出ARCH=arm64 CROSS_COMPILE=aarch64-none-elf 或导出
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-,或者在命令之后导出,但最后以错误结束。其中一条错误消息是You are building kernel with non-retpoline compiler, please update your compiler,我看到我可以通过更改配置来修复它(https://askubuntu.com/questions/1145943/building-kernel-with-non-retpoline-compiler)。所以我尝试了

LANG=C fakeroot debian/rules editconfigs

但它询问我Do you want to edit config: amd64/config.flavour.generic?何时为arm64架构做这件事。我尝试提供 ARCH 和 CROSS_COMPILE 选项,但它总是询问我是否要更改 amd64 配置。我如何为其fakeroot debian/rules构建方法提供 ARCH 和 CROSS_COMPILE 选项?

ps我的工具链信息。

aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

或者

aarch64-none-elf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

答案1

基于ARM交叉编译指令,您需要导出以下内容:

export $(dpkg-architecture -aarm64)
export CROSS_COMPILE=aarch64-linux-gnu-

但它问我Do you want to edit config: amd64/config.flavour.generic?

如果您回答“否”,它最终会询问您是否要编辑arm64配置。

一旦配置按照您想要的方式设置完毕,

fakeroot debian/rules binary-headers binary-generic binary-perarch

将为您构建软件包,目标为aarch64.

答案2

有些人已经完成了arm的编译工作,所以我建议你在ubuntu服务器上拍摄镜像,然后添加桌面环境,我做到了,这很简单,效果很好,我给你一个链接您会找到图片和遵循的步骤,希望您能成功。
https://ubuntu.com/download/raspberry-pi

https://ubuntu.com/tutorials/how-to-install-ubuntu-desktop-on-raspberry-pi-4#1-overview

祝你好运!

相关内容