2020年6月4日 星期四

How I fix the "Inconsistency detected by ld.so" issue?


當我要聽歌的時候,從選單中執行了rhythmbox,沒反應...
開了一個terminal,執行rhythmbox,出現錯誤訊息
當時不以為意,直接安裝了另外一套軟體來聽

當我要執行Winetricks時,同樣沒反應
開了一個Terminal,執行Winetricks,結果出現了類似訊息...

mosquito@mosquito-UX31LA ~ $ rhythmbox
Inconsistency detected by ld.so: ../sysdeps/x86_64/dl-machine.h: 519: elf_machine_rela_relative: Assertion `ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE' failed!
mosquito@mosquito-UX31LA ~ $ winetricks
------------------------------------------------------
You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Inconsistency detected by ld.so: ../sysdeps/x86_64/dl-machine.h: 519: elf_machine_rela_relative: Assertion `ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE' failed!
mosquito@mosquito-UX31LA ~ $

這樣哪天要做啥沒法弄的時候就很尷尬了

首先參考了StackOverflow這篇
https://stackoverflow.com/questions/22564780/debugging-ld-inconsistency-detected-by-ld-so
但設定LD_DEBUG=ALL,沒有提供我更多有效的資訊

執行strace Winetricks,噴了很多Log出來,但也沒具體點出是哪裡出問題

從Inconsistency判斷,懷疑是不是檔案系統有問題
執行了一次fsck -y,確實有修正部份問題
但開機後重新執行了一次還是出現Inconsistency detected by ld.so

最後改執行LD_DEBUG=reloc winetricks
10349: relocation processing: /usr/lib/x86_64-linux-gnu/libnotify.so.4 (lazy)
10349:
10349: relocation processing: /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
Inconsistency detected by ld.so: ../sysdeps/x86_64/dl-machine.h: 519: elf_machine_rela_relative: Assertion `ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE' failed!
10350:
10350: relocation processing: /lib/x86_64-linux-gnu/libc.so.6 (lazy)

這次看到,出現Inconsistency detected by ld.so之前正在讀取的Library是libwebkit2gtk-4.0.so.37

重新安裝這個Library
sudo apt-get --reinstall install libwebkit2gtk-4.0-37
重新安裝完成後,再執行了一次Winetricks

It's work!!!
留個紀錄,第一次碰到這個問題...

Brix GB-XM11-3337 售出

偶爾想玩些遊戲,但最近已經很少遊戲完全沒有3D了
先前的魔幻紀元,因為是戰略遊戲,慢歸慢但還加減玩的下去
Skyline只有16fps...

觀望了好一段時間,購入一台ASROCK Deskmini A300 + AMD Ryzen5 2400G
就買原來的Brix GB-XM11-3337給賣了~~

2016/05購入,到2020/05售出
即使是四五年前的電腦了,現在要做基本的文書處理、看看影片或Youtube都還是相當足夠

特地撰文,留個紀念



2019年7月16日 星期二

Age of Wonders III 魔幻紀元三 Linux 繁體中文化

最近Steam上面的魔幻紀元三提供免費下載
剛好這個遊戲有支援Linux,加上我虛弱的硬體勉強可以負荷
就下載來玩看看

基本上是個不錯玩的奇幻策略遊戲
不過沒有中文就看得很痛苦....

剛好這個遊戲有人提供了簡中的Mod
作者提供的安裝介紹
https://steamcommunity.com/sharedfiles/filedetails/?l=schinese&id=743408511
但作者自己沒有嘗試過在Linux下安裝
剩下的就是自己摸索了~
備註一下,我的OS是Linux mint,debian家族或ubuntu家族應該差不多,fedora或是其他的distribution就得自行參考一下


  1. 在Steam平台上安裝Age of Wonders III
  2. 從遊戲頁面當中點選Workshop
  3. 在上方的搜尋bar當中搜尋Chinese,就會出現這個Mod,訂閱這個Mod
  4. 啟動遊戲,在啟動器頁面切換至User Contect分頁,點選Update,就會出現前面訂閱的漢化包,這時可以先關閉遊戲啟動器
  5. 開啟/home/[user name]/.local/share/AoW3/UserContent/汉化包V1 [76561198136587593]
    就會出現作者說的zip壓縮檔
  6. 接著,Linux的遊戲目錄路徑則是
    /home/[user name]/.local/share/Steam/steamapps/common/AoW3
    Path Update: /home/[user name]/.steam/steam/steamapps/common/AoW3
    將目錄下的Language目錄壓縮打包備份
    將前一個步驟中下載的zip壓縮檔解壓縮,覆蓋Language目錄
  7. 重新開啟遊戲,這時的啟動器已經變成簡中的版本
  8. 進入遊戲同樣是簡中,但因為是漢化的緣故,可以看到有部份字串顯示怪怪的,可能是遊戲更新了而漢化包沒有更新


    基本上不影響遊戲性
  9. 先感謝這位老兄提供漢化包,只可惜,我簡中雖然看得懂大部分,看比較短的文章或是技術性文章還ok,看這種類似奇幻文學的東西就看的十分痛苦....
    所以接著處理繁體中文化的部份
  10. 這個漢化包當中,針對Language的部份不清楚是怎麼處理的
    沒有進一步研究他的結構或是多國語言處理方式...(我只是想玩遊戲...)
    但是在逛漢化包的過程中發現了Font目錄
    /home/[user name]/.local/share/Steam/steamapps/common/AoW3/Language/English/Title/Fonts
    Path Update: /home/[user name]/.steam/steam/steamapps/common/AoW3/Language/English/Title/Fonts
    打開來看則是四個檔案大小一致的true type font,ttf檔案
    推測應該是漢化包自帶的中文字型,避免遊戲中沒有正確的中文字型造成方格字問題
  11. 從字型下手,將中文字型更換為簡體轉繁體字型
    (不修改原來的字碼,而是直接修改字體,將字體中的簡體字直接替換成繁體字)
    基本上可以覆蓋90%以上的簡體字
  12. 替換時發現,如果字體的檔案大小太大,進行遊戲時會有一些異常現象,例如對話框或是選單消失的狀況
  13. 實際測試,這一包字型可以直接使用
    重灌狂人 - 將 [簡體中文] 的軟體介面瞬間變成 [繁體中文] 版!
    備份: https://drive.google.com/open?id=1U2kZf67-N7AQAms8v0S3PtTeiu8KXc9o
  14. 下載字體後,替換第10點路徑中的四個字型檔案,檔名維持原來檔名
  15. 更換字體後開啟遊戲
    Launcher還是同樣維持簡中,但不要緊...
    遊戲已經變成繁體中文了...