啥啥啥,Arm64 Linux运行amd64架构Windos软件?

发布于:2025-08-03 ⋅ 阅读:(11) ⋅ 点赞:(0)

前言

有一个amd64的exe需要在Arm Linux上运行,源码又拿不到,如何是好。
解决方案分两步走,先是box64(arm)运行wine64(amd64),然后wine64(amd64)运行exe(amd64)。

1创建Arm Linux虚拟运行环境

本人手上只有一台m2芯片的Macbook,需要先安装虚拟机。
使用VMware Fusion,broadcom官网注册免费下载

2ubuntu arm镜像

官网目前只有25.04版提供arm镜像,下载并安装。

3安装box64

GitHub项目主页
参考官方使用方法
我是通过编译安装的,首先安装编译工具

sudo apt install build-essential

然后编译box64工程

git clone https://github.com/ptitSeb/box64
cd box64
mkdir build; cd build; cmake .. ${OPTIONS}
make -j4  
sudo make install

此时控制台应可以使用box64

4安装amd64架构的wine

参考链接中:四、安装Wine

与文章不同的是,我没有执行装库操作,也许Kylin系统需要先装库。

  1. 下载和安装

	# NOTE: Can only run on aarch64 (since box64 can only run on aarch64)
	# box64 runs wine-amd64, box86 runs wine-i386.

	### User-defined Wine version variables ################
	# - Replace the variables below with your system's info.
	# - Note that we need the amd64 version for Box64 even though we're installing it on our ARM processor.
	# - Note that we need the i386 version for Box86 even though we're installing it on our ARM processor.
	# - Wine download links from WineHQ: https://dl.winehq.org/wine-builds/
  
	branch="staging" #example: devel, staging, or stable (wine-staging 4.5+ requires libfaudio0:i386)
	version="9.7" #example: "7.1"
	id="ubuntu" #example: debian, ubuntu
	dist="focal" #example (for debian): bullseye, buster, jessie, wheezy, ${VERSION_CODENAME}, etc 
	tag="-1" #example: -1 (some wine .deb files have -1 tag on the end and some don't)

  ########################################################

	# Clean up any old wine instances
	wineserver -k # stop any old wine installations from running
	rm -rf ~/.cache/wine # remove any old wine-mono/wine-gecko install files
	rm -rf ~/.local/share/applications/wine # remove any old program shortcuts

	# Backup any old wine installs
	rm -rf ~/wine-old 2>/dev/null; mv ~/wine ~/wine-old 2>/dev/null
	rm -rf ~/.wine-old 2>/dev/null; mv ~/.wine ~/.wine-old 2>/dev/null
	sudo mv /usr/local/bin/wine /usr/local/bin/wine-old 2>/dev/null
	sudo mv /usr/local/bin/wine64 /usr/local/bin/wine-old 2>/dev/null
	sudo mv /usr/local/bin/wineboot /usr/local/bin/wineboot-old 2>/dev/null
	sudo mv /usr/local/bin/winecfg /usr/local/bin/winecfg-old 2>/dev/null
	sudo mv /usr/local/bin/wineserver /usr/local/bin/wineserver-old 2>/dev/null

	# Wine download links from WineHQ: https://dl.winehq.org/wine-builds/
	# LNKA="https://dl.winehq.org/wine-builds/${id}/dists/${dist}/main/binary-amd64/" #amd64-wine links
	LNKA="https://mirrors.tuna.tsinghua.edu.cn/wine-builds/${id}/dists/${dist}/main/binary-amd64/" #amd64-wine links
	DEB_A1="wine-${branch}-amd64_${version}~${dist}${tag}_amd64.deb" #wine64 main bin
	DEB_A2="wine-${branch}_${version}~${dist}${tag}_amd64.deb" #wine64 support files (required for wine64 / can work alongside wine_i386 main bin)
		#DEB_A3="winehq-${branch}_${version}~${dist}${tag}_amd64.deb" #shortcuts & docs
	# LNKB="https://dl.winehq.org/wine-builds/${id}/dists/${dist}/main/binary-i386/" #i386-wine links
	LNKB="https://mirrors.tuna.tsinghua.edu.cn/wine-builds/${id}/dists/${dist}/main/binary-i386/" #i386-wine links
	DEB_B1="wine-${branch}-i386_${version}~${dist}${tag}_i386.deb" #wine_i386 main bin
	DEB_B2="wine-${branch}_${version}~${dist}${tag}_i386.deb" #wine_i386 support files (required for wine_i386 if no wine64 / CONFLICTS WITH wine64 support files)
	#DEB_B3="winehq-${branch}_${version}~${dist}${tag}_i386.deb" #shortcuts & docs

	# Install amd64-wine (64-bit) alongside i386-wine (32-bit)
	echo -e "Downloading wine . . ."
	wget -q ${LNKA}${DEB_A1} 
	#echo ${LNKA}${DEB_A1} 
	wget -q ${LNKA}${DEB_A2} 
	wget -q ${LNKB}${DEB_B1} 
	#wget -q ${LNKB}${DEB_B2} # 32-bits wine
	echo -e "Extracting wine . . ."
	dpkg-deb -x ${DEB_A1} wine-installer
	dpkg-deb -x ${DEB_A2} wine-installer
	dpkg-deb -x ${DEB_B1} wine-installer
	#dpkg-deb -x ${DEB_B2} wine-installer # 32-bits wine
	echo -e "Installing wine . . ."
	mv wine-installer/opt/wine* ~/wine
  1. 链接

安装完成后,执行以下命令创建软链接并添加执行权限:

# Install symlinks
sudo ln -s ~/wine/bin/wine /usr/local/bin/wine
sudo ln -s ~/wine/bin/wine64 /usr/local/bin/wine64
sudo ln -s ~/wine/bin/wineboot /usr/local/bin/wineboot
sudo ln -s ~/wine/bin/winecfg /usr/local/bin/winecfg
sudo ln -s ~/wine/bin/wineserver /usr/local/bin/wineserver
sudo chmod +x /usr/local/bin/wine /usr/local/bin/wine64 /usr/local/bin/wineboot /usr/local/bin/winecfg /usr/local/bin/wineserver
  1. 初始化wine
wine64 wineboot

执行完后应出现~/.wine文件夹

5测试

# ssh连接需要指定显示
export DISPLAY=:0
# BOX64_LOG 打印级别 0-2
# iconv gbk编码转为utf8,解决中文乱码
BOX64_LOG=0 wine64 amd64-windows-program.exe |iconv -f GBK -t UTF-8

网站公告

今日签到

点亮在社区的每一天
去签到