V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moudy
V2EX  ›  macOS

Apple Silicon 只支持 arm64, 想运行 arm32 的软件怎么办?

  •  
  •   moudy · 235 天前 via iPhone · 2831 次点击
    这是一个创建于 235 天前的主题,其中的信息可能已经有所发展或是发生改变。

    gf 学校的编程练习课用 Minecraft PI edition 作为环境。老师给每个组发了一个树莓派跑这个 MCPI 游戏,网线连接笔记本,在笔记本上跑控制算法。

    因为每组一个树莓派,想测试就得跟大伙错开时间,很不方便。同组有的人就在自己的 linux 机器上安装了 MCPI ,方便自己测试。gf 的用的 M1 MBA ,没找到移植版。加上连接网线还要加扩展 hub 等玩意,相当的麻烦。我们就在琢磨怎么能在本地 MBA 跑一个 MCPI

    一开始觉得这玩意既有源码又是 arm 原生应用,装个 arm 版的 linux 虚拟机,在里面跑 MCPI 就是了。

    结果安装的 ubuntu arm64 倒是正常跑起来了,MCPI 网上也有人编译了 arm64 的 AppImage 。但是运行时提示 MCPI 引用了很多 arm32 的 so 库,apple silicon 只支持 arm64 ,无法运行。

    到这里事情就卡住了。难不成真的要用 QEMU 来完全模拟 linux 加 MCPI ,就因为几个 arm32 的库么?

    19 条回复    2024-04-01 10:14:07 +08:00
    Puteulanus
        1
    Puteulanus  
       235 天前
    整个便宜的服务器跑,阿里腾讯几十块一年的,阿里云是不是学生还有免费的
    deorth
        2
    deorth  
       235 天前 via Android
    啥学校这么爽
    moudy
        3
    moudy  
    OP
       235 天前
    @Puteulanus 我自己就有一个树莓派做个人服务器,要是没法本地模拟,就只能辛苦它了
    gainsurier
        4
    gainsurier  
       235 天前 via iPhone
    qemu-user-static
    westerndream
        5
    westerndream  
       235 天前
    海鲜市场几十块钱收个能刷 ubuntu 的机顶盒,4c1g 或者 2g ,arm 和 aarch64 都可以跑
    tianshilei1992
        6
    tianshilei1992  
       235 天前
    建议在一台 x86_64 系统上运行 QEMU ,在 Apple Silicon 上面运行 QEMU 真的是屎一样的感觉…
    现在云服务提供商好像不给提供 32-bit 系统吧…
    我之前为了调一个 x86 的 bug 也是吃屎了一样,我的主力机是一台 Mac Studio ,那跑起 QEMU 来…最后还是在一台 6 年前的 Intel NUC 上面跑 QEMU + Debian ,有硬件加速跑起来和真机速度差不多。
    JensenQian
        7
    JensenQian  
       235 天前 via Android
    买个 n100 小主机,五百块
    Chihaya0824
        8
    Chihaya0824  
       234 天前
    可以试一下先把 arm32 加到 apt 里
    然后再把缺失的 so 库全部都装好,应该就可能可以运行了?
    类似的参考这里: https://askubuntu.com/questions/1090351/can-i-run-an-arm32-bit-app-on-an-arm64bit-platform-which-is-running-ubuntu-16-04
    moudy
        9
    moudy  
    OP
       234 天前
    @Chihaya0824 我理解这个问题这个缺库,是库代码不能被 cpu 执行。因为 M1 无法执行 arm32 的机器码。而树莓派的 cpu 同时支持 32 位和 64 位指令集
    moudy
        10
    moudy  
    OP
       234 天前
    @tianshilei1992 你说的是 qemu 在 M 系列上执行 x86 代码吧。这里是想找个办法在 m 系列上执行 arm32 的代码
    tianshilei1992
        11
    tianshilei1992  
       234 天前 via iPhone
    @moudy 可以开启硬件加速的话应该还好 不能的话是一样的
    daveh
        12
    daveh  
       234 天前 via iPhone
    UTM
    Chihaya0824
        13
    Chihaya0824  
       234 天前
    @moudy 草,确实如此
    我刚刚看了一圈然后自己试了一下还真的不支持 arm32 惊了
    那这条路走不通要不试一下把 MCPI build 成 arm64 的(
    tool2d
        14
    tool2d  
       234 天前
    xcode 早就不支持 arm32 了,我也不知道能不能自己加进去。

    还是安卓好,没那么激进。
    Chihaya0824
        15
    Chihaya0824  
       234 天前
    不好意思,看错了
    我 MCPI reborn 和 MCPI 不是一个东西,看了下好像 MCPI 并没有 source code ,所以上面应该是行不通的
    vicalloy
        16
    vicalloy  
       234 天前
    如果不介意速度慢可以用 docker 创建个 linux/arm32 的容器跑。
    docker 底层用的 QEMU ,速度会非常慢。
    MaxLi77
        17
    MaxLi77  
       234 天前
    再买一个呗,有你折腾的时间早就挣回来了,大不了用完了出掉,也不会损失太多
    keakon
        18
    keakon  
       234 天前
    试了下用 docker 是可以运行的,但是好像要自己编译 libpng12.so.0 ,其他库基本上可以 apt-get
    https://hub.docker.com/r/arm32v7/ubuntu
    icyalala
        19
    icyalala  
       234 天前
    苹果很早就在硬件层面完全抛弃 arm32 了,话说 arm32 和 arm64 相差太大,完全可以当做两套不同的指令集。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:46 · PVG 05:46 · LAX 13:46 · JFK 16:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.