Linux

在 Linux 上使用 MIT-SHM X11 擴展

  • August 7, 2019

我試圖讓 Blender 在一個設置上工作,其中 Blender 本身在遠端機器上執行,並且它的 UI 通過 X11 呈現給本地機器。

詳細資訊可在此處獲得。

這似乎是一個經常需要的案例,Blender 本身可以通過blender.orgblender-softwaregl的 zip 存檔下載選項提供的執行檔執行,但最高版本為 2.79。

在 2.80 版上,同一個執行檔似乎正在嘗試設置一個需要 MIT-SHM X11 擴展的共享記憶體“對象”。

具體來說,Blender 的執行檔(在遠端機器終端中)抱怨:error code: 159, request code: 143, minor code: 34error text: 159最後以:

Xlib:顯示“localhost:10.0”上缺少副檔名“MIT-SHM”。

此後,本地電腦上的 X11 視窗保持打開狀態,就好像軟體執行沒有問題,但沒有顯示 Blender 的 GUI。

同時,隨著滑鼠沿著本地X11視窗拖動,遠端終端仍然會XLib: extension "MIT-SHM"...報錯。

我試圖找到有關使用 MIT-SHM(安裝、配置、啟用/禁用等)的更多資訊,但除此之外,沒有太多運氣

雖然我仍在努力,但我會感謝任何人對 MIT-SHM 的幫助,因為我懷疑 Blender 不是唯一可能使用它的軟體。這似乎是一個很酷的 X11 功能,但我認為我無法在我的設置伺服器上執行的 Ubuntu 仿生 18.04 上完全控制它。

  1. 如何啟用 MIT-SHM 以使其顯示在xdpyinfo列表中?
  2. 我應該安裝一組特定的庫才能使其完全工作嗎?
  3. 它的使用是否暗示了其他任何東西?(例如,我是否需要啟用任何額外的埠才能使此功能正常工作?)

您不能從遠端 X11 客戶端使用 MIT-SHM。

想想它的首字母縮略詞:SHM = 共享記憶體。如果客戶端和伺服器執行在不同的機器上,那就不能共享記憶體。

XPutImage該擴展應該通過使用 SySV 共享記憶體 API 而不是通過套接字(例如-> XShmPutImage)寫入來加速 X11 請求,這些請求正在傳輸大量數據。它對現代電腦的好處是恕我直言。

引用自:https://unix.stackexchange.com/questions/534314