看板 Linux 關於我們 聯絡資訊
我想用最新版,但不相容於我的舊系統的 kdevelop ,所以試著放在 docker 中使用。 但不知為何總是無法啟動。 docker 中使用的是 debian buster,為了硬體加速,nv 驅動也裝了。 glxgears 、 konsole 都可以開,就 kdevelop 不行。 請問要如何使用呢? ------------------ docker 啟動指令是: docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/snd --net=host --shm-size 2g fdc 執行後的錯誤訊息如下: $ kdevelop QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' kdevplatform.serialization: version-hint not found, seems to be an old version kdevplatform.serialization: "The data-repository at /home/sppmg/.cache/kdevduchain/kdevelop-{999c931b-ece1-4542-82dc-9c2fdaf9d6d3} has to be cleared." QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' kdeinit5: Got EXEC_NEW '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/man.so' from launcher. kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/man.so' Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" "Not connected to D-Bus server" Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" "Not connected to D-Bus server" ...... (重複好幾次) Segmentation fault -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.173.247 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1509982108.A.DFD.html
LinBuoRen: 沒 DBus? 11/06 23:53
lantw44: 嘗試把 $XDG_RUNTIME_DIR 指向的地方掛進去? 11/07 00:11
試過了,但 $XDG_RUNTIME_DIR 是空的,結果一樣。
galic: 應該是container也要能連到host的dbus 11/07 00:27
--net=host 就是為了dbus 加的,參考網址如下:(抱歉,我就不特別縮了) http://ask.projectatomic.io/en/question/3647/how-to-connect-to-session-dbus-from-a-docker-container/?answer=3648#post-id-3648 後來發現 docker 內的 dbus 沒啟動,在 /etc/init.d/dbus start 好像可以連上 dbus ,但仍會 Segmentation fault (所以此時 dbus 是 host 的還是 container 的?) ※ 編輯: sppmg (36.231.173.247), 11/07/2017 14:23:13
galic: 我剛閒著幫你測了一下 跟dbus沒關聯 我用跟你一樣的指令啟 11/07 18:32
galic: 動 出現一樣的錯誤訊息 但是kdevelop 還是正常開啟 11/07 18:32
galic: 你用gdb run看看 segmentation fault之後印一下backtrace 11/07 18:36
sppmg: 太感謝了,我明天試試 11/08 00:22
sppmg: 對了,今天想到會不會和host太舊有關? 我os是Debian 7 ,k 11/08 00:25
sppmg: ernel 升到 3.16 ,不清楚 docker 虛擬化能否處理差異這麼 11/08 00:25
sppmg: 大的情況 11/08 00:25
回報一下剛剛的測試結果: gdb 執行結果:(完整結果請見 https://pastebin.com/d95yfCk8 ) Thread 1 "kdevelop" received signal SIGSEGV, Segmentation fault. __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S:325 325 ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S: No such file or directory. google : memmove-vec-unaligned-erms.S: No such file or directory. 之後,看到 https://github.com/qTox/qTox/issues/3928 也有類似問題,疑似軟體一開始會播放音效,觸發 OpenAL bug (?) mikevmk 提供的解法是 echo "enable-shm = no" >> /etc/pulse/client.conf 我照做了,並配合用 root 啟動 dbus + 以 user 啟動 pulseaudio --start 。 但結果仍然一樣。 (另外也參考過 https://stackoverflow.com/a/28985715 ) 我的host os 是直接用 alsa ,沒有 pulse 。這樣會是問題點嗎? 也曾懷疑會不會是 buster 的 kdevelop 有 bug, 在 buster 上裝了 stretch 的 kdevelop (4:5.0.3-1+b1) 還是一樣的問題。 後來看到 docker hub 上有 yume190/kdevelop (不過是基於 debian:jessie ) 測試後雖然有跳出視窗,但內容一片白。其錯誤訊息如下 X Error: BadShmSeg (invalid shared segment parameter) 159 Extension: 142 (MIT-SHM) Minor opcode: 2 (X_ShmDetach) Resource id: 0x6200013 Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString) Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString) X Error: BadShmSeg (invalid shared segment parameter) 159 Extension: 142 (MIT-SHM) Minor opcode: 3 (X_ShmPutImage) Resource id: 0x620001b 前後是一堆的 X Error 。沒有 Segmentation fault ,但就是沒畫面。 請問 galic 大的 docker os 是哪個呢?如果安裝版本都一樣,或許真是我 host os 的問題,可能要找時間在 VM 裡面測 docker 了。 ※ 編輯: sppmg (36.231.173.247), 11/08/2017 19:10:39
galic: 跟no such file那行沒關係啦 那是gdb想要dump code給你看 11/08 20:00
galic: 看325行長什麼樣子 但是你沒有抓source code所以跟你說沒有 11/08 20:01
galic: 總之那不是重點 看起來是qt5和opengl出了狀況 11/08 20:01
galic: 有可能container裡面的qt5太新了 跟host的x11配不上 11/08 20:02
galic: 回到jessie那個,有run起來又繪製畫面,就代表已經成功一半 11/08 20:02
galic: 你多加的-e QT_X11_NO_MITSHM=1 看看 11/08 20:03
太神啦~~ 開出來了!看到啟動畫面那一刻超感動~~~ 看來我的 debian 7 可以再戰十年了 XD 不過看來 qt/gui 部份也只能到 jessie 了 ... 我最後用的指令是這樣的: $ docker run -ti --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e QT_X11_NO_MITSHM=1 \ yume190/kdevelop (註:進去後要先 adduser ) 剛剛看到 KDevelop 官網有提供 AppImage 可以直接下載。 我還沒測試能否使用。不過如果問題出在 container 和 host 的 x11 問題上, 可能還是無法使用。 非常感謝 galic 大的熱心幫忙! 等等!突然想到如果我用 VNC/ssh -X 等方式而不是用 -v /tmp/.X11-unix 能否執行呢?(我還不會用 -v 之外的方法,所以先隨口問了。) ※ 編輯: sppmg (36.231.173.247), 11/08/2017 23:47:50
Hevak: 推很酷的問答流程XD 11/10 23:48