首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旧的ARM32二进制文件能在AARCH64内核上运行吗?

旧的ARM32二进制文件能在AARCH64内核上运行吗?
EN

Stack Overflow用户
提问于 2016-01-07 06:41:46
回答 1查看 8.3K关注 0票数 10

我很好奇在AARCH64 64-Linux机器上运行旧的ARM32-Linux程序的可行性,我做了一些实验:

  1. 写一个程序“你好,世界!”然后用arm-none linux-gnueabi-gcc和aarch64-linux gcc静态编译它。
  2. 使用busybox和aarch64编译器静态地构建和创建一个ramdisk。
  3. 把2“你好,世界!”程序(在ARM32和AARCH64中)到ramdisk。
  4. 使用vexpress_defconfig和aarch64编译器构建一个简单的aarch64 64-Linux内核。
  5. 使用qemu-system-aarch64运行内核和ramdisk。

(所有二进制文件(包括ramdisk中的busybox )都是静态编译的。)

结果:

  1. “你好,世界!”在AARCH64中成功地执行了程序。
  2. “你好,世界!”无法运行ARM32中的程序,但会显示以下消息:

第1行:语法错误:意外单词(期待“)

是否有解决上述问题的建议或专门知识?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-07 07:43:47

谢谢你moonbutt74。你为我寻求解决这一问题提供了有用的线索。

为了支持在AARCH64内核上运行ARM32-Linux程序,应该选择内核中的选项:

  1. 运行menuconfig ARCH=arm64
  2. 转到该选项并选择它:

用户空间二进制格式->32位EL0的内核支持

  1. 通过运行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-重新编译内核
  2. 使用ramdisk和qemu-system-aarch64运行重新编译的内核。
  3. “你好,世界!”(ARM32和AARCH64)中的程序可以成功地执行!

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34648832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档