ryuonegz 发表于 2023-8-30 20:00

arm版的debian可以运行i386的程序吗?

最近想在开发版上跑些程序,但是arm平台跑不起来x86的程序,有什么解决方法吗?

KarsusNeko 发表于 2023-8-30 20:16

编译个arm版啊

Zepp 发表于 2023-8-30 20:19

box86、fex、qemu-user-x86

R.I.P 发表于 2023-8-30 20:20

qemu起个虚拟机?

ryuonegz 发表于 2023-8-30 20:22

KarsusNeko 发表于 2023-8-30 20:16
编译个arm版啊

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

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

posthoc 发表于 2023-8-30 20:27

https://askubuntu.com/questions/1376366/is-there-any-translation-layer-for-x86-software-on-ubuntu-arm 省流:qemu或者box64
不过有源码的话还是编译简单吧。

ryuonegz 发表于 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

ryuonegz 发表于 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

lhw369 发表于 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的机器码,不转就是跑不起来啊

ryuonegz 发表于 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

ryuonegz 发表于 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

KarsusNeko 发表于 2023-8-30 21:26

本帖最后由 KarsusNeko 于 2023-8-30 21:28 编辑

新的瑞拉 发表于 2023-8-30 20:43
x86程序编出来是x86的机器码,你板子只认识arm的机器码,虚拟机是把x86的机器码转成arm的机器码,不转就 ...

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

KarsusNeko 发表于 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

indtability 发表于 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

Re.Troy 发表于 2023-8-30 22:44

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

—— 来自 OPPO PGE ...

arm windows再套一层转译层

dkswxd 发表于 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吗

尼特geek 发表于 2023-8-31 08:43

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

—— 来自 OPPO PGE ...

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

JetBrains 发表于 2023-8-31 09:55

真求你编译,起 qemu 不比交叉编译省事了,速度还死慢

ryuonegz 发表于 2023-8-31 10:20

JetBrains 发表于 2023-8-31 09:55
真求你编译,起 qemu 不比交叉编译省事了,速度还死慢

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

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

scikirbypoke 发表于 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开发板型号发一下,如果是我司的可以邮件指导

ryuonegz 发表于 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

ryuonegz 发表于 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

lijian198284 发表于 2023-9-2 06:43

不要叫水狗做主人 发表于 2023-8-31 12:57
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导

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

回忆and无语 发表于 2023-9-3 17:56

不要叫水狗做主人 发表于 2023-8-31 12:57
另外你用的arm开发板型号发一下,如果是我司的可以邮件指导

你们公司是做什么开发版的?nanopi是你们家的吗
页: [1]
查看完整版本: arm版的debian可以运行i386的程序吗?