X86_64(优麒麟)系统下构建 i386 文件系统并编译Box86运行wine

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

该实验主要针对定位在 ARM(aarch64)结构机器上借助 Box86 使用 Wine 安装微信过程中的报错进行对比分析。目前在 ARM机器上借助 Box86 使用 wine 安装微信会在最后的启动界面弹出的时候提示 SIGSEGV 的报错并 core dump 。 所以决定在 X86 环境下构建同样的情况进行对比分析。

一、在 X86_64 Linux 系统下搭建 i386 文件系统

在 X86_64 Linux环境下执行下面操作:

$ sudo mkdir -p /srv/chroot/i386
$ sudo apt-get install debootstrap
$ sudo apt install schroot
$ sudo debootstrap --foreign --arch=i386 xenial /srv/chroot/i386 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/

在这里插入图片描述

使用 debootstrap 工具将 i386 文件系统从网站上拉取下来后,使用下面命令将本机的环境包安装到新下载的文件系统中:

$ sudo chroot /srv/chroot/i386/ /debootstrap/debootstrap --second-stage

在这里插入图片描述
此时,基本完成了 i386 文件系统在 X86_64 系统下的构建过程。

二、配置 Schroot 工具使得文件系统切换更方便

1.修改 schroot 配置文件

/etc/schroot/schroot.d/ 目录下添加新文件系统的配置文件 i386

$ sudo vi /etc/schroot/chroot.d/i386

添加以下配置内容:

[i386]
description=Debian strectch armhf
directory=/srv/chroot/i386
#aliases=test
type=directory
root-users=root
root-groups=root
profile=desktop
personality=linux
preserve-environment=true
users=greatwall

并且修改默认的文件系统挂载配置文件 /etc/schroot/default/fstab, 具体内容如下:
原始信息:

# fstab: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/proc           /proc           none    rw,bind         0       0
/sys            /sys            none    rw,bind         0       0
/dev            /dev            none    rw,bind         0       0
/dev/pts        /dev/pts        none    rw,bind         0       0
tmpfs	        /dev/shm        tmpfs   defaults         0       0
/home           /home           none    rw,bind         0       0
/tmp            /tmp            none    rw,bind         0       0

# It may be desirable to have access to /run, especially if you wish
# to run additional services in the chroot.  However, note that this
# may potentially cause undesirable behaviour on upgrades, such as
# killing services on the host.
#/run           /run            none    rw,bind         0       0
#/run/lock      /run/lock       none    rw,bind         0       0
#/dev/shm       /dev/shm        none    rw,bind         0       0
#/run/shm       /run/shm        none    rw,bind         0       0

修改为:

# fstab: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/proc           /proc           proc    defaults         0       0
#/sys            /sys            none    rw,bind         0       0
#/dev            /dev            none    rw,bind         0       0
/dev/pts        /dev/pts        none    rw,bind         0       0
tmpfs	        /dev/shm        tmpfs   defaults         0       0
#/home           /home           none    rw,bind         0       0
/tmp            /tmp            none    rw,bind         0       0

# It may be desirable to have access to /run, especially if you wish
# to run additional services in the chroot.  However, note that this
# may potentially cause undesirable behaviour on upgrades, such as
# killing services on the host.
#/run           /run            none    rw,bind         0       0
#/run/lock      /run/lock       none    rw,bind         0       0
#/dev/shm       /dev/shm        none    rw,bind         0       0
#/run/shm       /run/shm        none    rw,bind         0       0

2.切换文件系统,并完成初始环境安装

使用以下命令进入新搭建的 i386 文件系统中:

$ sudo -i
# schroot -c chroot:i386

在这里插入图片描述

安装中文语言包及环境依赖:

# apt install locales
# dpkg-reconfigure locales

在这里插入图片描述
继续安装字库:

# apt install xfonts-wqy

安装环境依赖库

# apt install git
# apt install wget
# apt install zenity
# apt install cabextract
# apt install libcanberra-gtk-module
# apt install libcanberra-gtk*
# apt install locate

三、编译 Box86

  1. 下载 box86 源代码:
# su ww	//切换到普通用户下
$ mkdir -p /home/ww/box86/source
$ cd /home/ww/box86/source
$ git clone https://gitee.com/beimangshan/box86.git

在这里插入图片描述
2. 使用 cmake 构建编译:
这里官网上有相关描述,
在这里插入图片描述我们使用的是 X86 Linux 环境,所以使用以下命令进行构建编译

$ cd box86
$ mkdir build && cd build
$ cmake .. -DLD80BITS=1 -DNOALIGN=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make && sudo make install

在这里插入图片描述在这里插入图片描述

四、编译 Wine

从 wine 官方网站获取最新稳定版本的 wine 源码包,这里使用的是 wine-5…19 版本。然后解压编译,具体如下:

$ tar -xvf wine-5.19.tar.gz
$ cd wine-5.19/build

这里需要注意,编译 wine 所依赖的环境库会很多,所以都需要事前安装好,具体如下:

