找回密码
 立即注册
搜索
查看: 4798|回复: 32

[软件] arm版的debian可以运行i386的程序吗?

[复制链接]
     
发表于 2023-8-30 20:00 来自手机 | 显示全部楼层 |阅读模式
最近想在开发版上跑些程序,但是arm平台跑不起来x86的程序,有什么解决方法吗?
回复

使用道具 举报

     
发表于 2023-8-30 20:16 | 显示全部楼层
编译个arm版啊
回复

使用道具 举报

发表于 2023-8-30 20:19 来自手机 | 显示全部楼层
box86、fex、qemu-user-x86
回复

使用道具 举报

     
发表于 2023-8-30 20:20 | 显示全部楼层
qemu起个虚拟机?
回复

使用道具 举报

     
 楼主| 发表于 2023-8-30 20:22 来自手机 | 显示全部楼层

编译搞不定啊,这个都不会,编译就更不会了

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

发表于 2023-8-30 20:27 | 显示全部楼层
https://askubuntu.com/questions/ ... tware-on-ubuntu-arm 省流:qemu或者box64
不过有源码的话还是编译简单吧。
回复

使用道具 举报

     
 楼主| 发表于 2023-8-30 20:30 来自手机 | 显示全部楼层
posthoc 发表于 2023-8-30 20:27
https://askubuntu.com/questions/1376366/is-there-any-translation-layer-for-x86-software-on-ubuntu-ar ...

我追求的能跑起来单独的一个x86linux程序就行,不需要gui

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
 楼主| 发表于 2023-8-30 20:37 来自手机 | 显示全部楼层
Zepp 发表于 2023-8-30 20:19
box86、fex、qemu-user-x86

这些都是虚拟机吧,有没有那种可以直接在在原系统运行的库之类的?

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

发表于 2023-8-30 20:42 来自手机 | 显示全部楼层
换个x86开发板

—— 来自 HONOR HPB-AN00, Android 12上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-8-30 20:43 来自手机 | 显示全部楼层
ryuonegz 发表于 2023-8-30 20:37
这些都是虚拟机吧,有没有那种可以直接在在原系统运行的库之类的?

—— 来自 motorola XT2175-2, Andro ...

x86程序编出来是x86的机器码,你板子只认识arm的机器码,虚拟机是把x86的机器码转成arm的机器码,不转就是跑不起来啊
回复

使用道具 举报

     
 楼主| 发表于 2023-8-30 20:47 来自手机 | 显示全部楼层
新的瑞拉 发表于 2023-8-30 20:43
x86程序编出来是x86的机器码,你板子只认识arm的机器码,虚拟机是把x86的机器码转成arm的机器码,不转就 ...

那我起个虚拟机吧

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-8-30 20:53 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2023-8-30 20:54 来自手机 | 显示全部楼层
新的瑞拉 发表于 2023-8-30 20:43
x86程序编出来是x86的机器码,你板子只认识arm的机器码,虚拟机是把x86的机器码转成arm的机器码,不转就 ...

但是看到qemu-usr可以做到不开虚拟机运行其它平台的程序啊

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

头像被屏蔽
发表于 2023-8-30 21:07 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2023-8-30 21:26 | 显示全部楼层
本帖最后由 KarsusNeko 于 2023-8-30 21:28 编辑
新的瑞拉 发表于 2023-8-30 20:43
x86程序编出来是x86的机器码,你板子只认识arm的机器码,虚拟机是把x86的机器码转成arm的机器码,不转就 ...

交叉编译可以用x86编arm。嵌入式设备没那么大空间,没那么强性能,大都用的交叉编译器。
回复

使用道具 举报

     
发表于 2023-8-30 21:29 来自手机 | 显示全部楼层
ryuonegz 发表于 2023-8-30 20:22
编译搞不定啊,这个都不会,编译就更不会了

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版  ...

在arm上运行x86除了虚拟机也没办法呀,机器码啊寄存器啊啥的完全不一样

— from OnePlus ONEPLUS A6003, Android 13 of S1 Next Goose v2.5.2-play
回复

使用道具 举报

     
发表于 2023-8-30 21:49 来自手机 | 显示全部楼层
理论上是可行的,因为微软和苹果都有这样的东西,但实际上没听说过 linux 有类似的,大概是因为开源的世界,重新编译一份的成本比另外两家小太多了,没人有动力和资源做这个,而且重新编译的正确性和性能肯定比转译强太多,搞转译简直舍近求远。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-8-30 22:08 来自手机 | 显示全部楼层
不太清楚,m1 mac上那个虚拟机只能跑arm windows,好像还没办法跑x86的程序,是这样吗

—— 来自 OPPO PGEM10, Android 13上的 S1Next-鹅版 v2.5.3
回复

