问题描述
Ubuntu下想要使用QQ有一个比较好的解决方案就是deepin-wine的版本,deepin-wine版本的QQ一共有两个版本,分别是 8.9.1 和 9.1.8 ,前者安装后发现无法登陆,登录时会提示版本过低的问题,于是我换到9.1.8版本后,启动初始化后就无任何信息了,于是开始排查问题
解决方案
首先我们根据上文的启示,因为每一个应用程序对应了一个 xxx.desktop
文件,因此在应用库中的QQ一定也有一个对应的 desktop
文件
我们进入到 /usr/share/applications
,运行
$ ls | grep -i qq
可以发现其中有一个名为 deepin.com.qq.im.desktop
的文件,我们打开后发现内容如下:
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Type=Application
X-Created-By=Deepin WINE Team
Categories=chat;
Icon=deepin.com.qq.im
Exec="/opt/deepinwine/apps/Deepin-QQ/run.sh" -u %u
Name=QQ
Name[zh_CN]=QQ
Comment=Tencent QQ Client on Deepin Wine
StartupWMClass=QQ.exe
MimeType=
可以看到Exec那一栏为 Exec="/opt/deepinwine/apps/Deepin-QQ/run.sh" -u %u
,发现他是运行目录下的一个 run.sh
脚本来启动的。
我们进入目录下直接运行该脚本,查看log信息:
base ❯ ./run.sh
Run Deepin-QQ 9.1.8deepin0 c:/Program Files/Tencent/QQ/Bin/QQ.exe
run Deepin-QQ progress pid
Gtk-Message: 01:16:58.069: GtkDialog mapped without a transient parent. This is discouraged.
total 0
lrwxrwxrwx 1 zs zs 10 6月 16 01:16 c: -> ../drive_c
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com1 -> /dev/ttyS0
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com10 -> /dev/ttyS9
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com11 -> /dev/ttyS10
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com12 -> /dev/ttyS11
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com13 -> /dev/ttyS12
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com14 -> /dev/ttyS13
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com15 -> /dev/ttyS14
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com16 -> /dev/ttyS15
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com17 -> /dev/ttyS16
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com18 -> /dev/ttyS17
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com19 -> /dev/ttyS18
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com2 -> /dev/ttyS1
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com20 -> /dev/ttyS19
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com21 -> /dev/ttyS20
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com22 -> /dev/ttyS21
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com23 -> /dev/ttyS22
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com24 -> /dev/ttyS23
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com25 -> /dev/ttyS24
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com26 -> /dev/ttyS25
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com27 -> /dev/ttyS26
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com28 -> /dev/ttyS27
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com29 -> /dev/ttyS28
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com3 -> /dev/ttyS2
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com30 -> /dev/ttyS29
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com31 -> /dev/ttyS30
lrwxrwxrwx 1 zs zs 11 6月 15 23:36 com32 -> /dev/ttyS31
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com4 -> /dev/ttyS3
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com5 -> /dev/ttyS4
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com6 -> /dev/ttyS5
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com7 -> /dev/ttyS6
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com8 -> /dev/ttyS7
lrwxrwxrwx 1 zs zs 10 6月 15 23:36 com9 -> /dev/ttyS8
lrwxrwxrwx 1 zs zs 8 6月 16 01:16 y: -> /home/zs
lrwxrwxrwx 1 zs zs 1 6月 16 01:16 z: -> /
CallApp Deepin-QQ c:/Program Files/Tencent/QQ/Bin/QQ.exe
2021年 06月 16日 星期三 01:16:58 CST:kill QQ.exe block
2021年 06月 16日 星期三 01:16:58 CST:No wine process found
/home/zs/.deepinwine/Deepin-QQ/drive_c/Program Files/Tencent/QQ/Bin
Starting process c:/Program Files/Tencent/QQ/Bin/QQ.exe ...
/opt/deepinwine/apps/Deepin-QQ
base ❯ wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
wine version: 2.18
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 152 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 207
Current serial number in output stream: 206
可以发现最下面的log信息有一些异常,首先第一行是因为我们是Ubuntu系统,可以暂且不关注
接下来可以看到有一个LibGL的错误,我们通过Google搜索
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 152 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 207
Current serial number in output stream: 206
发现类似的错误及解决方案如下:
从搜索结果来看,这个问题还是非常常见的,用steam也会遇到,一般都是因为电脑安装了64位的NVIDIA显卡驱动,但是因为应用是32位的导致不能兼容,因此无法启动
最终解决方案有两个
- 如果是不常用NVIDIA驱动的人,普通的办公一下,可以搜索网上教程关闭独显,只启用集显,可以发现QQ可以正常启动,
- 重新安装32位的NVIDIA驱动
最后
虽然已经知道了解决方案,但是最终我还是选择卸载掉QQ,安装了wine版本的TIM,感觉和QQ没什么区别,而且更加简洁,而且可以流畅运行,没有N卡兼容问题!大家可以考虑一下~
而且QQ和TIM某些情况下会出现bug,字体全部变为方块,在 deepin-wine-ubuntu 的 Issues 中找到了解决方案 Ubuntu 安装QQ后中文方块解决方法 ,大家有同样困扰的也可以看一下~