# 修改环境源:
$ sudo apt-get install apt-transport-https
$ sudo vi /etc/apt/source.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install aptitude
$ sudo apt-get install  lib32-nvidia-utils 
$ sudo apt-get install libxnvctrl-dev
$ sudo apt-get install mingw-w64-i686-dev
$ sudo apt-get install libxcursor-dev
$ sudo apt-get install libxi-dev
$ sudo apt-get install libxxf86vm-dev
$ sudo apt-get install libxrandr-dev
$ sudo apt-get install llibxfixes-dev
$ sudo apt-get install libxinerama-dev
$ sudo apt-get install libxcomposite-dev
$ sudo apt-get install libosmesa6-dev
$ sudo apt-get install beignet-dev
$ sudo apt-get install libpcap0.8-dev
$ sudo apt-get install /testing 1.004-1 all
$ sudo apt-get install libbusiness-isbn-perl
$ sudo apt-get install libsane-dev
$ sudo apt-get install libusb-libusb-perl
$ sudo apt-get install libusb-ocaml-dev
$ sudo apt-get install libv4l-dev
$ sudo apt-get install libgphoto2-port12
$ sudo apt-get install libgphoto2-dev
$ sudo apt-get install liblcms2-utils
$ sudo apt-get install libpulse-ocaml-dev
$ sudo apt-get install libpulse-dev
$ sudo apt-get install librust-gstreamer-sys-dev
$ sudo apt-get install libqt5gstreamer-1.0-0
$ sudo apt-get install libgudev1.0-cil-dev
$ sudo apt-get install libsdl2-net-dev
$ sudo apt-get install libfaudio-dev
$ sudo apt-get install libcapi20-dev
$ sudo apt-get install libcupsfilters-dev
$ sudo apt-get install libcups2-dev
$ sudo apt-get install libfcft-dev
$ sudo apt-get install libxft-dev
$ sudo apt-get install libgsm1-dev
$ sudo apt-get install libkrb5-dev
$ sudo apt-get install libtiff5-dev
$ sudo apt-get install libmpg123-dev
$ sudo apt-get install libopenal-dev
$ sudo apt-get install libvulkan-dev
$ sudo apt-get install libvkd3d-utils1
$ sudo apt-get install libldap2-dev
$ sudo apt-get install libldap-ocaml-dev
$ sudo apt-get install binutils-mingw-w64-i686
$ sudo apt-get install libhbalinux-dev
$ sudo apt-get install liblcms2-dev
$ sudo apt-get install libvkd3d-dev
$ sudo apt-get install vkd3d-demos

编译构建wine:

$ ../configure --prefix=/usr/local/wine-i386-5.19/
$ make && sudo make install

在 i386 文件系统中配置环境后,可以正常使用 wine,如下:

$ export PATH=$PATH:/usr/local/wine-i386-5.19/bin/
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/wine-i386-5.19/lib/
$ export DISPLAY=:0

运行结果

将环境搭建好之后,执行命令测试是否可以正常安装微信。

$ box86 wine winecfg

执行该操作能够正常显示wine环境设置菜单,表示基本环境已经配置好了。

$ box86 wine WeChatSetup.exe

在这里插入图片描述
在这里插入图片描述
确实是能够正常安装微信,但是中文字符有乱码的现象。不过安装完成后却运行不了,显示如下现象:
在这里插入图片描述在这里插入图片描述

总结

实验最终,还是未能正常运行启动微信,并且发现连一直在ARM环境下能够正常启动的红警(rad2.exe)也不能正常运行起来。最后判断应该是在X86环境下编译构建的box86并不能良好运行。所以对于ARM下不能正常安装并且运行微信(box86+wine)的问题还是没有得到解决,只能另找方法了。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
经常服务器重装后机房老是忘记给装IIS了没办法得自已装,下载这个 i386 文件夹解压后就可以自已安产装IIS等组件了. IIS5.1安装说明: 一: IIS 5.1版本适用于Windows XP_SP1、XP_SP2、XP_SP3 二: ISS 5.1安装步骤(各版本IIS都可以按照该方法安装,以IIS5.1安装至Windows xp_SP3为例) 1.依次打开 左下角的"开始"菜单----控制面板----选择"添加/删除程序",打开"添加/删除程序"窗体 ----点击窗体左侧"添加/删除Windows组件"(A) 2.解压IIS 压缩包,在打开的"Windows组件向导"窗体中,将"Internet 信息服务(IIS)"前面 小方框钩选上----点击下一步-----在弹出的"插入磁盘"窗体中,点击"确定"按扭------ 将解压后的IIS 5.1路径(如D:\飞翔下载\IIS\iis5.1xp)复制到"文件复制来源"输入框中, 如再遇到需要"插入光盘"之类的提示,继续粘贴该IIS路径即可,直到完成安装,当出现安装 完成提示按扭时,点击"完成"按扭关团向导,即可完成安装. 三: 问题及解决方案 1.IIS安装过程中,如果出现某些文件无法复制,则可能是该IIS不适合你的系统,请换一个 对应于系统的IIS,IIS版本说明如下. Windows XP_SP1 ,XP_SP2 ,XP_SP3 系统 适用 IIS5.1版本 Windows 2000 系统 适用 IIS5.0 版本 Windows server 2003系统 适用 IIS 6.0 版本 Windows Server 2008 ,Vista 系统 适用 IIS 7.0 版本 2.能完成IIS的安装即无法正常使用等问题,部分原因如下 可能与迅雷等网络工具TCP 端口产生冲突,打开控制面板----双击"性能和维护"打开--- "管理工具"----"Internet 信息服务"---"网站"---"选择"默认网站"右击---选择"属性" 菜单---在默认网站属性窗体分页框内选择"网站"标题---"TCP 端口" ----设为80即可完 成(IIS 默认80端口.如果使用其它端口,如8080,测试时需http://localhost:8080). 3.IIS 80端口被占用的解决方法 cmd 命令窗口----输入netstat -abn ->c:/port80.txt然后到c盘port80.txt文件中找到 占用80端口的程序pid,记下pid.打开任务管理器,点击"查看"/选择列,勾选"PID(进程标识 符)",然后单击"进程"标签,找到80端口对应的pid,就可以看到是哪个程序占用的了,更改 这个程序的port,再重启这个程序,使更改生效.再次启动iis.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值