使用道具 举报

     
发表于 2023-8-30 22:44 | 显示全部楼层
天气姐姐 发表于 2023-8-30 22:08
不太清楚,m1 mac上那个虚拟机只能跑arm windows,好像还没办法跑x86的程序,是这样吗

—— 来自 OPPO PGE ...

arm windows再套一层转译层
回复

使用道具 举报

     
发表于 2023-8-30 23:01 来自手机 | 显示全部楼层
ryuonegz 发表于 2023-8-30 20:54
但是看到qemu-usr可以做到不开虚拟机运行其它平台的程序啊

—— 来自 motorola XT2175-2, Android 12上 ...

我用下来静态链接的elf用qemu user跑没啥问题。你可以下一个qemu,把qemu-x86_64然后拷到elf路径下,然后./qemu-x86_64加elf名字和参数。
不过大部分程序都是动态链接的,会出各种问题。
你可以先用file或者readelf命令看一下你要跑的程序是动态链接的还是静态链接的(网上随便找了个参考https://blog.csdn.net/Longyu_wlz/article/details/103453800)。

—— 来自 Xiaomi 22041211AC, Android 13上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2023-8-31 07:46 来自手机 | 显示全部楼层
ryuonegz 发表于 2023-8-30 20:54
但是看到qemu-usr可以做到不开虚拟机运行其它平台的程序啊

—— 来自 motorola XT2175-2, Android 12上 ...

qemu-usr不就是虚拟机吗?只不过没有模拟一些linux系统调用而已
回复

使用道具 举报

     
发表于 2023-8-31 07:48 来自手机 | 显示全部楼层
KarsusNeko 发表于 2023-8-30 21:26
交叉编译可以用x86编arm。嵌入式设备没那么大空间,没那么强性能,大都用的交叉编译器。 ...

这个我知道,源码本身跟平台没联系(除非用了一些平台特性),那说x86的程序不就默认是x86的elf吗
回复

使用道具 举报

     
发表于 2023-8-31 08:43 | 显示全部楼层
天气姐姐 发表于 2023-8-30 22:08
不太清楚,m1 mac上那个虚拟机只能跑arm windows,好像还没办法跑x86的程序,是这样吗

—— 来自 OPPO PGE ...

mac上pd虚拟机里那个arm windows,可以跑x86程序,有小部分可能不兼容。
回复

使用道具 举报

     
发表于 2023-8-31 09:55 来自手机 | 显示全部楼层
真求你编译,起 qemu 不比交叉编译省事了,速度还死慢
回复

使用道具 举报

     
 楼主| 发表于 2023-8-31 10:20 来自手机 | 显示全部楼层
JetBrains 发表于 2023-8-31 09:55
真求你编译,起 qemu 不比交叉编译省事了,速度还死慢

不是我开发的……很可能连源码都没有

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
发表于 2023-8-31 10:48 | 显示全部楼层
ryuonegz 发表于 2023-8-31 10:20
不是我开发的……很可能连源码都没有

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2 ...

果然,我寻思就算是arm源里该有的都有了
回复

使用道具 举报

     
发表于 2023-8-31 12:55 来自手机 | 显示全部楼层
看看dpkg foreign arch装好对应依赖,然后看看binfmt和qemu user static。是可以正常运行的
回复

使用道具 举报

     
发表于 2023-8-31 12:57 来自手机 | 显示全部楼层
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导
回复

使用道具 举报

     
 楼主| 发表于 2023-9-1 15:52 来自手机 | 显示全部楼层
不要叫水狗做主人 发表于 2023-8-31 12:57
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导

不是什么正经板子,闲鱼上整的矿渣垃圾

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
发表于 2023-9-2 00:18 | 显示全部楼层
ryuonegz 发表于 2023-9-1 15:52
不是什么正经板子,闲鱼上整的矿渣垃圾

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1 ...

安装依赖:https://wiki.debian.org/Multiarch/HOWTO
Qemu模拟:https://wiki.debian.org/QemuUserEmulation
回复

使用道具 举报

     
 楼主| 发表于 2023-9-2 01:43 来自手机 | 显示全部楼层
不要叫水狗做主人 发表于 2023-9-2 00:18
安装依赖:https://wiki.debian.org/Multiarch/HOWTO
Qemu模拟:https://wiki.debian.org/QemuUserEmulat ...

谢谢

—— 来自 motorola XT2175-2, Android 12上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
发表于 2023-9-2 06:43 来自手机 | 显示全部楼层
不要叫水狗做主人 发表于 2023-8-31 12:57
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导

在s1还能遇到做开发板的友商啊?
回复

使用道具 举报

     
发表于 2023-9-3 17:56 来自手机 | 显示全部楼层
不要叫水狗做主人 发表于 2023-8-31 12:57
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导

你们公司是做什么开发版的?nanopi是你们家的吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-21 01:45 , Processed in 0.159601 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表