Linux 與 Steam(一):Wine - Steam
![Eden avatar](/img/elephant.jpg)
By Eden
at 2017-04-24T20:23
at 2017-04-24T20:23
Table of Contents
這篇文章是某個 Linux 笨蛋的 Steam 不專業惡搞文。請不要有太大的期待。
若說 Linux 有什麼罩門,那麼大概是 GAME 這一塊了。
而 Steam,可以說是 Linux 的救贖...
根據 2017 年 3 月 Steam 官方調查數據,
用 Linux 來跑 Steam 的玩家只有 0.77%:
http://store.steampowered.com/hwsurvey/
所以... 嗯... 歡迎加入 0.77%! XD
在 Linux 上想玩 Steam,
按照安裝方法的不同,基本上可以分成 4 種方法:
Wine:
Wine 是個很有雄心壯志的計劃:在 Linux 上實作所有 WINAPI!
講白一點,就是想辨法讓 Windows 的程式可以在 Linux 上跑。
很多程式或遊戲,像 LINE 或 WoW,都可以利用 Wine 在 Linux 上執行。
用 Wine 來執行 Steam 基本上沒什麼大問題啦,
但還是有一些小技巧可以聊一下:
1. 請先確認您已正確驅動您的顯示卡,並確認已開啟 3D 加速。
並請確認 i386 版的驅動程式函式庫,以及以下套件已安裝:
libgl1-mesa-dri libgl1-mesa-dri:i386 libgl1-mesa-glx libgl1-mesa-glx:i386
2. 如果您是較舊的系統,如:Debian Jessie,請順便安裝以下套件:
libc6-i686:i386
部份 32bit 應用程式的效能可能會因此快上 1.5 倍。
3. 可以利用 WINEPREFIX 環境變數,
把 Steam 安裝在各別資料夾下(本文中是 $HOME/Steam)。
它可以讓各個 Wine 應用程式之間不至於互相干擾。
比如說,您可以用此技巧在系統中執行 2 個 LINE。
4. 在較新版的 64 bit WINEPREFIX 裡已經可以直接執行 Win32 程式了,
所以建議直接用 64bit 版的 Wine64 來跑就好了。
反正相容性大概差不多:
該當的地方還是會當,很 Lag 的地方大概也不會有改善。XD
Wine 在預設上應該會建立 64 bit 的 WINEPREFIX。
5. Wine 的開發進度雖然沒辨法一日千里,
但若遇上了什麼問題,可以試試由 Wine 官方所提供的最新版。
而 Wine 官方有提供包括 devel 及 staging 這兩種版本的套件包:
devel:原生版的 Wine
staging:包含了一些實驗中功能的 Wine
安裝後分別是裝在 /opt/wine-devel/ 或 /opt/wine-staging/ 下。
可以的話建議安裝 wine-staging 版,
然後請用 winecfg 開啟 wine-staging 相關功能,
像是 3D 效能依情況可能會增加 10% 以上。
但如果遇到了什麼奇怪的問題,像是貼圖錯誤之類的,
可換回 wine-devel 或舊版 wine 試試看。
注:Debian 官方裡的 wine 套件是 1.8.x 穩定版。
另外還有個 wine-development 是測試版,但版本不若 Wine 官方的新。
也就是,您有 4 個版本的 Wine 可以測試,雖然大概是差不多 XD
其它相關資訊請參閱:https://wine-staging.com/
6. 安裝 Steam 的過程很簡單,就是去官網下載 SteamSetup.exe 後用 wine 執行即可。
其中的 WINEARCH 參數是指定 WINEPREFIX 目錄是使用 Win32 還是 Win64。
預設是 Win64,只需指定一次即可,但事後無法修改:
WINEARCH="win64" WINEPREFIX="$HOME/Steam" WINELOADER="/opt/wine-staging/bin/wine64" /opt/wine-staging/bin/wine64 SteamSetup.exe
另,有部份遊戲會根據您的環境而下載 32bit 或 64bit 版本。
也就是,32bit 及 64bit 的 Steam 遊戲資料夾 steamapps 可能無法共用。
您可以利用 file 指令來檢查遊戲的主程式是 32bit 或 64bit 版本,例:
file "Steam/steamapps/common/Tomb Raider/TombRaider.exe"
TombRaider.exe: PE32 executable (GUI) Intel 80386, for MS Windows
7. 當然也有很歡樂的方法,用 winetricks 安裝!(請先安裝 winetricks 套件)
WINEARCH="win64" WINEPREFIX="$HOME/Steam" winetricks steam
而 winetricks 在安裝完成之後,會套用一個 override-dll.reg 檔,其內容如下:
[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
"*gameoverlayrenderer"=""
但沒有說明這個 override-dll.reg 是修正了啥東西就是了。
winetricks 是一個 Wine 的輔助工具,
用來方便得下載及安裝許多常見的 Windows 應用程式、函式庫、字型等等,
因為實在很無腦所以還蠻受使用者歡迎的。XD
另,還有一個 GUI 的 playonlinux 也可以試試看。
但因為是基於不是很熱門的 wxWidgets,有些人可能不太喜歡。
8. 在安裝過程中,Steam 的使用者介面請務必先設定成『English』。
安裝完成後還有些設定要改,先不要直接執行 Steam。
9. 安裝完成後,請先用 winecfg 程式把 Windows 的版本設定為 Windows XP,
(預設應該會是 Windows 7)
否則一些視窗,像是最新資訊,會一片空白:
WINEPREFIX="$HOME/Steam" WINELOADER="/opt/wine-staging/bin/wine64" /opt/wine-staging/bin/winecfg
注意:Steam 針對 Windows 各版本皆有其不同的 binary 執行檔。
每當您用 winecfg 修改了 Windows 的版本,
再開 Steam 時就會重跑一次下載更新程序。
所以您是可以利用 WINEPREFIX 來執行多種版本的 Steam,
但主要環境建議使用 Windows XP。
另,如果您同時啟動了第 2 個以上的 Steam 登入同一個帳戶,
另一個會被設定成『未連線』就是了。
10. 安裝完成後,請在 $HOME/Steam/user.reg 中先設定好替代字型,如:
[Software\\Wine\\Fonts\\Replacements]
"System"="Noto Sans T Chinese Medium"
"Arial"="Noto Sans T Chinese Medium"
"Fixedsys"="Noto Sans T Chinese Medium"
"Microsoft Sans Serif"="Noto Sans T Chinese Medium"
"MS UI Gothic"="Noto Sans T Chinese Medium"
"Tahoma"="Noto Sans T Chinese Medium"
"Terminal"="Noto Sans T Chinese Medium"
"MingLiU"="Noto Sans T Chinese Medium"
"PMingLiU"="Noto Sans T Chinese Medium"
而系統中的字型列表,可用 fc-list 指令取得。(需安裝 fontconfig 套件)
未設定的話,啟動 Steam 後可能會看到方框字,或無字視窗,
或是功能選單上的中文字被切掉一半等等奇怪問題。
11. 以上準備完成後,加上 -no-cef-sandbox 參數啟動 Steam:
WINEPREFIX="$HOME/Steam" WINELOADER="/opt/wine-staging/bin/wine64" /opt/wine-staging/bin/wine64 $HOME/Steam/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-cef-sandbox
12. 在安裝完 Steam 用戶端程式並正確登入後,
請至【Settings】→【Interface】,
勾掉【Enable DirectWrite for improved font smoothing and kerning】,
然後就可以把介面設定為【繁體中文】了。
13. Wine 理論上最高只能跑 DirectX 9.0c 的遊戲,
DirectX 11 以上的遊戲大概都不能跑;
也就是大部份近期作應該是沒辨法用 Wine 執行的。
Wine 也是有在努力要支援 DirectX 11 以上啦,
但至少短期之內應該是不會有太大的進展。請參閱:
https://www.winehq.org/winapi_stats
有部份遊戲可以加上 -force-d3d9 參數來強制讓它以 D3D9 執行。
14. 也因此,Wine 目前尚無法支援 Steam 的 Big Picture 模式。
因為它會用到一些目前 Wine 尚未實作的 DirectX 10.x 函式庫。
15. Wine 的 3D 效能約是原生程式的 40%~85% 左右。不用抱過度的期待。
16. 音效在 Wine 上應該不會有什麼大問題。
另,如果是要跑 Source Engine,請設定如下:
WINEPREFIX="$HOME/Steam" WINELOADER="/opt/wine-staging/bin/wine64" /opt/wine-staging/bin/wine64 reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f
17. 應該無法在 Steam 中偵測到搖桿。
因為無法進入 BigPicture 模式,所以也無法自行設定搖桿。
解決方案有 2:
A. 用 LD_PRELOAD 的方式加掛 xinput 模組,
但個人測試結果,好像不能用...
請參閱:https://github.com/KoKuToru/koku-xinput-wine
B. 修改 Wine 原始碼以支援 xinput。但需自行重編 Wine。
但好像只能支援 Xbox360 的 USB 有線版搖桿。
請參閱:https://github.com/00cpxxx/wine-xinput
18. Wine 有支援 XIM 輸入法。在中文輸入方面應該問題不大才是。
另,Wine-Staging 對輸入法的 OverTheSpot 輸入模式有較好的支援,
請設定如下:
WINEPREFIX="$HOME/Steam" WINELOADER="/opt/wine-staging/bin/wine64" /opt/wine-staging/bin/wine64 reg add "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v "InputStyle" /t reg_sz /d "overthespot" /f
不過這僅限於採用部份標準視窗元件 WINAPI 的程式,
我論這對大部份遊戲應該是沒什麼效果就是了。XD
19. Steam 有個非常大的問題:介面的字太小... 但這點基本上是無解。
Steam 的 UI 好像是自行開發的名為 VGUI,目的是為了跨平台。
但說起跨平台,Qt 似乎是比較常見的選擇?
Qt 明明也算是蠻成熟的 GUI Toolkit 了。(雖然輸入法...)
像 Blizzard 的 battle.net 就是用 Qt 開發的。
LINE 好像也有用到 Qt 元件...
但總而言之,Steam 的 UI 並不會理會系統中 DPI 的設定,
因此在一些高解析度,像是 4K 螢幕,字會小得和螞蟻差不多,非常傷眼。
有很勉強的解決方案,就是自訂一個字型比較大的 skin 給 Steam 用。
您可以修改 Steam/resource/styles/steam.styles 裡的字型設定,
並將其放入:(目錄請自行建立)
Steam/skins/BigSkin/Resource/Styles/steam.styles
然後在介面中的【面板】中選取【BigSkin】後重啟 Steam 即可。
但 Steam 裡很多地方也沒辨法用 skin 自訂就是了。
您也可以由此下載由敝人自改的 steam.styles:
http://debian.luna.com.tw/other/steam.styles
另,不要直接修改 Steam 內建的 steam.styles。
只要修改任何 Steam 內建的檔案,
Steam 就會再次下載用戶端程式並自行重新安裝。
20. 如果您想讓 Wine 存取位於 Windows 的 NTFS 分割區的 steamapps 資料夾,
建議在安裝 ntfs-3g 套件後,使用以下指令來掛載 NTFS 分割區:
(ntfs-3g 提供了比 Linux Kernel 中內建的 ntfs 更多更完整的功能)
mount /dev/sda5 /mnt -o uid=1000
然後使用符號連結把 Steam 目錄裡的 steamapps 指向 /mnt 裡的 steamapps 即可。
對 Linuxer 而言,用 Wine 來跑 Steam 應該是無奈之舉:
BigPicture 不能用、一堆 DiretcX 11 遊戲也不能跑已經夠糟糕了,
就算能跑的,那半殘的 3D 效能也實在令人嘆氣。
總而言之就是一整個讓人很想哭...
《待續...》
--
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血
--
Tags:
Steam
All Comments
![Hedy avatar](/img/woman.jpg)
By Hedy
at 2017-04-26T06:18
at 2017-04-26T06:18
![Megan avatar](/img/woman-biz.jpg)
By Megan
at 2017-04-29T08:26
at 2017-04-29T08:26
![Necoo avatar](/img/woman-glasses.jpg)
By Necoo
at 2017-04-30T20:35
at 2017-04-30T20:35
![Carolina Franco avatar](/img/beaver.jpg)
By Carolina Franco
at 2017-05-01T22:27
at 2017-05-01T22:27
![Ethan avatar](/img/woman-ring.jpg)
By Ethan
at 2017-05-04T12:11
at 2017-05-04T12:11
![Selena avatar](/img/cat1.jpg)
By Selena
at 2017-05-07T09:57
at 2017-05-07T09:57
![Zora avatar](/img/cat2.jpg)
By Zora
at 2017-05-10T05:59
at 2017-05-10T05:59
![Isabella avatar](/img/cat3.jpg)
By Isabella
at 2017-05-13T14:11
at 2017-05-13T14:11
![Iris avatar](/img/cat4.jpg)
By Iris
at 2017-05-13T19:10
at 2017-05-13T19:10
![Sandy avatar](/img/cat5.jpg)
By Sandy
at 2017-05-15T17:32
at 2017-05-15T17:32
![Leila avatar](/img/girl.jpg)
By Leila
at 2017-05-18T07:31
at 2017-05-18T07:31
![Tristan Cohan avatar](/img/bee.jpg)
By Tristan Cohan
at 2017-05-20T19:21
at 2017-05-20T19:21
![Olga avatar](/img/beret.jpg)
By Olga
at 2017-05-21T10:57
at 2017-05-21T10:57
![Rae avatar](/img/girl1.jpg)
By Rae
at 2017-05-23T13:15
at 2017-05-23T13:15
![Lydia avatar](/img/girl2.jpg)
By Lydia
at 2017-05-24T09:43
at 2017-05-24T09:43
![Harry avatar](/img/boy1.jpg)
By Harry
at 2017-05-25T23:49
at 2017-05-25T23:49
![Olive avatar](/img/boy2.jpg)
By Olive
at 2017-05-26T05:11
at 2017-05-26T05:11
![William avatar](/img/cat1.jpg)
By William
at 2017-05-26T12:17
at 2017-05-26T12:17
![Suhail Hany avatar](/img/cat2.jpg)
By Suhail Hany
at 2017-05-29T02:44
at 2017-05-29T02:44
![Ursula avatar](/img/girl3.jpg)
By Ursula
at 2017-05-31T00:22
at 2017-05-31T00:22
![Irma avatar](/img/girl4.jpg)
By Irma
at 2017-06-04T07:11
at 2017-06-04T07:11
![Lauren avatar](/img/girl5.jpg)
By Lauren
at 2017-06-08T07:09
at 2017-06-08T07:09
![Olive avatar](/img/cat3.jpg)
By Olive
at 2017-06-11T07:43
at 2017-06-11T07:43
![Rae avatar](/img/woman.jpg)
By Rae
at 2017-06-15T13:37
at 2017-06-15T13:37
![Sarah avatar](/img/woman-biz.jpg)
By Sarah
at 2017-06-19T12:23
at 2017-06-19T12:23
![Kama avatar](/img/woman-glasses.jpg)
By Kama
at 2017-06-24T10:36
at 2017-06-24T10:36
![Hedda avatar](/img/woman-ring.jpg)
By Hedda
at 2017-06-24T13:27
at 2017-06-24T13:27
![Linda avatar](/img/cat1.jpg)
By Linda
at 2017-06-28T06:23
at 2017-06-28T06:23
![Lauren avatar](/img/cat2.jpg)
By Lauren
at 2017-06-28T09:10
at 2017-06-28T09:10
![Isla avatar](/img/cat3.jpg)
By Isla
at 2017-06-28T23:32
at 2017-06-28T23:32
![Heather avatar](/img/cat4.jpg)
By Heather
at 2017-06-30T12:17
at 2017-06-30T12:17
![Tracy avatar](/img/cat5.jpg)
By Tracy
at 2017-07-03T23:37
at 2017-07-03T23:37
![Steve avatar](/img/cat4.jpg)
By Steve
at 2017-07-08T09:06
at 2017-07-08T09:06
![Puput avatar](/img/cat5.jpg)
By Puput
at 2017-07-09T10:21
at 2017-07-09T10:21
![Yedda avatar](/img/girl.jpg)
By Yedda
at 2017-07-11T07:01
at 2017-07-11T07:01
![Dorothy avatar](/img/girl1.jpg)
By Dorothy
at 2017-07-15T05:44
at 2017-07-15T05:44
![George avatar](/img/dog1.jpg)
By George
at 2017-07-18T00:54
at 2017-07-18T00:54
![Heather avatar](/img/girl2.jpg)
By Heather
at 2017-07-20T11:23
at 2017-07-20T11:23
![David avatar](/img/dog2.jpg)
By David
at 2017-07-22T22:07
at 2017-07-22T22:07
![Edward Lewis avatar](/img/girl3.jpg)
By Edward Lewis
at 2017-07-25T09:09
at 2017-07-25T09:09
![Queena avatar](/img/girl4.jpg)
By Queena
at 2017-07-30T07:57
at 2017-07-30T07:57
![Iris avatar](/img/girl5.jpg)
By Iris
at 2017-08-01T04:07
at 2017-08-01T04:07
![Queena avatar](/img/woman.jpg)
By Queena
at 2017-08-04T02:54
at 2017-08-04T02:54
![Olivia avatar](/img/woman-biz.jpg)
By Olivia
at 2017-08-07T17:58
at 2017-08-07T17:58
Related Posts
SteamGifts 增加中獎通知Email設定
![Mia avatar](/img/cat5.jpg)
By Mia
at 2017-04-24T09:38
at 2017-04-24T09:38
賽車遊戲求推薦
![Faithe avatar](/img/elephant.jpg)
By Faithe
at 2017-04-24T00:10
at 2017-04-24T00:10
尼爾steam key購買管道
![Selena avatar](/img/cat4.jpg)
By Selena
at 2017-04-23T23:20
at 2017-04-23T23:20
COD將回歸二戰
![Carol avatar](/img/cat3.jpg)
By Carol
at 2017-04-23T18:42
at 2017-04-23T18:42
Darkest Dungeon 最高難度
![Hardy avatar](/img/beaver.jpg)
By Hardy
at 2017-04-23T18:20
at 2017-04-23T18:20