Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5eb7bcd358 | |||
| 5818d109b0 | |||
| 01adbc9e20 | |||
| 35246e6046 | |||
| d84191d17e | |||
| 950eca478c | |||
| 1bf5eab4e0 | |||
| 3966cd0b70 | |||
| c4923fa5b9 | |||
| d369503284 | |||
| e26bf4e30f | |||
| bdb53267ee | |||
| dae29fd54e | |||
| 40c52bd1a8 | |||
| 47ebb5ca29 | |||
| e28dc5927e | |||
| 1825136eac | |||
| 9cce5771e5 | |||
| 20c2cc9949 | |||
| c84ca04f96 | |||
| 6f039e7355 | |||
| 44514dfc78 | |||
| 840fb73ba8 | |||
| 4485ff3b74 | |||
| 808cbfd228 | |||
| 4ecd03a520 | |||
| 37a8742f21 | |||
| 1006f920b0 | |||
| 3aae2d7221 | |||
| 5607f176d1 | |||
| 193be8e4de | |||
| 7dab0f8592 | |||
| c790f0fbfe | |||
| 274ef4003b | |||
| 2925576ac1 | |||
| feaf6326da | |||
| f8fa1f2a9f | |||
| 75fc007863 | |||
| 09aeaba3c8 | |||
| 250d4280ec | |||
| 992fe50266 | |||
| 21ef782ebb | |||
| 320b07202d | |||
| b7b0b360c3 | |||
| efd0c591dc | |||
| fec8b56f90 | |||
| 52d8d006db | |||
| ef3f504d67 | |||
| ece7607da0 | |||
| 80be3ff03e | |||
| 8ce51e8161 | |||
| da3991b470 | |||
| 79924d99ea | |||
| 28c712ceae | |||
| 0cac56de72 | |||
| 2d829f4243 | |||
| 9c3707b419 | |||
| 3b8e8566bc | |||
| 37082fe085 | |||
| 15c28a4820 | |||
| 7e4620f4c3 | |||
| b0e62a888c | |||
| 586b6efb59 | |||
| c82897fc7b | |||
| b6e510eb26 | |||
| ca5edef486 | |||
| 44c7d4fe3b | |||
| 1092c2ac2c | |||
| a0bc9059de | |||
| c0781b4f3a | |||
| de06de7637 | |||
| e0b2aca8ef | |||
| ff41344e97 | |||
| 0ec98cffcb | |||
| d27c31ae6f | |||
| 5e325a873e | |||
| 71917c5451 | |||
| 9cff5358fe | |||
| c8786b59bf | |||
| c46aa8fbea | |||
| 4f29c5debc | |||
| d9c52d4aa1 | |||
| c77a9b3290 | |||
| fcdd8e7622 | |||
| 9ce7c8a7d0 | |||
| eab5e11e8b | |||
| d57d53a659 | |||
| 78de66961e | |||
| b7b798d491 | |||
| 8351dc2838 | |||
| e0717e4fc5 | |||
| 99539c58f7 | |||
| 88bec61044 | |||
| 05549090fe | |||
| dc3477eae2 | |||
| 59064fb1c6 | |||
| 4669c756c4 | |||
| 0ae06f118c | |||
| 0c9da25093 | |||
| a4e8b17ac5 | |||
| 800c523935 | |||
| ab7a5c18c5 | |||
| c34708cbc5 | |||
| 0231e1d461 | |||
| 1ba1ee6b75 | |||
| dc7a301a45 | |||
| f6efb8e448 | |||
| fd410549c3 | |||
| 269c800341 | |||
| 1390ca65aa | |||
| 194f086b58 |
29
.github/workflows/auto-building-rpm.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: Auto Building Wine Runner(rpm)
|
||||||
|
run-name: ${{ github.actor }} Auto Building Wine Runner(rpm) 🚀
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
Explore-GitHub-Actions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Building RPM
|
||||||
|
env:
|
||||||
|
GUSER: ${{ secrets.GUSER }}
|
||||||
|
PASSWORD: ${{ secrets.PASSWORD }}
|
||||||
|
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||||
|
run: |
|
||||||
|
# 配置环境
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake rpm -y
|
||||||
|
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
||||||
|
cd deep-wine-runner
|
||||||
|
make package-rpm
|
||||||
|
mv spark-deepin-wine-runner*.rpm /home/runner/spark-deepin-wine-runner.rpm
|
||||||
|
- name: upload result
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: spark-deepin-wine-runner.rpm
|
||||||
|
path: /home/runner/spark-deepin-wine-runner.rpm
|
||||||
|
|
||||||
|
|
||||||
6
.github/workflows/auto-building.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
name: Auto Building Wine Runner
|
name: Auto Building Wine Runner(deb)
|
||||||
run-name: ${{ github.actor }} Auto Building Wine Runner 🚀
|
run-name: ${{ github.actor }} Auto Building Wine Runner(deb) 🚀
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake -y
|
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake -y
|
||||||
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
||||||
cd deep-wine-runner
|
cd deep-wine-runner
|
||||||
make build
|
make package-deb
|
||||||
mv spark-deepin-wine-runner.deb ~
|
mv spark-deepin-wine-runner.deb ~
|
||||||
mv spark-deepin-wine-runner-ace.deb ~
|
mv spark-deepin-wine-runner-ace.deb ~
|
||||||
- name: upload result
|
- name: upload result
|
||||||
|
|||||||
@@ -37,13 +37,13 @@ jobs:
|
|||||||
## 获取 Wine 运行器安装包
|
## 获取 Wine 运行器安装包
|
||||||
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
|
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
|
||||||
cd deep-wine-runner
|
cd deep-wine-runner
|
||||||
make build
|
make package-deb
|
||||||
cd ..
|
cd ..
|
||||||
url=`python3 deep-wine-runner/off-line-shell/GetNewestDebUrl.py`
|
url=`python3 deep-wine-runner/off-line-shell/GetNewestDebUrl.py`
|
||||||
#wget $url
|
#wget $url
|
||||||
mv deep-wine-runner/spark-deepin-wine-runner.deb debian/tmp/wine-runner.deb
|
mv deep-wine-runner/spark-deepin-wine-runner.deb debian/tmp/wine-runner.deb
|
||||||
## 安装
|
## 安装
|
||||||
sudo chroot debian apt install locales /tmp/wine-runner.deb winehq-devel xfce4-terminal -y
|
sudo chroot debian apt install locales /tmp/wine-runner.deb winehq-devel fcitx xfce4-terminal -y
|
||||||
# 构建软件包
|
# 构建软件包
|
||||||
mkdir package/opt -p
|
mkdir package/opt -p
|
||||||
mkdir package/runner -p
|
mkdir package/runner -p
|
||||||
|
|||||||
5
.gitignore
vendored
@@ -1 +1,6 @@
|
|||||||
*.user*
|
*.user*
|
||||||
|
__pycache__
|
||||||
|
*.deb
|
||||||
|
VM-source/Makefile
|
||||||
|
*.rpm
|
||||||
|
*.pro.user
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ def InstallSparkWine(wine):
|
|||||||
else:
|
else:
|
||||||
os.system(f"sudo apt install \"{wine}\" -y")
|
os.system(f"sudo apt install \"{wine}\" -y")
|
||||||
|
|
||||||
|
def InstallWineWithYay(wine):
|
||||||
|
if os.system("which yay > /dev/null"):
|
||||||
|
os.system("sudo pacman -S yay --noconfirm")
|
||||||
|
os.system(f"yay -S \"{wine}\"")
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# 程序功能
|
# 程序功能
|
||||||
###################
|
###################
|
||||||
@@ -53,6 +58,40 @@ m m "
|
|||||||
print("请保证你能有 root 权限以便安装")
|
print("请保证你能有 root 权限以便安装")
|
||||||
print("如果有请按回车,否则按 [Ctrl+C] 退出", end=' ')
|
print("如果有请按回车,否则按 [Ctrl+C] 退出", end=' ')
|
||||||
input()
|
input()
|
||||||
|
# 如果是 Fedora,则
|
||||||
|
if os.path.exists("/etc/fedora-release"):
|
||||||
|
os.system("sudo pacman -Syu")
|
||||||
|
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||||
|
choose = input().upper()
|
||||||
|
if not choose == "N":
|
||||||
|
os.system("sudo yum install wine")
|
||||||
|
print("全部完成!")
|
||||||
|
exit()
|
||||||
|
# 判断系统版本,如果是 Arch Linux,则另外处理
|
||||||
|
if os.path.exists("/etc/arch-release"):
|
||||||
|
os.system("sudo pacman -Syu")
|
||||||
|
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||||
|
choose = input().upper()
|
||||||
|
if not choose == "N":
|
||||||
|
os.system("sudo pacman -S wine")
|
||||||
|
if os.system("which deepin-wine5-stable > /dev/null"):
|
||||||
|
print("请问是否要安装 deepin-wine5-stable?[Y/N]", end=' ')
|
||||||
|
choose = input().upper()
|
||||||
|
if not choose == "N":
|
||||||
|
InstallWineWithYay("deepin-wine5-stable")
|
||||||
|
if os.system("which deepin-wine6-stable > /dev/null"):
|
||||||
|
print("请问是否要安装 deepin-wine6-stable?[Y/N]", end=' ')
|
||||||
|
choose = input().upper()
|
||||||
|
if not choose == "N":
|
||||||
|
InstallWineWithYay("deepin-wine6-stable")
|
||||||
|
if os.system("which deepin-wine8-stable > /dev/null"):
|
||||||
|
print("请问是否要安装 deepin-wine8-stable?[Y/N]", end=' ')
|
||||||
|
choose = input().upper()
|
||||||
|
if not choose == "N":
|
||||||
|
InstallWineWithYay("deepin-wine8-stable")
|
||||||
|
print("全部完成!")
|
||||||
|
exit()
|
||||||
|
|
||||||
os.system("sudo apt update")
|
os.system("sudo apt update")
|
||||||
print("请问是否要更新操作系统?[Y/N]", end=' ')
|
print("请问是否要更新操作系统?[Y/N]", end=' ')
|
||||||
choose = input().upper()
|
choose = input().upper()
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import getpass
|
|||||||
import datetime
|
import datetime
|
||||||
import traceback
|
import traceback
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import webbrowser
|
||||||
import configparser
|
import configparser
|
||||||
import PyQt5.QtGui as QtGui
|
import PyQt5.QtGui as QtGui
|
||||||
import PyQt5.QtCore as QtCore
|
import PyQt5.QtCore as QtCore
|
||||||
@@ -49,9 +50,10 @@ defultProgramList = {
|
|||||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||||
try:
|
try:
|
||||||
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
|
|
||||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||||
|
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
|
||||||
except:
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
setting = defultProgramList
|
setting = defultProgramList
|
||||||
|
|
||||||
def SetFont(app):
|
def SetFont(app):
|
||||||
@@ -100,6 +102,78 @@ def FileToBase64(filePath):
|
|||||||
def SaveLogWindow():
|
def SaveLogWindow():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def OpenUrl(url):
|
||||||
|
print(url.url())
|
||||||
|
# 判断是否可以使用小窗打开
|
||||||
|
webbrowser.open_new_tab(url.url())
|
||||||
|
|
||||||
|
def Appreciate():
|
||||||
|
global messageAppreciate
|
||||||
|
messageAppreciate = QtWidgets.QTextBrowser()
|
||||||
|
messageAppreciate.setHtml(f"""<h3>请作者喝杯茶</h3>
|
||||||
|
<p>如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶 </p>
|
||||||
|
<p>
|
||||||
|
<img src="{programPath}/Icon/QR/Wechat.png" width="250" />
|
||||||
|
<img src="{programPath}/Icon/QR/Alipay.jpg" width="250" />
|
||||||
|
<img src="{programPath}/Icon/QR/QQ.png" width="250" >
|
||||||
|
</p>
|
||||||
|
<hr/>
|
||||||
|
<h3>广告</h3>
|
||||||
|
<p>支付宝官方活动,扫描获得支付红包!</p>
|
||||||
|
<p><img src="{programPath}/Icon/QR/advertisement0.jpg" width="250" ></p>""")
|
||||||
|
messageAppreciate.resize(int(messageAppreciate.frameGeometry().width() * 1.5), int(messageAppreciate.frameGeometry().height() * 1.2))
|
||||||
|
messageAppreciate.setWindowTitle("赞赏作者/请作者喝杯茶")
|
||||||
|
messageAppreciate.show()
|
||||||
|
|
||||||
|
# 显示“关于这个程序”窗口
|
||||||
|
def about_this_program()->"显示“关于这个程序”窗口":
|
||||||
|
global about
|
||||||
|
global title
|
||||||
|
global iconPath
|
||||||
|
global clickIconTime
|
||||||
|
clickIconTime = 0
|
||||||
|
QT.message = QtWidgets.QMainWindow()
|
||||||
|
QT.message.setWindowIcon(QtGui.QIcon(iconPath))
|
||||||
|
messageWidget = QtWidgets.QWidget()
|
||||||
|
messageWidget.setObjectName("messageWidget")
|
||||||
|
messageWidget.setStyleSheet(f"QWidget#messageWidget {{background: url({programPath}/Icon/Program/about-background.png) no-repeat;background-position: left bottom;}}")
|
||||||
|
QT.message.setWindowTitle(f"关于 {title}")
|
||||||
|
messageLayout = QtWidgets.QGridLayout()
|
||||||
|
iconShow = QtWidgets.QLabel(f"<a href='https://www.gfdgdxi.top'><img width=256 src='{iconPath}'></a>")
|
||||||
|
def ChangeIcon():
|
||||||
|
global clickIconTime
|
||||||
|
if clickIconTime >= 0:
|
||||||
|
clickIconTime = clickIconTime + 1
|
||||||
|
if clickIconTime > 0:
|
||||||
|
clickIconTime = -1
|
||||||
|
for k in ["", "Function", "Program"]:
|
||||||
|
try:
|
||||||
|
for i in os.listdir(f"{programPath}/Icon/{k}"):
|
||||||
|
if i[-4:] == ".svg" or i[-4:] == ".png":
|
||||||
|
iconPathList.append(f"{programPath}/Icon/{k}/{i}")
|
||||||
|
except:
|
||||||
|
traceback.print_exec()
|
||||||
|
randomNumber = random.randint(0, len(iconPathList) - 1)
|
||||||
|
iconShow.setText(f"<a href='https://www.gfdgdxi.top'><img width=256 src='{iconPathList[randomNumber]}'></a><p align='center'>{randomNumber + 1}/{len(iconPathList)}</p>")
|
||||||
|
iconShow.linkActivated.connect(ChangeIcon)
|
||||||
|
messageLayout.addWidget(iconShow, 0, 0, 1, 1, QtCore.Qt.AlignTop)
|
||||||
|
aboutInfo = QtWidgets.QTextBrowser(messageWidget)
|
||||||
|
aboutInfo.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||||
|
#aboutInfo.copyAvailable.connect(lambda: print("b"))
|
||||||
|
aboutInfo.anchorClicked.connect(OpenUrl)
|
||||||
|
aboutInfo.setOpenLinks(False)
|
||||||
|
aboutInfo.setHtml(about)
|
||||||
|
aboutInfo.setOpenExternalLinks(False)
|
||||||
|
messageLayout.addWidget(aboutInfo, 0, 1, 1, 1)
|
||||||
|
ok = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "确定"))
|
||||||
|
ok.clicked.connect(QT.message.close)
|
||||||
|
messageLayout.addWidget(ok, 1, 1, 1, 1, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
|
||||||
|
messageWidget.setLayout(messageLayout)
|
||||||
|
|
||||||
|
QT.message.setCentralWidget(messageWidget)
|
||||||
|
QT.message.resize(int(messageWidget.frameGeometry().width() * 1.5), int(messageWidget.frameGeometry().height() * 1.5))
|
||||||
|
QT.message.show()
|
||||||
|
|
||||||
class SaveLogReport():
|
class SaveLogReport():
|
||||||
userName = getpass.getuser()
|
userName = getpass.getuser()
|
||||||
time = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
|
time = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 120 KiB |
BIN
Icon/QR/Alipay.jpg
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
Icon/QR/QQ.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Icon/QR/Wechat.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
Icon/QR/advertisement0.jpg
Normal file
|
After Width: | Height: | Size: 338 KiB |
@@ -21,13 +21,13 @@ if [[ $? == 0 ]]; then
|
|||||||
fi
|
fi
|
||||||
echo 使用国内源
|
echo 使用国内源
|
||||||
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||||
sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list"
|
sudo bash -c "echo deb http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list"
|
||||||
wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
wget -qO- http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
||||||
echo "adding key..."
|
echo "adding key..."
|
||||||
installBox=box86-generic-arm
|
installBox=box86-generic-arm
|
||||||
if [[ $PCArch == "arm64" ]]; then
|
if [[ $PCArch == "arm64" ]]; then
|
||||||
sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/debian ./ > /etc/apt/sources.list.d/box64.list"
|
sudo bash -c "echo deb http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs/debian ./ > /etc/apt/sources.list.d/box64.list"
|
||||||
wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
wget -qO- http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
||||||
installBox="box86-generic-arm box64-generic-arm"
|
installBox="box86-generic-arm box64-generic-arm"
|
||||||
sudo dpkg --add-architecture armhf
|
sudo dpkg --add-architecture armhf
|
||||||
fi
|
fi
|
||||||
@@ -40,8 +40,8 @@ echo 按回车键后将会自动安装包名为 box86-generic-arm、box64-generi
|
|||||||
echo 其他特殊版本及其包名可见如下链接(如适用于 rk3399 的版本):
|
echo 其他特殊版本及其包名可见如下链接(如适用于 rk3399 的版本):
|
||||||
echo " - Box64:https://github.com/ryanfortner/box64-debs/"
|
echo " - Box64:https://github.com/ryanfortner/box64-debs/"
|
||||||
echo " - Box86:https://github.com/ryanfortner/box86-debs/"
|
echo " - Box86:https://github.com/ryanfortner/box86-debs/"
|
||||||
echo " - Box64(国内镜像):http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs"
|
echo " - Box64(国内镜像):http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs"
|
||||||
echo " - Box64(国内镜像):http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs"
|
echo " - Box64(国内镜像):http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs"
|
||||||
read
|
read
|
||||||
sudo apt install -y $installBox
|
sudo apt install -y $installBox
|
||||||
echo 安装完成!按回车键退出
|
echo 安装完成!按回车键退出
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo lat只能在loongarch架构安装
|
echo lat只能在loongarch架构安装
|
||||||
sudo apt update
|
# 检查是否有 aptss
|
||||||
sudo apt install lat
|
aptPath=apt
|
||||||
|
if [[ -f /usr/bin/aptss ]]; then
|
||||||
|
aptPath=aptss
|
||||||
|
fi
|
||||||
|
# 判断新旧世界
|
||||||
|
if [[ `dpkg --print-architecture` == "loong64" ]]; then
|
||||||
|
# 新世界
|
||||||
|
sudo $aptPath update
|
||||||
|
sudo $aptPath install lat lat-runtime-i386 lat-runtime-amd64
|
||||||
|
echo 按回车键退出
|
||||||
|
read
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# 旧世界
|
||||||
|
sudo $aptPath update
|
||||||
|
sudo $aptPath install lat i386-runtime-base i386-runtime-extra
|
||||||
echo 按回车键退出
|
echo 按回车键退出
|
||||||
read
|
read
|
||||||
|
exit
|
||||||
@@ -14,7 +14,10 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import updatekiller
|
import updatekiller
|
||||||
import traceback
|
import traceback
|
||||||
import pyquery
|
try:
|
||||||
|
import pyquery
|
||||||
|
except:
|
||||||
|
os.system("python3 -m pip install --upgrade pyquery --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple")
|
||||||
|
|
||||||
if "--help" in sys.argv:
|
if "--help" in sys.argv:
|
||||||
print("作者:gfdgd xi")
|
print("作者:gfdgd xi")
|
||||||
|
|||||||
@@ -6,6 +6,22 @@ if [[ $? == 0 ]]; then
|
|||||||
read
|
read
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
# 判断是不是 Fedora
|
||||||
|
if [[ -f /etc/fedora-release ]]; then
|
||||||
|
sudo yum update -y
|
||||||
|
sudo yum install qemu-user qemu-user-static -y
|
||||||
|
echo 安装完成,按回车键后退出
|
||||||
|
read
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# 判断是不是 Arch Linux
|
||||||
|
if [[ -f /etc/arch-release ]]; then
|
||||||
|
sudo pacman -Syu
|
||||||
|
sudo pacman -S qemu-user qemu-user-static --noconfirm
|
||||||
|
echo 安装完成,按回车键后退出
|
||||||
|
read
|
||||||
|
exit
|
||||||
|
fi
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install binfmt-support qemu-user qemu-user-static -y
|
sudo apt install binfmt-support qemu-user qemu-user-static -y
|
||||||
echo 安装完成,按回车键后退出
|
echo 安装完成,按回车键后退出
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=amd64
|
arch=amd64
|
||||||
libPath=/usr/lib/x86_64-linux-gnu/
|
libPath=/usr/lib/x86_64-linux-gnu/
|
||||||
version=1.0.1
|
version=1.0.1
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=arm64
|
arch=arm64
|
||||||
libPath=/usr/lib/aarch64-linux-gnu
|
libPath=/usr/lib/aarch64-linux-gnu
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=armhf
|
arch=armhf
|
||||||
libPath=/usr/lib/arm-linux-gnueabihf/
|
libPath=/usr/lib/arm-linux-gnueabihf/
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=i386
|
arch=i386
|
||||||
libPath=/usr/lib/i386-linux-gnu/
|
libPath=/usr/lib/i386-linux-gnu/
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=mips64el
|
arch=mips64el
|
||||||
libPath=/usr/lib/mips64el-linux-gnuabi64
|
libPath=/usr/lib/mips64el-linux-gnuabi64
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=ppc64el
|
arch=ppc64el
|
||||||
libPath=/usr/lib/powerpc64le-linux-gnu/
|
libPath=/usr/lib/powerpc64le-linux-gnu/
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=riscv64
|
arch=riscv64
|
||||||
libPath=/usr/lib/riscv64-linux-gnu/
|
libPath=/usr/lib/riscv64-linux-gnu/
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
arch=s390x
|
arch=s390x
|
||||||
libPath=/usr/lib/s390x-linux-gnu/
|
libPath=/usr/lib/s390x-linux-gnu/
|
||||||
version=1.0.0
|
version=1.0.0
|
||||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
url="https://sourceforge.net/projects/deep-wine-runner-wine-download/files/${version}-${arch}-runtime-for-qemu/${arch}-runtime-for-qemu_${version}_all.deb/download"
|
||||||
fileName=`basename $url`
|
fileName=`basename $url`
|
||||||
|
fileName=`basename $filename`
|
||||||
|
|
||||||
if [[ -d $libPath ]]; then
|
if [[ -d $libPath ]]; then
|
||||||
echo "已安装 $arch 运行库,按回车键退出"
|
echo "已安装 $arch 运行库,按回车键退出"
|
||||||
|
|||||||
37
Makefile
@@ -1,14 +1,40 @@
|
|||||||
build:
|
build:
|
||||||
make package -j$(nproc)
|
make package-deb -j$(nproc)
|
||||||
|
|
||||||
|
replace:
|
||||||
|
rm Icon/Program/*
|
||||||
|
rm Icon/*.svg
|
||||||
|
rm Icon/doge.png
|
||||||
|
echo "[[], []]" > IconList.json
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
python3 RemovePycacheFile.py
|
python3 RemovePycacheFile.py
|
||||||
rm *.deb -fv
|
rm *.deb -fv
|
||||||
cd VM-source ; make clean
|
rm *.pkg.tar* -fv
|
||||||
|
cd VM-source ; qmake . ; make clean
|
||||||
rm VM-source/VirtualMachine -rfv
|
rm VM-source/VirtualMachine -rfv
|
||||||
rm -rfv VM-source/.qmake.stash
|
rm -rfv VM-source/.qmake.stash
|
||||||
|
|
||||||
package:
|
#package-rpm:
|
||||||
|
|
||||||
|
package-rpm:
|
||||||
|
sudo rm -rf /root/rpmbuild/
|
||||||
|
sudo rm -rf /tmp/deep-wine-runner-builder-source
|
||||||
|
mkdir /tmp/deep-wine-runner-builder-source -pv
|
||||||
|
cp * /tmp/deep-wine-runner-builder-source -rv
|
||||||
|
cp rpm/spark-deepin-wine-runner.spec /tmp/spark-deepin-wine-runner.spec
|
||||||
|
bash builddeb/ChangeDebVersion.sh
|
||||||
|
sudo rpmbuild -bb /tmp/spark-deepin-wine-runner.spec --target noarch
|
||||||
|
sudo bash -c 'cp /root/rpmbuild/RPMS/noarch/spark-deepin-wine-runner-*.rpm .'
|
||||||
|
sudo rm -rf /root/rpmbuild/
|
||||||
|
sudo rm -rf /tmp/deep-wine-runner-builder-source
|
||||||
|
|
||||||
|
package-pkg:
|
||||||
|
#sudo debtap -u
|
||||||
|
sudo debtap -Q spark-deepin-wine-runner.deb
|
||||||
|
sudo debtap -Q spark-deepin-wine-runner-ace.deb
|
||||||
|
|
||||||
|
package-deb:
|
||||||
#cd VM-source && qmake
|
#cd VM-source && qmake
|
||||||
#cd VM-source && make
|
#cd VM-source && make
|
||||||
#cd wine && make
|
#cd wine && make
|
||||||
@@ -16,7 +42,6 @@ package:
|
|||||||
mkdir deb/opt/apps/deepin-wine-runner/LANG -pv
|
mkdir deb/opt/apps/deepin-wine-runner/LANG -pv
|
||||||
cp -rv helperset deb/opt/apps/deepin-wine-runner/
|
cp -rv helperset deb/opt/apps/deepin-wine-runner/
|
||||||
#cp -rv VM-source/VirtualMachine VM
|
#cp -rv VM-source/VirtualMachine VM
|
||||||
|
|
||||||
cp -rv VM-source/deepin-wine-runner.svg VM
|
cp -rv VM-source/deepin-wine-runner.svg VM
|
||||||
cp -rv VM-source/Windows7X64Auto.iso VM
|
cp -rv VM-source/Windows7X64Auto.iso VM
|
||||||
cp -rv VM-source/Windows7X86Auto.iso VM
|
cp -rv VM-source/Windows7X86Auto.iso VM
|
||||||
@@ -96,6 +121,7 @@ package:
|
|||||||
cp -rv dxvk.7z deb/opt/apps/deepin-wine-runner
|
cp -rv dxvk.7z deb/opt/apps/deepin-wine-runner
|
||||||
cp -rv InstallFont.py deb/opt/apps/deepin-wine-runner
|
cp -rv InstallFont.py deb/opt/apps/deepin-wine-runner
|
||||||
cp -rv CheckDLL deb/opt/apps/deepin-wine-runner
|
cp -rv CheckDLL deb/opt/apps/deepin-wine-runner
|
||||||
|
cp -rv InstallLat.sh deb/opt/apps/deepin-wine-runner
|
||||||
#cp -rv exagear.7z deb/opt/apps/deepin-wine-runner
|
#cp -rv exagear.7z deb/opt/apps/deepin-wine-runner
|
||||||
cp -rv dlls-arm.7z deb/opt/apps/deepin-wine-runner
|
cp -rv dlls-arm.7z deb/opt/apps/deepin-wine-runner
|
||||||
cp -rv deepin.list deb/opt/apps/deepin-wine-runner
|
cp -rv deepin.list deb/opt/apps/deepin-wine-runner
|
||||||
@@ -152,7 +178,8 @@ package:
|
|||||||
ln -s /opt/apps/deepin-wine-runner/InstallVisualCPlusPlus.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-vscppruntime-installer
|
ln -s /opt/apps/deepin-wine-runner/InstallVisualCPlusPlus.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-vscppruntime-installer
|
||||||
ln -s /opt/apps/deepin-wine-runner/deepin-wine-venturi-setter.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-venturi-setter
|
ln -s /opt/apps/deepin-wine-runner/deepin-wine-venturi-setter.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-venturi-setter
|
||||||
bash builddeb/ChangeDebVersion.sh
|
bash builddeb/ChangeDebVersion.sh
|
||||||
sudo chown -R root:root /tmp/spark-deepin-wine-runner-builder
|
chmod -Rv 777 /tmp/spark-deepin-wine-runner-builder/opt
|
||||||
|
chmod -Rv 777 /tmp/spark-deepin-wine-runner-builder/usr
|
||||||
|
|
||||||
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
|
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
|
||||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
||||||
|
|||||||
@@ -36,3 +36,21 @@ if terminal == "":
|
|||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
QtWidgets.QMessageBox.critical(None, "错误", "无法识别到以下的任意一个终端\n" + " ".join(terminalList))
|
QtWidgets.QMessageBox.critical(None, "错误", "无法识别到以下的任意一个终端\n" + " ".join(terminalList))
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
|
# 转包
|
||||||
|
class TurnDeb():
|
||||||
|
debPath = ""
|
||||||
|
def __init__(self, debPath):
|
||||||
|
self.debPath = debPath
|
||||||
|
|
||||||
|
def ToRpm(self):
|
||||||
|
if os.system("which alien"):
|
||||||
|
raise NameError("无法找到 alien 命令,请先安装 alien")
|
||||||
|
if os.system("which fakeroot"):
|
||||||
|
raise NameError("无法找到 fakeroot 命令,请先安装 fakeroot")
|
||||||
|
os.system(f"fakeroot alien -r '{self.debPath}' -c")
|
||||||
|
|
||||||
|
def ToTarZst(self):
|
||||||
|
if os.system("debtap"):
|
||||||
|
raise NameError("无法找到 debtap 命令,请先安装 debtap")
|
||||||
|
os.system(f"debtap -Q '{self.debPath}'")
|
||||||
@@ -1,4 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 如果是 Fedora
|
||||||
|
if [[-f /etc/fedora-release ]]; then
|
||||||
|
sudo yum update -y
|
||||||
|
sudo yum install qemu
|
||||||
|
echo 安装完成!按回车键退出
|
||||||
|
read
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# 如果是 Arch Linux
|
||||||
|
if [[-f /etc/arch-release ]]; then
|
||||||
|
sudo pacman -Syu
|
||||||
|
sudo pacman -S qemu-user qemu-user-static qemu-full --noconfirm
|
||||||
|
echo 安装完成!按回车键退出
|
||||||
|
read
|
||||||
|
exit
|
||||||
|
fi
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
|
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
|
||||||
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
|
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
|
||||||
|
|||||||
165
README.md
@@ -1,5 +1,5 @@
|
|||||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||||
<h1 align="center">Wine 运行器 3.6.0</h1>
|
<h1 align="center">Wine 运行器 3.8.1</h1>
|
||||||
<hr>
|
<hr>
|
||||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
|
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
|
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
|
||||||
@@ -10,6 +10,9 @@ Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程
|
|||||||
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
||||||
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
||||||
|
|
||||||
|
注:
|
||||||
|
**在使用运行器时不要随便动 .deepinwine 下的容器,否则会导致安装的 wine 应用无法正常打开**
|
||||||
|
**除非你有把握不会损坏容器**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -18,12 +21,32 @@ Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程
|
|||||||
|
|
||||||
打包器视频教程:https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
打包器视频教程:https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
||||||
Wine 运行器 QQ 交流群:762985460
|
Wine 运行器 QQ 交流群:762985460
|
||||||
Wine运行器 QQ 频道:https://pd.qq.com/s/edqkgeydx
|
|
||||||
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||||
|
|
||||||
|
### Debian sid 依赖
|
||||||
|
https://gfdgdxi.lanzouw.com/b0plly5cj
|
||||||
|
密码:b346
|
||||||
|
|
||||||
|
### 如何在 deepin23 for loong64 安装
|
||||||
|
可以在 星火应用商店 for loong64 安装,也可以手动补充依赖进行安装
|
||||||
|
依赖包地址(二选一):https://gitee.com/gfdgd-xi/deep-wine-runner-deepin23-loong64-depends
|
||||||
|
或 https://gfdgdxi.lanzouw.com/b0plktfvc
|
||||||
|
密码:f67c
|
||||||
|
|
||||||
### 注
|
### 注
|
||||||
spark-deepin-wine-runner 是普通包,spark-deepin-wine-runner-ace 是使用 ace 兼容环境运行的运行器
|
spark-deepin-wine-runner 是普通包,spark-deepin-wine-runner-ace 是使用 ace 兼容环境运行的运行器
|
||||||
|
|
||||||
|
## Wine 运行器离线包
|
||||||
|
### X86
|
||||||
|
123pan:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||||
|
百度网盘:https://pan.baidu.com/s/1klBw63tw2_ZQLzmi11dDBw?pwd=7bu5 提取码: 7bu5
|
||||||
|
诚通网盘:http://ctfile.gfdgdxi.top/d/31540479-59254792-909739?p=2061 (访问密码: 2061)
|
||||||
|
Github:https://github.com/gfdgd-xi/deep-wine-runner/releases/
|
||||||
|
Sourceforge:https://sourceforge.net/projects/deep-wine-runner/files/
|
||||||
|
更多需求需要私聊作者定制(有偿服务)
|
||||||
|
### ARM
|
||||||
|
需要私聊作者定制(有偿服务)
|
||||||
|
|
||||||
## 软件架构
|
## 软件架构
|
||||||
理论上支持全架构,如果 Python 能运行的话
|
理论上支持全架构,如果 Python 能运行的话
|
||||||
非 X86 架构会利用到 `box86`/`box64`、`exagear`、`qemu` 等技术
|
非 X86 架构会利用到 `box86`/`box64`、`exagear`、`qemu` 等技术
|
||||||
@@ -120,6 +143,64 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
|||||||

|

|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
### 3.9.0(2024年06月01日)
|
||||||
|
**※1、UOS Mips64(如 3a4000)用户无需手动降级 Qemu 即可正常开启使用虚拟机**
|
||||||
|
**※2、修复开启部分 exe 提示参数有误的问题**
|
||||||
|
**※3、Qemu 在启动时可以按 ESC 键打开启动菜单**
|
||||||
|
**※4、虚拟机工具 Windows 7 自动安装镜像文件选项内置 Virtio 驱动安装包**
|
||||||
|
**※5、Qemu 虚拟机参数调整若干**
|
||||||
|
**※6、修复虚拟机安装工具系统安装选项会自动跳回第一项的问题**
|
||||||
|
**※7、优化简易打包器包名识别机制**
|
||||||
|
**※8、减少不必要的压缩以减少打包器打包 deb 所需时间**
|
||||||
|
**※9、修复简易打包器生成的 deb 包无法运行的问题**
|
||||||
|
10、优化 lat 安装脚本
|
||||||
|
11、调整星火 Wine 助手路径
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 3.8.0(2024年04月27日)
|
||||||
|
**※1、修复系统/应用运行库无法下载的问题**
|
||||||
|
**※2、打包器支持指定打包架构为 loong64、loongarch64、armhf 和 amd64**
|
||||||
|
**※3、更新 Geek Uninstaller 版本**
|
||||||
|
**※4、默认开启英语翻译**
|
||||||
|
**※5、更新 dxvk 版本**
|
||||||
|
**※6、修复新版本 Qemu 没有 --soundhw 参数导致无法正常开启虚拟机的问题**
|
||||||
|
**※7、支持 Qemu 磁盘扩容**
|
||||||
|
8、修复问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I9B4L0
|
||||||
|
9、针对 Loongarch ACE 做特别优化
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 3.7.0(2024年02月02日)
|
||||||
|
**※1、修复简易打包器在 Deepin/UOS 上无法正常启动的问题**
|
||||||
|
**※2、打包器生成的 deb 修复在非 Deepin/UOS 且未安装星火应用商店的系统中启动器无程序图标的问题**
|
||||||
|
**※3、修复 Box86/64 国内源源失效的问题**
|
||||||
|
**※4、适配 Arch Linux**
|
||||||
|
**※5、适配 Fedora**
|
||||||
|
**※6、打包器支持将 deb 包转换为其它格式**
|
||||||
|
**※7、适配 deepin 23 beta3**
|
||||||
|
8、新增公告和新版本提示功能
|
||||||
|
9、修复公告的链接在部分机器无法正常打开的问题
|
||||||
|
10、新增赞赏入口
|
||||||
|
11、支持识别 spark-wine9、spark-wine9-wow
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 3.6.1(2023年12月25日)
|
||||||
|
**※1、修复应用无法打开的问题**
|
||||||
|
**※2、修改错别字**
|
||||||
|
|
||||||
### 3.6.0(2023年12月24日)
|
### 3.6.0(2023年12月24日)
|
||||||
**※1、修复高级打包器选择软件适配脚本后无法打包的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I8I110**
|
**※1、修复高级打包器选择软件适配脚本后无法打包的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I8I110**
|
||||||
**※2、支持调用 Deepin Wine8 Stable**
|
**※2、支持调用 Deepin Wine8 Stable**
|
||||||
@@ -574,40 +655,18 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
|||||||
### 1.0.0(2021年01月29日)
|
### 1.0.0(2021年01月29日)
|
||||||
1. 实现内容
|
1. 实现内容
|
||||||
|
|
||||||
## 源码安装教程
|
## 构建安装包
|
||||||
1. 安装需要的依赖
|
### deb
|
||||||
```bash
|
```bash
|
||||||
sudo apt install git make
|
make package-deb -j4
|
||||||
```
|
```
|
||||||
2. 下载仓库
|
### pkg
|
||||||
```bash
|
```bash
|
||||||
git clone https://gitee.com/gfdgd-xi/deep-wine-runner.git
|
make package-deb -j4
|
||||||
cd deep-wine-runner
|
make package-pkg -j4
|
||||||
```
|
|
||||||
3. 从源码运行程序(如果是从源码安装请跳过这一步)
|
|
||||||
```bash
|
|
||||||
make depend
|
|
||||||
make run
|
|
||||||
```
|
|
||||||
4. 从源码安装程序
|
|
||||||
```bash
|
|
||||||
make install
|
|
||||||
```
|
```
|
||||||
## Openkylin 如何安装这个 Wine 运行器?
|
## Openkylin 如何安装这个 Wine 运行器?
|
||||||
首先添加作者的源:
|
现在可以直接安装了
|
||||||
Gitlink 源(国内推荐):
|
|
||||||
```bash
|
|
||||||
wget https://code.gitlink.org.cn/gfdgd_xi/gfdgd-xi-apt-mirrors/raw/branch/master/sources/gitlink.sh && bash gitlink.sh && rm gitlink.sh
|
|
||||||
```
|
|
||||||
Github 源(国外推荐):
|
|
||||||
```bash
|
|
||||||
wget https://gfdgd-xi.github.io/gfdgd-xi-apt-mirrors/sources/github.sh && bash github.sh && rm github.sh
|
|
||||||
```
|
|
||||||
上面二选一,添加完后执行
|
|
||||||
```bash
|
|
||||||
sudo apt install spark-deepin-wine-runner
|
|
||||||
```
|
|
||||||
即可自动补全依赖安装(说实话 openkylin 缺的依赖好多)
|
|
||||||
|
|
||||||
## 对于 Deepin/UOS(AMD64 平台)小白如何使用该程序?
|
## 对于 Deepin/UOS(AMD64 平台)小白如何使用该程序?
|
||||||
下面是送给小白的 wine 运行器简单使用方法,先声明,wine 并***不能完美的运行所有 exe 文件***,利用此 wine 运行器简易安装可执行文件的方法如下:
|
下面是送给小白的 wine 运行器简单使用方法,先声明,wine 并***不能完美的运行所有 exe 文件***,利用此 wine 运行器简易安装可执行文件的方法如下:
|
||||||
@@ -621,42 +680,10 @@ sudo apt install spark-deepin-wine-runner
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 稍微讲一下目前 deepin 23 Preview 运行自定义 exe 的方法(Wine 运行器均已支持)
|
|
||||||
|
|
||||||
### 方法一
|
|
||||||
|
|
||||||
随便安装一个 linglong 格式包的 wine 程序(要记住包名),然后在终端输入
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ll-cli run 包名 --exec '/bin/deepin-wine6-stable'
|
|
||||||
```
|
|
||||||
|
|
||||||
即可,缺陷可看运行器上方小提示第 6 点
|
|
||||||
|
|
||||||
### 方法二(容易翻车)
|
|
||||||
|
|
||||||
添加 Deepin 20 的**官方源和商店源**,然后输入如下的命令:**切记不能sudo apt upgrade**,会出现的问题可以看运行器的小提示第 7 点,以及无法保证所有 Wine 均可运行
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
sudo apt update
|
|
||||||
# 安装普通的 Wine
|
|
||||||
sudo apt install wine
|
|
||||||
# 安装 deepin-wine5-stable(本机测试 X64 的 Wine 跑不了)
|
|
||||||
sudo apt install deepin-wine5-stable
|
|
||||||
# 安装 deepin-wine6-stable
|
|
||||||
sudo apt install deepin-wine6-stable
|
|
||||||
```
|
|
||||||
**使用完后最好删除掉 Deepin 20 的官方源和商店源,防止出问题**
|
|
||||||
可以看 [@ThinkYoung](user/18570) 写的 https://bbs.deepin.org/post/241148,可以参考借鉴
|
|
||||||
|
|
||||||
### 方法三
|
|
||||||
我不知道了,希望能有大佬提供更好的解决方案
|
|
||||||
|
|
||||||
## 下载链接
|
## 下载链接
|
||||||
Gitee:https://gitee.com/gfdgd-xi/deep-wine-runner
|
Gitee:https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||||
Github:https://github.com/gfdgd-xi/deep-wine-runner
|
Github:https://github.com/gfdgd-xi/deep-wine-runner
|
||||||
Gitlink:https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
Sourceforge:https://sourceforge.com/projects/deep-wine-runner
|
||||||
蓝奏云:https://gfdgdxi.lanzouj.com/b01nz7y3e,密码:7oii
|
蓝奏云:https://gfdgdxi.lanzouj.com/b01nz7y3e,密码:7oii
|
||||||
星火应用商店:spk://store/tools/spark-deepin-wine-runner
|
星火应用商店:spk://store/tools/spark-deepin-wine-runner
|
||||||
|
|
||||||
@@ -742,4 +769,14 @@ make install -j4
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 请作者喝杯茶
|
||||||
|
如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶
|
||||||
|
<img src="Icon/QR/Wechat.png" width="250" />
|
||||||
|
<img src="Icon/QR/Alipay.jpg" width="250" />
|
||||||
|
<img src="Icon/QR/QQ.png" width="250" >
|
||||||
|
|
||||||
|
### 广告
|
||||||
|
支付宝官方活动,扫描获得支付红包!
|
||||||
|
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||||
|
|
||||||
# ©2020-Now gfdgd xi
|
# ©2020-Now gfdgd xi
|
||||||
26
ShellList/turn-all-to-amd64-arm64-deb.py
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def ReadTXT(path):
|
||||||
|
with open(path, "r") as file:
|
||||||
|
thing = file.read()
|
||||||
|
return thing
|
||||||
|
|
||||||
|
def WriteTXT(path, data):
|
||||||
|
with open(path, "w") as file:
|
||||||
|
file.write(data)
|
||||||
|
|
||||||
|
debList = sys.argv[1:]
|
||||||
|
for i in debList:
|
||||||
|
# 解包
|
||||||
|
os.system("rm -rf /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -x '{i}' /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -e '{i}' /tmp/change-old-to-new/DEBIAN")
|
||||||
|
info = ReadTXT("/tmp/change-old-to-new/DEBIAN/control").replace(": all", ": amd64")
|
||||||
|
WriteTXT("/tmp/change-old-to-new/DEBIAN/control", info)
|
||||||
|
os.system(f"dpkg-deb -Z xz -z 0 -b /tmp/change-old-to-new '{os.path.basename(i).replace('_all', '_amd64')}'")
|
||||||
|
info = ReadTXT("/tmp/change-old-to-new/DEBIAN/control").replace(": amd64", ": arm64")
|
||||||
|
WriteTXT("/tmp/change-old-to-new/DEBIAN/control", info)
|
||||||
|
os.system(f"dpkg-deb -Z xz -z 0 -b /tmp/change-old-to-new '{os.path.basename(i).replace('_all', '_arm64')}'")
|
||||||
|
# 检查是否能正常安装
|
||||||
23
ShellList/turn-loongarch64-to-loong64-deb.py
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def ReadTXT(path):
|
||||||
|
with open(path, "r") as file:
|
||||||
|
thing = file.read()
|
||||||
|
return thing
|
||||||
|
|
||||||
|
def WriteTXT(path, data):
|
||||||
|
with open(path, "w") as file:
|
||||||
|
file.write(data)
|
||||||
|
|
||||||
|
debList = sys.argv[1:]
|
||||||
|
for i in debList:
|
||||||
|
# 解包
|
||||||
|
os.system("rm -rf /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -x '{i}' /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -e '{i}' /tmp/change-old-to-new/DEBIAN")
|
||||||
|
info = ReadTXT("/tmp/change-old-to-new/DEBIAN/control").replace(": loongarch64", ": loong64").replace("Depends: ", "Depends: liblol, ")
|
||||||
|
WriteTXT("/tmp/change-old-to-new/DEBIAN/control", info)
|
||||||
|
os.system(f"dpkg-deb -Z xz -z 9 -b /tmp/change-old-to-new '{os.path.basename(i).replace('_loongarch64', '_loong64')}'")
|
||||||
|
# 检查是否能正常安装
|
||||||
26
ShellList/turn-spark-dwine-helper-to-dwine-helper.py
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def ReadTXT(path):
|
||||||
|
with open(path, "r") as file:
|
||||||
|
thing = file.read()
|
||||||
|
return thing
|
||||||
|
|
||||||
|
def WriteTXT(path, data):
|
||||||
|
with open(path, "w") as file:
|
||||||
|
file.write(data)
|
||||||
|
|
||||||
|
debList = sys.argv[1:]
|
||||||
|
for i in debList:
|
||||||
|
# 解包
|
||||||
|
os.system("rm -rf /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -x '{i}' /tmp/change-old-to-new")
|
||||||
|
os.system(f"dpkg -e '{i}' /tmp/change-old-to-new/DEBIAN")
|
||||||
|
info = ReadTXT("/tmp/change-old-to-new/DEBIAN/control").replace("spark-dwine-helper | store.spark-app.spark-dwine-helper", "deepin-wine-helper (>= 5.1.30-1)")
|
||||||
|
WriteTXT("/tmp/change-old-to-new/DEBIAN/control", info)
|
||||||
|
path = os.listdir("/tmp/change-old-to-new/opt/apps")[0]
|
||||||
|
info = ReadTXT(f"/tmp/change-old-to-new/opt/apps/{path}/files/run.sh").replace("/opt/deepinwine/tools/spark_run_v4.sh", "/opt/deepinwine/tools/run_v4.sh")
|
||||||
|
WriteTXT(f"/tmp/change-old-to-new/opt/apps/{path}/files/run.sh", info)
|
||||||
|
os.system(f"dpkg-deb -Z xz -z 0 -b /tmp/change-old-to-new '{os.path.basename(i)}'")
|
||||||
|
# 检查是否能正常安装
|
||||||
97
StartVM.sh
@@ -8,6 +8,7 @@
|
|||||||
# 基于 Python3 的 tkinter 构建
|
# 基于 Python3 的 tkinter 构建
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
cd `dirname $0`
|
cd `dirname $0`
|
||||||
|
CURRENT_DIR=$(cd $(dirname $0); pwd)
|
||||||
VBoxManage showvminfo Windows
|
VBoxManage showvminfo Windows
|
||||||
if [[ 0 == $? ]]; then
|
if [[ 0 == $? ]]; then
|
||||||
# 检测到虚拟机存在,启动虚拟机
|
# 检测到虚拟机存在,启动虚拟机
|
||||||
@@ -29,7 +30,16 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
||||||
# 查看逻辑CPU的个数
|
# 查看逻辑CPU的个数
|
||||||
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
||||||
|
# 判断是否检测异常,如果异常则使用默认值
|
||||||
|
if [[ $CpuSocketNum == 0 ]]; then
|
||||||
|
CpuSocketNum=1
|
||||||
|
fi
|
||||||
|
if [[ $CpuCoreNum == 0 ]]; then
|
||||||
|
CpuCoreNum=1
|
||||||
|
fi
|
||||||
|
if [[ $CpuCount == 0 ]]; then
|
||||||
|
CpuCount=2
|
||||||
|
fi
|
||||||
# 总内存大小GB
|
# 总内存大小GB
|
||||||
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
||||||
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
||||||
@@ -40,22 +50,51 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
|
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
|
||||||
echo 使用 UEFI 启动
|
echo 使用 UEFI 启动
|
||||||
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
|
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
|
||||||
qemuUEFI="--bios /usr/share/qemu/OVMF.fd"
|
qemuUEFI="--bios /usr/share/qemu/OVMF.fd -vga none -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 "
|
||||||
else
|
else
|
||||||
if [[ -f `dirname $0`/VM/OVMF.fd ]]; then
|
if [[ -f `dirname $0`/VM/OVMF.fd ]]; then
|
||||||
qemuUEFI="--bios `dirname $0`/VM/OVMF.fd"
|
qemuUEFI="--bios `dirname $0`/VM/OVMF.fd -vga none -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 "
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo $qemuUEFI
|
else
|
||||||
|
qemuUEFI="-vga virtio -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 "
|
||||||
fi
|
fi
|
||||||
|
echo $qemuUEFI
|
||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
||||||
echo X86 架构,使用 kvm 加速
|
echo X86 架构,使用 kvm 加速
|
||||||
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
# 判断系统版本以选择 Qemu
|
||||||
|
isUOS=0
|
||||||
|
qemuPath=qemu-system-x86_64
|
||||||
|
cat /etc/os-version | grep -i uos
|
||||||
|
if [[ $? == 0 ]]; then
|
||||||
|
isUOS=1
|
||||||
|
fi
|
||||||
|
cat /etc/os-version | grep -i unio
|
||||||
|
if [[ $? == 0 ]]; then
|
||||||
|
isUOS=1
|
||||||
|
fi
|
||||||
|
if [[ $isUOS == 1 ]]; then
|
||||||
|
arch=`uname -m`
|
||||||
|
if [[ $arch == "mips64" ]] || [[ $arch == "mips64el" ]]; then
|
||||||
|
qemuPath="bwrap --dev-bind / / --bind ./VM/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so /usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so ./VM/MipsQemu/usr/bin/qemu-system-x86_64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
echo 不使用 kvm 加速
|
echo 不使用 kvm 加速
|
||||||
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
$qemuPath --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
|
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
|
||||||
@@ -72,10 +111,28 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
echo $qemuUEFI
|
echo $qemuUEFI
|
||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||||
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-cpu max -M virt -device virtio-gpu-pci \
|
||||||
|
-device nec-usb-xhci,id=xhci,addr=0x1b \
|
||||||
|
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
|
||||||
|
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-cpu max -M virt -device virtio-gpu-pci \
|
||||||
|
-device nec-usb-xhci,id=xhci,addr=0x1b \
|
||||||
|
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
|
||||||
|
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
|
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
|
||||||
@@ -92,10 +149,30 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
echo $qemuUEFI
|
echo $qemuUEFI
|
||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||||
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-cpu max -M virt \
|
||||||
|
-device virtio-gpu-pci \
|
||||||
|
-device nec-usb-xhci,id=xhci,addr=0x1b \
|
||||||
|
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
|
||||||
|
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
|
-m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
|
-cpu max -M virt \
|
||||||
|
-device virtio-gpu-pci \
|
||||||
|
-device nec-usb-xhci,id=xhci,addr=0x1b \
|
||||||
|
-device usb-tablet,id=tablet,bus=xhci.0,port=1 \
|
||||||
|
-device usb-kbd,id=keyboard,bus=xhci.0,port=2 \
|
||||||
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
|
--boot 'splash=VM/boot.jpg,menu=on,splash-time=2000' \
|
||||||
|
> /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,702 +0,0 @@
|
|||||||
#############################################################################
|
|
||||||
# Makefile for building: VirtualMachine
|
|
||||||
# Generated by qmake (3.1) (Qt 5.15.7)
|
|
||||||
# Project: VirtualMachine.pro
|
|
||||||
# Template: app
|
|
||||||
# Command: /usr/lib/qt5/bin/qmake -o Makefile VirtualMachine.pro
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
MAKEFILE = Makefile
|
|
||||||
|
|
||||||
EQ = =
|
|
||||||
|
|
||||||
####### Compiler, tools and options
|
|
||||||
|
|
||||||
CC = gcc
|
|
||||||
CXX = g++
|
|
||||||
DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
|
|
||||||
CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
|
|
||||||
CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
|
|
||||||
INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++
|
|
||||||
QMAKE = /usr/lib/qt5/bin/qmake
|
|
||||||
DEL_FILE = rm -f
|
|
||||||
CHK_DIR_EXISTS= test -d
|
|
||||||
MKDIR = mkdir -p
|
|
||||||
COPY = cp -f
|
|
||||||
COPY_FILE = cp -f
|
|
||||||
COPY_DIR = cp -f -R
|
|
||||||
INSTALL_FILE = install -m 644 -p
|
|
||||||
INSTALL_PROGRAM = install -m 755 -p
|
|
||||||
INSTALL_DIR = cp -f -R
|
|
||||||
QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
|
|
||||||
QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
|
|
||||||
DEL_FILE = rm -f
|
|
||||||
SYMLINK = ln -f -s
|
|
||||||
DEL_DIR = rmdir
|
|
||||||
MOVE = mv -f
|
|
||||||
TAR = tar -cf
|
|
||||||
COMPRESS = gzip -9f
|
|
||||||
DISTNAME = VirtualMachine1.0.0
|
|
||||||
DISTDIR = /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.tmp/VirtualMachine1.0.0
|
|
||||||
LINK = g++
|
|
||||||
LFLAGS = -Wl,-O1
|
|
||||||
LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread
|
|
||||||
AR = ar cqs
|
|
||||||
RANLIB =
|
|
||||||
SED = sed
|
|
||||||
STRIP = strip
|
|
||||||
|
|
||||||
####### Output directory
|
|
||||||
|
|
||||||
OBJECTS_DIR = ./
|
|
||||||
|
|
||||||
####### Files
|
|
||||||
|
|
||||||
SOURCES = main.cpp \
|
|
||||||
mainwindow.cpp \
|
|
||||||
buildvbox.cpp \
|
|
||||||
vbox.cpp \
|
|
||||||
command.cpp \
|
|
||||||
infoutils.cpp \
|
|
||||||
qemu.cpp \
|
|
||||||
qemusetting.cpp qrc_trans.cpp \
|
|
||||||
qrc_图标.cpp \
|
|
||||||
moc_mainwindow.cpp \
|
|
||||||
moc_infoutils.cpp \
|
|
||||||
moc_qemusetting.cpp
|
|
||||||
OBJECTS = main.o \
|
|
||||||
mainwindow.o \
|
|
||||||
buildvbox.o \
|
|
||||||
vbox.o \
|
|
||||||
command.o \
|
|
||||||
infoutils.o \
|
|
||||||
qemu.o \
|
|
||||||
qemusetting.o \
|
|
||||||
qrc_trans.o \
|
|
||||||
qrc_图标.o \
|
|
||||||
moc_mainwindow.o \
|
|
||||||
moc_infoutils.o \
|
|
||||||
moc_qemusetting.o
|
|
||||||
DIST = en_US.qm \
|
|
||||||
en_US.ts \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
|
|
||||||
VirtualMachine.pro mainwindow.h \
|
|
||||||
buildvbox.h \
|
|
||||||
vbox.h \
|
|
||||||
command.h \
|
|
||||||
infoutils.h \
|
|
||||||
qemu.h \
|
|
||||||
qemusetting.h main.cpp \
|
|
||||||
mainwindow.cpp \
|
|
||||||
buildvbox.cpp \
|
|
||||||
vbox.cpp \
|
|
||||||
command.cpp \
|
|
||||||
infoutils.cpp \
|
|
||||||
qemu.cpp \
|
|
||||||
qemusetting.cpp
|
|
||||||
QMAKE_TARGET = VirtualMachine
|
|
||||||
DESTDIR =
|
|
||||||
TARGET = VirtualMachine
|
|
||||||
|
|
||||||
|
|
||||||
first: all
|
|
||||||
####### Build rules
|
|
||||||
|
|
||||||
VirtualMachine: ui_mainwindow.h ui_qemusetting.h $(OBJECTS)
|
|
||||||
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
|
|
||||||
|
|
||||||
Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
|
|
||||||
VirtualMachine.pro \
|
|
||||||
trans.qrc \
|
|
||||||
图标.qrc
|
|
||||||
$(QMAKE) -o Makefile VirtualMachine.pro
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf:
|
|
||||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf:
|
|
||||||
VirtualMachine.pro:
|
|
||||||
trans.qrc:
|
|
||||||
图标.qrc:
|
|
||||||
qmake: FORCE
|
|
||||||
@$(QMAKE) -o Makefile VirtualMachine.pro
|
|
||||||
|
|
||||||
qmake_all: FORCE
|
|
||||||
|
|
||||||
|
|
||||||
all: Makefile VirtualMachine
|
|
||||||
|
|
||||||
dist: distdir FORCE
|
|
||||||
(cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
|
|
||||||
|
|
||||||
distdir: FORCE
|
|
||||||
@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
|
|
||||||
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents trans.qrc 图标.qrc $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents mainwindow.h buildvbox.h vbox.h command.h infoutils.h qemu.h qemusetting.h $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp qemu.cpp qemusetting.cpp $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents mainwindow.ui qemusetting.ui $(DISTDIR)/
|
|
||||||
$(COPY_FILE) --parents zh_CN.ts en_US.ts $(DISTDIR)/
|
|
||||||
|
|
||||||
|
|
||||||
clean: compiler_clean
|
|
||||||
-$(DEL_FILE) $(OBJECTS)
|
|
||||||
-$(DEL_FILE) *~ core *.core
|
|
||||||
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
-$(DEL_FILE) $(TARGET)
|
|
||||||
-$(DEL_FILE) .qmake.stash
|
|
||||||
-$(DEL_FILE) Makefile
|
|
||||||
|
|
||||||
|
|
||||||
####### Sub-libraries
|
|
||||||
|
|
||||||
mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
|
|
||||||
|
|
||||||
mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
|
|
||||||
|
|
||||||
check: first
|
|
||||||
|
|
||||||
benchmark: first
|
|
||||||
|
|
||||||
compiler_rcc_make_all: qrc_trans.cpp qrc_图标.cpp
|
|
||||||
compiler_rcc_clean:
|
|
||||||
-$(DEL_FILE) qrc_trans.cpp qrc_图标.cpp
|
|
||||||
qrc_trans.cpp: trans.qrc \
|
|
||||||
/usr/lib/qt5/bin/rcc \
|
|
||||||
en_US.ts \
|
|
||||||
en_US.qm \
|
|
||||||
zh_CN.ts \
|
|
||||||
zh_CN.qm
|
|
||||||
/usr/lib/qt5/bin/rcc -name trans trans.qrc -o qrc_trans.cpp
|
|
||||||
|
|
||||||
qrc_图标.cpp: 图标.qrc \
|
|
||||||
/usr/lib/qt5/bin/rcc \
|
|
||||||
deepin-wine-runner.png \
|
|
||||||
deepin-wine-runner.svg \
|
|
||||||
application-vnd.oasis.opendocument.text.svg \
|
|
||||||
截图_VirtualBox\ Machine_20220712142929.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143018.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712192850.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143044.png \
|
|
||||||
截图/截图_VirtualBox\ Manager_20220712223602.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143103.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143029.png \
|
|
||||||
截图/截图_选择区域_20220712224639.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712193527.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143037.png \
|
|
||||||
截图/截图_VirtualBox_20220712223705.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712143006.png \
|
|
||||||
截图/截图_VirtualBox\ Machine_20220712191756.png \
|
|
||||||
test.qcow2 \
|
|
||||||
LANG/virtualmachine-en_US.ts \
|
|
||||||
LANG/virtualmachine-en_US.qm
|
|
||||||
/usr/lib/qt5/bin/rcc -name 图标 图标.qrc -o qrc_图标.cpp
|
|
||||||
|
|
||||||
compiler_moc_predefs_make_all: moc_predefs.h
|
|
||||||
compiler_moc_predefs_clean:
|
|
||||||
-$(DEL_FILE) moc_predefs.h
|
|
||||||
moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
|
|
||||||
g++ -pipe -O2 -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
|
|
||||||
|
|
||||||
compiler_moc_header_make_all: moc_mainwindow.cpp moc_infoutils.cpp moc_qemusetting.cpp
|
|
||||||
compiler_moc_header_clean:
|
|
||||||
-$(DEL_FILE) moc_mainwindow.cpp moc_infoutils.cpp moc_qemusetting.cpp
|
|
||||||
moc_mainwindow.cpp: mainwindow.h \
|
|
||||||
moc_predefs.h \
|
|
||||||
/usr/lib/qt5/bin/moc
|
|
||||||
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include mainwindow.h -o moc_mainwindow.cpp
|
|
||||||
|
|
||||||
moc_infoutils.cpp: infoutils.h \
|
|
||||||
moc_predefs.h \
|
|
||||||
/usr/lib/qt5/bin/moc
|
|
||||||
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include infoutils.h -o moc_infoutils.cpp
|
|
||||||
|
|
||||||
moc_qemusetting.cpp: qemusetting.h \
|
|
||||||
moc_predefs.h \
|
|
||||||
/usr/lib/qt5/bin/moc
|
|
||||||
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include qemusetting.h -o moc_qemusetting.cpp
|
|
||||||
|
|
||||||
compiler_moc_objc_header_make_all:
|
|
||||||
compiler_moc_objc_header_clean:
|
|
||||||
compiler_moc_source_make_all:
|
|
||||||
compiler_moc_source_clean:
|
|
||||||
compiler_uic_make_all: ui_mainwindow.h ui_qemusetting.h
|
|
||||||
compiler_uic_clean:
|
|
||||||
-$(DEL_FILE) ui_mainwindow.h ui_qemusetting.h
|
|
||||||
ui_mainwindow.h: mainwindow.ui \
|
|
||||||
/usr/lib/qt5/bin/uic
|
|
||||||
/usr/lib/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h
|
|
||||||
|
|
||||||
ui_qemusetting.h: qemusetting.ui \
|
|
||||||
/usr/lib/qt5/bin/uic
|
|
||||||
/usr/lib/qt5/bin/uic qemusetting.ui -o ui_qemusetting.h
|
|
||||||
|
|
||||||
compiler_yacc_decl_make_all:
|
|
||||||
compiler_yacc_decl_clean:
|
|
||||||
compiler_yacc_impl_make_all:
|
|
||||||
compiler_yacc_impl_clean:
|
|
||||||
compiler_lex_make_all:
|
|
||||||
compiler_lex_clean:
|
|
||||||
compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean
|
|
||||||
|
|
||||||
####### Compile
|
|
||||||
|
|
||||||
main.o: main.cpp mainwindow.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
|
|
||||||
|
|
||||||
mainwindow.o: mainwindow.cpp mainwindow.h \
|
|
||||||
ui_mainwindow.h \
|
|
||||||
buildvbox.h \
|
|
||||||
infoutils.h \
|
|
||||||
qemusetting.h \
|
|
||||||
vbox.h \
|
|
||||||
qemu.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
|
|
||||||
|
|
||||||
buildvbox.o: buildvbox.cpp buildvbox.h \
|
|
||||||
vbox.h \
|
|
||||||
infoutils.h \
|
|
||||||
qemu.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o buildvbox.o buildvbox.cpp
|
|
||||||
|
|
||||||
vbox.o: vbox.cpp vbox.h \
|
|
||||||
command.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vbox.o vbox.cpp
|
|
||||||
|
|
||||||
command.o: command.cpp command.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o command.o command.cpp
|
|
||||||
|
|
||||||
infoutils.o: infoutils.cpp infoutils.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o infoutils.o infoutils.cpp
|
|
||||||
|
|
||||||
qemu.o: qemu.cpp qemu.h \
|
|
||||||
command.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemu.o qemu.cpp
|
|
||||||
|
|
||||||
qemusetting.o: qemusetting.cpp qemusetting.h \
|
|
||||||
ui_qemusetting.h \
|
|
||||||
infoutils.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemusetting.o qemusetting.cpp
|
|
||||||
|
|
||||||
qrc_trans.o: qrc_trans.cpp
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_trans.o qrc_trans.cpp
|
|
||||||
|
|
||||||
qrc_图标.o: qrc_图标.cpp
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_图标.o qrc_图标.cpp
|
|
||||||
|
|
||||||
moc_mainwindow.o: moc_mainwindow.cpp
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
|
|
||||||
|
|
||||||
moc_infoutils.o: moc_infoutils.cpp
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_infoutils.o moc_infoutils.cpp
|
|
||||||
|
|
||||||
moc_qemusetting.o: moc_qemusetting.cpp
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qemusetting.o moc_qemusetting.cpp
|
|
||||||
|
|
||||||
####### Install
|
|
||||||
|
|
||||||
install_target: first FORCE
|
|
||||||
@test -d $(INSTALL_ROOT)/opt/VirtualMachine/bin || mkdir -p $(INSTALL_ROOT)/opt/VirtualMachine/bin
|
|
||||||
$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
|
||||||
-$(STRIP) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
|
||||||
|
|
||||||
uninstall_target: FORCE
|
|
||||||
-$(DEL_FILE) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
|
||||||
-$(DEL_DIR) $(INSTALL_ROOT)/opt/VirtualMachine/bin/
|
|
||||||
|
|
||||||
|
|
||||||
install: install_target FORCE
|
|
||||||
|
|
||||||
uninstall: uninstall_target FORCE
|
|
||||||
|
|
||||||
FORCE:
|
|
||||||
|
|
||||||
@@ -62,3 +62,17 @@ RESOURCES += \
|
|||||||
DISTFILES += \
|
DISTFILES += \
|
||||||
en_US.qm \
|
en_US.qm \
|
||||||
en_US.ts
|
en_US.ts
|
||||||
|
|
||||||
|
# 编译时拷贝所需文件
|
||||||
|
file_need.files += Windows7X64Auto.iso \
|
||||||
|
Windows7X86Auto.iso \
|
||||||
|
kvm-ok \
|
||||||
|
AAVMF32_CODE.fd \
|
||||||
|
deepin-wine-runner.svg \
|
||||||
|
OVMF.fd \
|
||||||
|
QEMU_AARCH64_EFI.fd \
|
||||||
|
QEMU_EFI_LOONG64_7.1.fd \
|
||||||
|
test.qcow2
|
||||||
|
file_need.path += $$OUT_PWD
|
||||||
|
COPIES += file_need
|
||||||
|
system(chmod 777 $$OUT_PWD/kvm-ok)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 7.0.1, 2023-11-25T17:10:08. -->
|
<!-- Written by QtCreator 9.0.2, 2024-06-01T15:39:37. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
<value type="int">0</value>
|
<value type="qlonglong">0</value>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
@@ -54,6 +54,7 @@
|
|||||||
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
@@ -92,9 +93,9 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||||
@@ -110,9 +111,9 @@
|
|||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
@@ -121,7 +122,7 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
@@ -149,9 +150,9 @@
|
|||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
@@ -160,7 +161,7 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
@@ -190,9 +191,9 @@
|
|||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
@@ -201,7 +202,7 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
@@ -217,12 +218,12 @@
|
|||||||
<value type="int" key="QtQuickCompiler">0</value>
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
<value type="int" key="SeparateDebugInfo">0</value>
|
<value type="int" key="SeparateDebugInfo">0</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
@@ -230,7 +231,7 @@
|
|||||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
@@ -247,7 +248,7 @@
|
|||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
@@ -257,9 +258,9 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ab20853c-9d79-473a-820e-8e95c145170e}</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ab20853c-9d79-473a-820e-8e95c145170e}</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||||
@@ -274,9 +275,9 @@
|
|||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
@@ -285,7 +286,7 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
@@ -299,12 +300,12 @@
|
|||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
@@ -312,7 +313,7 @@
|
|||||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
@@ -328,12 +329,12 @@
|
|||||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
<value type="int">2</value>
|
<value type="qlonglong">2</value>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||||
|
|||||||
BIN
VM-source/boot.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
198
VM-source/boot.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -145,17 +145,27 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
|||||||
}
|
}
|
||||||
vm.CreateDiskControl();
|
vm.CreateDiskControl();
|
||||||
//vm.CreateDiskControl("storage_controller_2");
|
//vm.CreateDiskControl("storage_controller_2");
|
||||||
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
|
if(id == 0 || id == 1) {
|
||||||
|
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072 * 5);
|
||||||
|
}
|
||||||
|
|
||||||
//vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
//vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
||||||
vm.MountMainDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
vm.MountMainDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
||||||
if(!setISOAlready){
|
if(!setISOAlready){
|
||||||
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case 0:
|
case 0:
|
||||||
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
|
if(QFile::exists(programPath + "/Windows7X86Auto.iso")) {
|
||||||
|
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
|
if(QFile::exists(programPath + "/Windows7X64Auto.iso")) {
|
||||||
|
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -247,16 +257,25 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
|||||||
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
|
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
|
||||||
vm.CreateDiskControl();
|
vm.CreateDiskControl();
|
||||||
//vm.CreateDiskControl("storage_controller_2");
|
//vm.CreateDiskControl("storage_controller_2");
|
||||||
vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072);
|
if(id == 0 || id == 1) {
|
||||||
|
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072 * 5);
|
||||||
|
}
|
||||||
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
|
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
|
||||||
if(!setISOAlready){
|
if(!setISOAlready){
|
||||||
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case 0:
|
case 0:
|
||||||
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
|
if(QFile::exists(programPath + "/Windows7X86Auto.iso")) {
|
||||||
|
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
|
if(QFile::exists(programPath + "/Windows7X64Auto.iso")) {
|
||||||
|
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
#include "vbox.h"
|
#include "vbox.h"
|
||||||
#include "qemu.h"
|
#include "qemu.h"
|
||||||
|
|
||||||
|
#include <QInputDialog>
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent) :
|
MainWindow::MainWindow(QWidget *parent) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
ui(new Ui::MainWindow)
|
ui(new Ui::MainWindow)
|
||||||
@@ -143,7 +145,7 @@ void MainWindow::ShowCPUMessage(){
|
|||||||
}
|
}
|
||||||
m_cpuAll = cpuAll;
|
m_cpuAll = cpuAll;
|
||||||
m_cpuFree = cpuFree;
|
m_cpuFree = cpuFree;
|
||||||
ui->retranslateUi(this);
|
//ui->retranslateUi(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MainWindow::GetRunCommand(QString command){
|
QString MainWindow::GetRunCommand(QString command){
|
||||||
@@ -457,3 +459,26 @@ void MainWindow::on_action_StopQemu_triggered()
|
|||||||
vmControl.Stop();
|
vmControl.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_actionQemuDiskAddSpace_triggered()
|
||||||
|
{
|
||||||
|
double data = QInputDialog::getDouble(this, tr("磁盘扩容"), "输入扩容多少GB\n注:1、扩容所需要的时间较长,程序可能会出现假死的情况,请不要关闭否则会导致虚拟磁盘损坏\n2、扩展后需要自行在虚拟机使用 Deepin Community Live CD、Live CD、Windows PE\n等工具调整系统分区大小才能使用");
|
||||||
|
if(data <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 开始扩容
|
||||||
|
int result = qemu("").AddDiskSpace(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", data);
|
||||||
|
qDebug() << "Exit Code: " << result;
|
||||||
|
if(result) {
|
||||||
|
QMessageBox::critical(this, tr("错误"), tr("扩容失败!"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QMessageBox::information(this, tr("提示"), tr("扩容完成!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_getDCLC_triggered()
|
||||||
|
{
|
||||||
|
QDesktopServices::openUrl(QUrl("https://github.com/gfdgd-xi/deepin-community-live-cd/"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ private slots:
|
|||||||
|
|
||||||
void on_action_StopQemu_triggered();
|
void on_action_StopQemu_triggered();
|
||||||
|
|
||||||
|
void on_actionQemuDiskAddSpace_triggered();
|
||||||
|
|
||||||
|
void on_getDCLC_triggered();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool stopShowTime = 0;
|
bool stopShowTime = 0;
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
|
|||||||
@@ -239,27 +239,30 @@
|
|||||||
<widget class="QTextBrowser" name="textBrowser_3">
|
<widget class="QTextBrowser" name="textBrowser_3">
|
||||||
<property name="html">
|
<property name="html">
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
hr { height: 1px; border-width: 0; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>
|
li.unchecked::marker { content: "\2610"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">蓝奏云:</span><a href="https://gfdgdxi.lanzoue.com/b01rk9wza"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=" font-size:11pt;"> 密码:6wvf</span></p>
|
li.checked::marker { content: "\2612"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,如果出现上述问题需要安装/降级到以下链接的版本:</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">蓝奏云:</span><a href="https://gfdgdxi.lanzoue.com/b01rk9wza"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;"> 密码:6wvf</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">123 网盘链接:</span><a href="https://www.123pan.com/s/pDSKVv-oypWv"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">123 网盘链接:</span><a href="https://www.123pan.com/s/pDSKVv-oypWv"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">迅雷网盘:</span><a href="https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=" font-size:10pt;"> 提取码:35e5</span></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">迅雷网盘:</span><a href="https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;"> 提取码:35e5</span></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">百度网盘:</span><a href="https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=" font-size:10pt;"> 提取码: me4y</span></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">百度网盘:</span><a href="https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;"> 提取码: me4y</span></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=" font-size:10pt;"> (访问密码: 2061)</span></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;"> (访问密码: 2061)</span></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10pt;">(如果下载这个,系统版本选第二项)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt; font-weight:600;">常用 Windows 软件:</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; font-weight:600;">常用 Windows 软件:</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">百度网盘:链接: </span><a href="https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=" font-size:11pt;"> 提取码: 7s2p </span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">百度网盘:链接: </span><a href="https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;"> 提取码: 7s2p </span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">123网盘:</span><a href="https://www.123pan.com/s/pDSKVv-uCBWv.html"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">123网盘:</span><a href="https://www.123pan.com/s/pDSKVv-uCBWv.html"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>
|
||||||
<hr /></body></html></string>
|
<hr /></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="openLinks">
|
<property name="openLinks">
|
||||||
@@ -281,69 +284,72 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="html">
|
<property name="html">
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
hr { height: 1px; border-width: 0; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">给小白的一段话</span></p>
|
li.unchecked::marker { content: "\2610"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">只限使用 VirtualBox</span></p>
|
li.checked::marker { content: "\2612"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; font-style:italic; text-decoration: underline;">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>
|
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">给小白的一段话</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,</span><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:600; font-style:italic; text-decoration: underline;">只限使用 VirtualBox</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span> )</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:600; font-style:italic; text-decoration: underline;">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:600; text-decoration: underline;">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,</span><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;"> )</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">Qemu 可以安装 Virtio 以优化体验,下载链接:</span><a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:10.5pt;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;"><br /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装是否需要人工进行操作?</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">安装是否需要人工进行操作?</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712191756.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712191756.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712192850.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712192850.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712193527.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712193527.png" /></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">什么样的镜像本程序(可能)不支持自动安装?</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">什么样的镜像本程序(可能)不支持自动安装?</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</span></p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:10.5pt;"><br /></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">默认的虚拟机设置不习惯怎么改?</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">默认的虚拟机设置不习惯怎么改?</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Manager_20220712223602.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Manager_20220712223602.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">3、在这里修改即可</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">3、在这里修改即可</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox_20220712223705.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox_20220712223705.png" /></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装加强功能有什么好处?(只限使用 VirtualBox)</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">安装加强功能有什么好处?(只限使用 VirtualBox)</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、支持鼠标自由从虚拟机和实体机切换</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">1、支持鼠标自由从虚拟机和实体机切换</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、支持虚拟机根据窗口大小自动设置分辨率</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">2、支持虚拟机根据窗口大小自动设置分辨率</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、支持文件共享、剪切板共享、文件拖放</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">3、支持文件共享、剪切板共享、文件拖放</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、支持无缝模式</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">4、支持无缝模式</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_选择区域_20220712224639.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_选择区域_20220712224639.png" /></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">如何安装加强功能?</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:26pt; font-weight:600;">如何安装加强功能?</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、点击“设备”=》“加强功能”</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">1、点击“设备”=》“加强功能”</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图_VirtualBox Machine_20220712142929.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图_VirtualBox Machine_20220712142929.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143006.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143006.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、在弹出的界面点击“是”</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">3、在弹出的界面点击“是”</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143018.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143018.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、一直点“Next”</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">4、一直点“Next”</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143029.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143029.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143037.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143037.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">5、全部选择,然后点击“Install”进行安装</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">5、全部选择,然后点击“Install”进行安装</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143044.png" /></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143044.png" /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt;">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143103.png" /></p></body></html></string>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143103.png" /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="openLinks">
|
<property name="openLinks">
|
||||||
@@ -419,19 +425,22 @@ p, li { white-space: pre-wrap; }
|
|||||||
</property>
|
</property>
|
||||||
<property name="html">
|
<property name="html">
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
hr { height: 1px; border-width: 0; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&lt;Wine 不是一个模拟器&gt;的原意),旨在能更加完美、简单的运行 Windows 应用</p>
|
li.unchecked::marker { content: "\2610"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</p>
|
li.checked::marker { content: "\2612"; }
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">基于 GPL V3 协议开源</p>
|
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">项目地址:</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&lt;Wine 不是一个模拟器&gt;的原意),旨在能更加完美、简单的运行 Windows 应用</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitee:<a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Github:<a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">基于 GPL V3 协议开源</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">项目地址:</span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;"> Gitee:</span><a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;"> Github:</span><a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-family:'Noto Sans CJK SC'; font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</span></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt;">该组件制作者:gfdgd xi</span></p>
|
||||||
<hr />
|
<hr />
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans CJK SC'; font-size:10.5pt;"><br /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="openLinks">
|
<property name="openLinks">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
@@ -455,7 +464,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1058</width>
|
<width>1058</width>
|
||||||
<height>36</height>
|
<height>23</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuVM">
|
<widget class="QMenu" name="menuVM">
|
||||||
@@ -469,6 +478,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="action_StopVirtualBox"/>
|
<addaction name="action_StopVirtualBox"/>
|
||||||
<addaction name="action_StopQemu"/>
|
<addaction name="action_StopQemu"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionQemuDiskAddSpace"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
|
<addaction name="getDCLC"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuVM"/>
|
<addaction name="menuVM"/>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -517,6 +530,16 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>强制停止 Qemu</string>
|
<string>强制停止 Qemu</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionQemuDiskAddSpace">
|
||||||
|
<property name="text">
|
||||||
|
<string>Qemu 磁盘扩容</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="getDCLC">
|
||||||
|
<property name="text">
|
||||||
|
<string>获取 Deepin Community Live CD</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|||||||
@@ -12,7 +12,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
qemu::qemu(QString name, QString managerPath) {
|
qemu::qemu(QString name, QString managerPath)
|
||||||
|
{
|
||||||
if(!QFile::exists(name)){
|
if(!QFile::exists(name)){
|
||||||
this->name = QDir::homePath() + "/Qemu/" + name;
|
this->name = QDir::homePath() + "/Qemu/" + name;
|
||||||
}
|
}
|
||||||
@@ -24,38 +25,54 @@ qemu::qemu(QString name, QString managerPath) {
|
|||||||
|
|
||||||
this->vboxVersion = Command().GetCommand("'" + managerPath + "qemu-system-i386' --version");
|
this->vboxVersion = Command().GetCommand("'" + managerPath + "qemu-system-i386' --version");
|
||||||
}
|
}
|
||||||
int qemu::Create(QString type){
|
|
||||||
|
int qemu::Create(QString type)
|
||||||
|
{
|
||||||
if(!QFile::exists(this->name)){
|
if(!QFile::exists(this->name)){
|
||||||
QDir dir(this->name);
|
QDir dir(this->name);
|
||||||
dir.mkpath(this->name);
|
dir.mkpath(this->name);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::CreateDisk(QString path, int size){
|
|
||||||
|
int qemu::CreateDisk(QString path, int size)
|
||||||
|
{
|
||||||
if(QFile::exists(path)){
|
if(QFile::exists(path)){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return system(("qemu-img create -f qcow2 '" + path + "' " + QString::number(size) + "M").toLatin1());
|
return system(("qemu-img create -f qcow2 '" + path + "' " + QString::number(size) + "M").toLatin1());
|
||||||
}
|
}
|
||||||
int qemu::CreateDiskControl(QString controlName){
|
|
||||||
|
int qemu::CreateDiskControl(QString controlName)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::MountDisk(QString diskPath, QString controlName, int port, int device){
|
|
||||||
|
int qemu::MountDisk(QString diskPath, QString controlName, int port, int device)
|
||||||
|
{
|
||||||
commandOption += "-drive 'file=" + diskPath + ",if=ide,index=" + QString::number(device) + "' ";
|
commandOption += "-drive 'file=" + diskPath + ",if=ide,index=" + QString::number(device) + "' ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::MountISO(QString isoPath, QString controlName, int port, int device){
|
|
||||||
|
int qemu::MountISO(QString isoPath, QString controlName, int port, int device)
|
||||||
|
{
|
||||||
commandOption += "-drive 'media=cdrom,file=" + isoPath + ",if=ide,index=" + QString::number(device) + "' ";
|
commandOption += "-drive 'media=cdrom,file=" + isoPath + ",if=ide,index=" + QString::number(device) + "' ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::BootFirst(QString bootDrive){
|
|
||||||
|
int qemu::BootFirst(QString bootDrive)
|
||||||
|
{
|
||||||
commandOption += "-boot '" + bootDrive + "' ";
|
commandOption += "-boot '" + bootDrive + "' ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetNetBridge(QString netDriver){
|
|
||||||
|
int qemu::SetNetBridge(QString netDriver)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetCPU(int number, int cpuNum, int coreNum){
|
|
||||||
|
int qemu::SetCPU(int number, int cpuNum, int coreNum)
|
||||||
|
{
|
||||||
// commandOption += "-smp " + QString::number(number) + " ";
|
// commandOption += "-smp " + QString::number(number) + " ";
|
||||||
// 调整调用方法
|
// 调整调用方法
|
||||||
//qDebug() << number << " " << cpuNum << " " << coreNum;
|
//qDebug() << number << " " << cpuNum << " " << coreNum;
|
||||||
@@ -65,86 +82,155 @@ int qemu::SetCPU(int number, int cpuNum, int coreNum){
|
|||||||
commandOption += "-smp " + QString::number(number) + ",sockets=" + QString::number(cpuNum) + ",cores=" + QString::number(coreNum / cpuNum) + ",threads=" + QString::number(number / cpuNum / coreNum) + " ";
|
commandOption += "-smp " + QString::number(number) + ",sockets=" + QString::number(cpuNum) + ",cores=" + QString::number(coreNum / cpuNum) + ",threads=" + QString::number(number / cpuNum / coreNum) + " ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetMemory(int memory){
|
|
||||||
|
int qemu::SetMemory(int memory)
|
||||||
|
{
|
||||||
commandOption += "-m " + QString::number(memory) + "M ";
|
commandOption += "-m " + QString::number(memory) + "M ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetRemote(bool setting){
|
|
||||||
|
int qemu::SetRemote(bool setting)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetRemoteConnectSetting(int port){
|
|
||||||
|
int qemu::SetRemoteConnectSetting(int port)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::MountMainDisk(QString diskPath){
|
|
||||||
|
int qemu::MountMainDisk(QString diskPath)
|
||||||
|
{
|
||||||
commandOption += " --hda '" + diskPath + "' ";
|
commandOption += " --hda '" + diskPath + "' ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::StartArmhf(){
|
|
||||||
qDebug() << commandOption;
|
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
|
||||||
return system(("qemu-system-arm -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
|
||||||
}
|
|
||||||
return system(("qemu-system-arm --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
|
||||||
}
|
|
||||||
int qemu::StartAarch64(){
|
|
||||||
qDebug() << commandOption;
|
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
|
||||||
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
|
||||||
}
|
|
||||||
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
|
||||||
}
|
|
||||||
int qemu::StartLoong64(){
|
|
||||||
|
|
||||||
|
int qemu::StartArmhf()
|
||||||
|
{
|
||||||
|
qDebug() << commandOption;
|
||||||
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
|
return system(("qemu-system-arm --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
|
}
|
||||||
|
return system(("qemu-system-arm --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
}
|
}
|
||||||
int qemu::Start(bool unShown){
|
|
||||||
|
int qemu::StartAarch64()
|
||||||
|
{
|
||||||
|
QString bootScreenLogo = "";
|
||||||
|
// 判断 boot 文件是否存在
|
||||||
|
if(QFile::exists(QCoreApplication::applicationDirPath() + "/boot.jpg")) {
|
||||||
|
bootScreenLogo = QCoreApplication::applicationDirPath() + "/boot.jpg";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// 写入 logo
|
||||||
|
QFile::copy(":/boot.jpg", "/tmp/deep-wine-runner-boot.jpg");
|
||||||
|
bootScreenLogo = "/tmp/deep-wine-runner-boot.jpg";
|
||||||
|
}
|
||||||
|
qDebug() << commandOption;
|
||||||
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
|
return system(("qemu-system-aarch64 --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
|
}
|
||||||
|
return system(("qemu-system-aarch64 --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
int qemu::StartLoong64()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int qemu::Start(bool unShown)
|
||||||
|
{
|
||||||
|
QString newCommandOption = commandOption;
|
||||||
|
QString qemuPath = "qemu-system-x86_64";
|
||||||
|
qDebug() << GetBootLogoPath();
|
||||||
|
if(isUEFI) {
|
||||||
|
newCommandOption += " -vga none -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 ";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
newCommandOption += " -vga virtio -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 ";
|
||||||
|
}
|
||||||
|
// UOS 3a4000 使用程序自带的 qemu
|
||||||
|
QString info = SystemInfo().toLower();
|
||||||
|
if(info.contains("uos") || info.contains("unio")) {
|
||||||
|
// 判断架构
|
||||||
|
QString arch = GetArch();
|
||||||
|
if(arch == "mips64" || arch == "mipsel64") {
|
||||||
|
qemuPath = "bwrap --dev-bind / / --bind '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so' /usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/bin/qemu-system-x86_64' ";
|
||||||
|
}
|
||||||
|
}
|
||||||
qDebug() << commandOption;
|
qDebug() << commandOption;
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
}
|
}
|
||||||
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk -nic model=rtl8139 " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -nic model=rtl8139 " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
}
|
}
|
||||||
int qemu::Stop(){
|
int qemu::Stop()
|
||||||
|
{
|
||||||
system("killall qemu-system-x86_64 -9");
|
system("killall qemu-system-x86_64 -9");
|
||||||
system("killall qemu-system-aarch64 -9");
|
system("killall qemu-system-aarch64 -9");
|
||||||
system("killall qemu-system-arm -9");
|
system("killall qemu-system-arm -9");
|
||||||
system("killall kvm -9");
|
system("killall kvm -9");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::Delete(){
|
|
||||||
|
int qemu::Delete()
|
||||||
|
{
|
||||||
return system(("rm -rfv '" + name + "'").toLatin1());
|
return system(("rm -rfv '" + name + "'").toLatin1());
|
||||||
}
|
}
|
||||||
int qemu::SetDisplayMemory(int memory){
|
|
||||||
|
int qemu::SetDisplayMemory(int memory)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::InstallGuessAdditions(QString controlName, int port, int device){
|
|
||||||
|
int qemu::InstallGuessAdditions(QString controlName, int port, int device)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::EnabledAudio(){
|
|
||||||
commandOption += "-soundhw all ";
|
int qemu::EnabledAudio()
|
||||||
|
{
|
||||||
|
commandOption += "-device AC97 -device ES1370 -device intel-hda -device hda-duplex ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::EnabledClipboardMode(){
|
|
||||||
|
int qemu::EnabledClipboardMode()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::EnabledDraganddrop(){
|
|
||||||
|
int qemu::EnabledDraganddrop()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::ShareFile(QString name, QString path){
|
|
||||||
|
int qemu::ShareFile(QString name, QString path)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetVBoxSVGA(){
|
|
||||||
|
int qemu::SetVBoxSVGA()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetMousePS2(){
|
|
||||||
|
int qemu::SetMousePS2()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::SetKeyboardPS2(){
|
|
||||||
|
int qemu::SetKeyboardPS2()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::OpenUSB(){
|
|
||||||
|
int qemu::OpenUSB()
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::UseAarch64EFI(){
|
|
||||||
|
int qemu::UseAarch64EFI()
|
||||||
|
{
|
||||||
if(QFile::exists("/usr/share/qemu-efi-aarch64/QEMU_EFI.fd")){
|
if(QFile::exists("/usr/share/qemu-efi-aarch64/QEMU_EFI.fd")){
|
||||||
commandOption += "--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ";
|
commandOption += "--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ";
|
||||||
return 0;
|
return 0;
|
||||||
@@ -155,7 +241,9 @@ int qemu::UseAarch64EFI(){
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
int qemu::UseArmhfEFI(){
|
|
||||||
|
int qemu::UseArmhfEFI()
|
||||||
|
{
|
||||||
if(QFile::exists("/usr/share/AAVMF/AAVMF32_CODE.fd")){
|
if(QFile::exists("/usr/share/AAVMF/AAVMF32_CODE.fd")){
|
||||||
commandOption += "--bios /usr/share/AAVMF/AAVMF32_CODE.fd ";
|
commandOption += "--bios /usr/share/AAVMF/AAVMF32_CODE.fd ";
|
||||||
return 0;
|
return 0;
|
||||||
@@ -166,13 +254,20 @@ int qemu::UseArmhfEFI(){
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
int qemu::UseLoongarch64EFI(){
|
|
||||||
|
int qemu::UseLoongarch64EFI()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
int qemu::UseOtherEFI(QString fdFilePath){
|
|
||||||
|
int qemu::UseOtherEFI(QString fdFilePath)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
int qemu::EnabledUEFI(bool status){
|
|
||||||
|
int qemu::EnabledUEFI(bool status)
|
||||||
|
{
|
||||||
|
isUEFI = status;
|
||||||
if(!status){
|
if(!status){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -186,10 +281,57 @@ int qemu::EnabledUEFI(bool status){
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
int qemu::MountMainISO(QString isoPath){
|
|
||||||
|
int qemu::MountMainISO(QString isoPath)
|
||||||
|
{
|
||||||
commandOption += "--cdrom '" + isoPath + "' ";
|
commandOption += "--cdrom '" + isoPath + "' ";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int qemu::AutoInstall(QString iso){
|
|
||||||
|
int qemu::AutoInstall(QString iso)
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int qemu::AddDiskSpace(QString path, double data)
|
||||||
|
{
|
||||||
|
return system(("qemu-img resize '" + path + "' +" + QString::number(data) + "G").toUtf8());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString qemu::GetBootLogoPath()
|
||||||
|
{
|
||||||
|
QString bootScreenLogo = "";
|
||||||
|
// 判断 boot 文件是否存在
|
||||||
|
if(QFile::exists(QCoreApplication::applicationDirPath() + "/boot.jpg")) {
|
||||||
|
bootScreenLogo = QCoreApplication::applicationDirPath() + "/boot.jpg";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// 写入 logo
|
||||||
|
if(QFile::exists("/tmp/deep-wine-runner-boot.jpg")) {
|
||||||
|
QFile::remove("/tmp/deep-wine-runner-boot.jpg");
|
||||||
|
}
|
||||||
|
QFile::copy(":/boot.jpg", "/tmp/deep-wine-runner-boot.jpg");
|
||||||
|
bootScreenLogo = "/tmp/deep-wine-runner-boot.jpg";
|
||||||
|
}
|
||||||
|
return bootScreenLogo;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString qemu::SystemInfo()
|
||||||
|
{
|
||||||
|
QFile file("/etc/os-version");
|
||||||
|
file.open(QFile::ReadOnly);
|
||||||
|
QString data = file.readAll();
|
||||||
|
file.close();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString qemu::GetArch()
|
||||||
|
{
|
||||||
|
QProcess process;
|
||||||
|
process.start("uname", QStringList() << "-m");
|
||||||
|
process.waitForStarted();
|
||||||
|
process.waitForFinished();
|
||||||
|
QString data = process.readAllStandardError();
|
||||||
|
process.close();
|
||||||
|
return data.replace("\n", "").replace(" ", "");
|
||||||
|
}
|
||||||
|
|||||||
@@ -49,8 +49,13 @@ public:
|
|||||||
int UseArmhfEFI();
|
int UseArmhfEFI();
|
||||||
int UseLoongarch64EFI();
|
int UseLoongarch64EFI();
|
||||||
int UseOtherEFI(QString fdFilePath);
|
int UseOtherEFI(QString fdFilePath);
|
||||||
|
int AddDiskSpace(QString path, double data);
|
||||||
private:
|
private:
|
||||||
QString commandOption = "";
|
QString commandOption = "";
|
||||||
|
bool isUEFI = false;
|
||||||
|
QString GetBootLogoPath();
|
||||||
|
QString SystemInfo();
|
||||||
|
QString GetArch();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
<file>LANG/virtualmachine-en_US.qm</file>
|
<file>LANG/virtualmachine-en_US.qm</file>
|
||||||
<file>LANG/virtualmachine-en_US.ts</file>
|
<file>LANG/virtualmachine-en_US.ts</file>
|
||||||
<file>application-vnd.oasis.opendocument.text.svg</file>
|
<file>application-vnd.oasis.opendocument.text.svg</file>
|
||||||
|
<file>boot.jpg</file>
|
||||||
|
<file>boot.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/picture">
|
<qresource prefix="/picture">
|
||||||
<file>截图_VirtualBox Machine_20220712142929.png</file>
|
<file>截图_VirtualBox Machine_20220712142929.png</file>
|
||||||
|
|||||||
131
VM/MipsQemu/etc/init.d/qemu-guest-agent
Executable file
@@ -0,0 +1,131 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: qemu-guest-agent
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: QEMU Guest Agent startup script
|
||||||
|
# Description: Start the QEMU Guest Agent if we're running
|
||||||
|
# in a QEMU virtual machine
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Author: Michael Tokarev <mjt@tls.msk.ru>
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="QEMU Guest Agent"
|
||||||
|
NAME=qemu-ga
|
||||||
|
DAEMON=/usr/sbin/$NAME
|
||||||
|
PIDFILE=/var/run/$NAME.pid
|
||||||
|
|
||||||
|
# config
|
||||||
|
DAEMON_ARGS=""
|
||||||
|
# default transport
|
||||||
|
TRANSPORT=virtio-serial:/dev/virtio-ports/org.qemu.guest_agent.0
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Read configuration variable file if it is present
|
||||||
|
[ -r /etc/default/qemu-guest-agent ] && . /etc/default/qemu-guest-agent
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
||||||
|
# and status_of_proc is working.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that checks whenever system has necessary environment
|
||||||
|
# It also splits $TRANSPORT into $method and $path
|
||||||
|
#
|
||||||
|
do_check_transport() {
|
||||||
|
method=${TRANSPORT%%:*}; path=${TRANSPORT#*:}
|
||||||
|
case "$method" in
|
||||||
|
virtio-serial | isa-serial)
|
||||||
|
if [ ! -e "$path" ]; then
|
||||||
|
log_warning_msg "$NAME: transport endpoint not found, not starting"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON --test > /dev/null \
|
||||||
|
|| return 1
|
||||||
|
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON -- --daemonize \
|
||||||
|
$DAEMON_ARGS -m "$method" -p "$path" \
|
||||||
|
|| return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been stopped
|
||||||
|
# 1 if daemon was already stopped
|
||||||
|
# 2 if daemon could not be stopped
|
||||||
|
# other if a failure occurred
|
||||||
|
start-stop-daemon -Kq --retry=TERM/30/KILL/5 -p $PIDFILE --name $NAME
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
do_check_transport || exit 0
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" $NAME
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" $NAME
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" $NAME && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
restart|force-reload) # we do not support reload
|
||||||
|
do_check_transport || exit 0
|
||||||
|
log_daemon_msg "Restarting $DESC" $NAME
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1)
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0) log_end_msg 0 ;;
|
||||||
|
1) log_end_msg 1 ;; # Old process is still running
|
||||||
|
*) log_end_msg 1 ;; # Failed to start
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Failed to stop
|
||||||
|
log_end_msg 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: /etc/init.d/qemu-guest-agent {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
||||||
6
VM/MipsQemu/etc/qemu-ifdown
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Script to shut down a network (tap) device for qemu.
|
||||||
|
# Initially this script is empty, but you can configure,
|
||||||
|
# for example, accounting info here.
|
||||||
|
|
||||||
|
:
|
||||||
42
VM/MipsQemu/etc/qemu-ifup
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Script to bring a network (tap) device for qemu up.
|
||||||
|
# The idea is to add the tap device to the same bridge
|
||||||
|
# as we have default routing to.
|
||||||
|
|
||||||
|
# in order to be able to find brctl
|
||||||
|
PATH=$PATH:/sbin:/usr/sbin
|
||||||
|
ip=$(which ip)
|
||||||
|
|
||||||
|
if [ -n "$ip" ]; then
|
||||||
|
ip link set "$1" up
|
||||||
|
else
|
||||||
|
brctl=$(which brctl)
|
||||||
|
if [ ! "$ip" -o ! "$brctl" ]; then
|
||||||
|
echo "W: $0: not doing any bridge processing: neither ip nor brctl utility not found" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
ifconfig "$1" 0.0.0.0 up
|
||||||
|
fi
|
||||||
|
|
||||||
|
switch=$(ip route ls | \
|
||||||
|
awk '/^default / {
|
||||||
|
for(i=0;i<NF;i++) { if ($i == "dev") { print $(i+1); next; } }
|
||||||
|
}'
|
||||||
|
)
|
||||||
|
|
||||||
|
# only add the interface to default-route bridge if we
|
||||||
|
# have such interface (with default route) and if that
|
||||||
|
# interface is actually a bridge.
|
||||||
|
# It is possible to have several default routes too
|
||||||
|
for br in $switch; do
|
||||||
|
if [ -d /sys/class/net/$br/bridge/. ]; then
|
||||||
|
if [ -n "$ip" ]; then
|
||||||
|
ip link set "$1" master "$br"
|
||||||
|
else
|
||||||
|
brctl addif $br "$1"
|
||||||
|
fi
|
||||||
|
exit # exit with status of the previous command
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "W: $0: no bridge for guest interface found" >&2
|
||||||
33
VM/MipsQemu/etc/qemu/fsfreeze-hook
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script is executed when a guest agent receives fsfreeze-freeze and
|
||||||
|
# fsfreeze-thaw command, if it is specified in --fsfreeze-hook (-F)
|
||||||
|
# option of qemu-ga or placed in default path (/etc/qemu/fsfreeze-hook).
|
||||||
|
# When the agent receives fsfreeze-freeze request, this script is issued with
|
||||||
|
# "freeze" argument before the filesystem is frozen. And for fsfreeze-thaw
|
||||||
|
# request, it is issued with "thaw" argument after filesystem is thawed.
|
||||||
|
|
||||||
|
LOGFILE=/var/log/qga-fsfreeze-hook.log
|
||||||
|
FSFREEZE_D=$(dirname -- "$0")/fsfreeze-hook.d
|
||||||
|
|
||||||
|
# Check whether file $1 is a backup or rpm-generated file and should be ignored
|
||||||
|
is_ignored_file() {
|
||||||
|
case "$1" in
|
||||||
|
*~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave | *.sample | *.dpkg-old | *.dpkg-new | *.dpkg-tmp | *.dpkg-dist | *.dpkg-bak | *.dpkg-backup | *.dpkg-remove)
|
||||||
|
return 0 ;;
|
||||||
|
esac
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate executables in directory "fsfreeze-hook.d" with the specified args
|
||||||
|
[ ! -d "$FSFREEZE_D" ] && exit 0
|
||||||
|
for file in "$FSFREEZE_D"/* ; do
|
||||||
|
is_ignored_file "$file" && continue
|
||||||
|
[ -x "$file" ] || continue
|
||||||
|
printf "$(date): execute $file $@\n" >>$LOGFILE
|
||||||
|
"$file" "$@" >>$LOGFILE 2>&1
|
||||||
|
STATUS=$?
|
||||||
|
printf "$(date): $file finished with status=$STATUS\n" >>$LOGFILE
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
11
VM/MipsQemu/lib/systemd/system/qemu-guest-agent.service
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=QEMU Guest Agent
|
||||||
|
BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||||
|
After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=-/usr/sbin/qemu-ga
|
||||||
|
Restart=always
|
||||||
|
RestartSec=0
|
||||||
|
|
||||||
|
[Install]
|
||||||
2
VM/MipsQemu/lib/udev/rules.d/60-qemu-guest-agent.rules
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
|
||||||
|
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"
|
||||||
BIN
VM/MipsQemu/usr/bin/ivshmem-client
Executable file
BIN
VM/MipsQemu/usr/bin/ivshmem-server
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-img
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-io
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-nbd
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-pr-helper
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-system-aarch64
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-system-arm
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-system-i386
Executable file
BIN
VM/MipsQemu/usr/bin/qemu-system-x86_64
Executable file
BIN
VM/MipsQemu/usr/bin/virtfs-proxy-helper
Executable file
1
VM/MipsQemu/usr/lib/ipxe/82540em.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-e1000.rom
|
||||||
1
VM/MipsQemu/usr/lib/ipxe/e1000_82540.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-e1000.rom
|
||||||
1
VM/MipsQemu/usr/lib/ipxe/eepro100.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-eepro100.rom
|
||||||
1
VM/MipsQemu/usr/lib/ipxe/ns8390.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-ne2k_pci.rom
|
||||||
1
VM/MipsQemu/usr/lib/ipxe/pcnet32.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-pcnet.rom
|
||||||
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-e1000.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-e1000e.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-eepro100.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-ne2k_pci.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-pcnet.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-rtl8139.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-virtio.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/efi-vmxnet3.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-e1000.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-e1000e.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-eepro100.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-ne2k_pci.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-pcnet.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-rtl8139.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-virtio.rom
Normal file
BIN
VM/MipsQemu/usr/lib/ipxe/qemu/pxe-vmxnet3.rom
Normal file
1
VM/MipsQemu/usr/lib/ipxe/rtl8139.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-rtl8139.rom
|
||||||
1
VM/MipsQemu/usr/lib/ipxe/virtio-net.rom
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
qemu/pxe-virtio.rom
|
||||||
BIN
VM/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/audio-pa.so
Normal file
BIN
VM/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so
Normal file
BIN
VM/MipsQemu/usr/lib/qemu/qemu-bridge-helper
Executable file
BIN
VM/MipsQemu/usr/sbin/qemu-ga
Executable file
141
VM/MipsQemu/usr/sbin/qemu-make-debian-root
Executable file
@@ -0,0 +1,141 @@
|
|||||||
|
#! /bin/sh -e
|
||||||
|
#
|
||||||
|
# $Id: qemu-make-debian-root 353 2008-10-16 20:28:22Z aurel32 $
|
||||||
|
#
|
||||||
|
# Script to make a debian root image.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
which debootstrap >/dev/null || {
|
||||||
|
echo "error: missing debootstrap package" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
which sfdisk >/dev/null || {
|
||||||
|
echo "error: missing fdisk package" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
which mke2fs >/dev/null || {
|
||||||
|
echo "error: missing e2fsprogs package" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
KEEPFS=0
|
||||||
|
SPARSE=0
|
||||||
|
|
||||||
|
while :; do
|
||||||
|
case "$1" in
|
||||||
|
-k)
|
||||||
|
KEEPFS=1
|
||||||
|
;;
|
||||||
|
-s)
|
||||||
|
SPARSE=1
|
||||||
|
;;
|
||||||
|
-ks|-sk)
|
||||||
|
KEEPFS=1
|
||||||
|
SPARSE=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $# -lt 4 ]; then
|
||||||
|
echo Usage: "$0 [-ks] size-in-MB distrib deburl image [files_to_copy_in_/root]" >&2
|
||||||
|
echo "eg $0 150 sid http://proxy:10000/debian qemu" >&2
|
||||||
|
echo "-k keep file system -s sparse image" >&2
|
||||||
|
echo "$0 is normally run as root." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SIZE=$1 # In Mib
|
||||||
|
DISTRO=$2
|
||||||
|
URL=$3
|
||||||
|
IMAGE=$4
|
||||||
|
shift 4
|
||||||
|
|
||||||
|
# now files to copy are in "$@". We don't put them in a variable
|
||||||
|
# because that would coufuse spaces-in-filenames with
|
||||||
|
# whitespace-separation.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $SIZE -lt 130 ]; then
|
||||||
|
echo 'Size must be at least 130 megabytes (Debian unstable takes 100)' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup()
|
||||||
|
{
|
||||||
|
echo Cleaning up... >&2
|
||||||
|
umount -d $TMP_DIR || true
|
||||||
|
losetup -d $LOOP || true
|
||||||
|
rm -f $IMAGE
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
# Create a filesystem: one track for partition table.
|
||||||
|
if [ "$SPARSE" = "1" ]; then
|
||||||
|
truncate -s ${SIZE}M "$IMAGE"
|
||||||
|
else
|
||||||
|
dd bs=1M count=$SIZE if=/dev/zero of=$IMAGE
|
||||||
|
fi
|
||||||
|
|
||||||
|
SECT=63 # first sector of a partition
|
||||||
|
|
||||||
|
# Partition so one partition covers entire disk.
|
||||||
|
echo "$SECT," | sfdisk -uS -L $IMAGE
|
||||||
|
|
||||||
|
# Find an unused loop device and set it up.
|
||||||
|
LOOP=`losetup -f`
|
||||||
|
losetup -o $(($SECT*512)) $LOOP $IMAGE
|
||||||
|
|
||||||
|
# Create filesystem.
|
||||||
|
mke2fs -q -m1 $LOOP
|
||||||
|
|
||||||
|
TMP_DIR="$(mktemp -d /tmp/mount.XXXXXX)" || \
|
||||||
|
{ echo >&2 "Failed to create temporary directory"; exit 1; }
|
||||||
|
|
||||||
|
# Mount it.
|
||||||
|
mount $LOOP $TMP_DIR
|
||||||
|
|
||||||
|
# Do debian install on it.
|
||||||
|
debootstrap --variant=minbase $DISTRO $TMP_DIR $URL
|
||||||
|
|
||||||
|
# Final configuration.
|
||||||
|
cat > $TMP_DIR/etc/fstab <<EOF
|
||||||
|
/dev/hda1 / ext2 errors=remount-ro 0 1
|
||||||
|
proc /proc proc defaults 0 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Console on ttyS0, not tty1, and no other gettys.
|
||||||
|
sed 's,1:2345:respawn:/sbin/getty 38400 tty1,1:2345:respawn:/sbin/getty 38400 ttyS0,' < $TMP_DIR/etc/inittab | sed 's,^.:23:respawn.*,,' > $TMP_DIR/etc/inittab.new
|
||||||
|
mv $TMP_DIR/etc/inittab.new $TMP_DIR/etc/inittab
|
||||||
|
|
||||||
|
# Set hostname to base of image name.
|
||||||
|
basename $IMAGE > $TMP_DIR/etc/hostname
|
||||||
|
|
||||||
|
# Create /etc/shadow
|
||||||
|
chroot $TMP_DIR pwconv
|
||||||
|
|
||||||
|
# Set root password to "root"
|
||||||
|
sed 's/^root:[^:]*/root:$1$aybpiIGf$cB7iFDNZvViQtQjEZ5HFQ0/' < $TMP_DIR/etc/shadow > $TMP_DIR/etc/shadow.new
|
||||||
|
mv $TMP_DIR/etc/shadow.new $TMP_DIR/etc/shadow
|
||||||
|
|
||||||
|
# Remove packages we don't need
|
||||||
|
chroot $TMP_DIR /usr/bin/dpkg --remove console-common console-tools console-data base-config man-db manpages
|
||||||
|
# Try to remove all libraries: some won't be removable.
|
||||||
|
chroot $TMP_DIR dpkg --remove `chroot $TMP_DIR dpkg --get-selections | sed -n 's/^\(lib[^ \t]*\)[\t ]*install/\1/p'` 2>/dev/null || true
|
||||||
|
|
||||||
|
|
||||||
|
# Copy wanted files to /root if asked to
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
cp -a "$@" $TMP_DIR/root/
|
||||||
|
fi
|
||||||
|
umount -d $TMP_DIR
|
||||||
|
|
||||||
|
trap "" EXIT
|
||||||
|
|
||||||
|
echo Done.
|
||||||