Fast X untuk tamu LXC di localhost?

12

Bagaimana saya bisa menjalankan aplikasi X di dalam wadah LXC secara efisien?

ssh -Y guest

terlalu lambat - tidak ada akselerasi grafis dengan ssh -Y- semuanya harus melakukan perjalanan melalui jaringan virtual dengan protokol X11 tradisional.

Dapat menyalin-menempel antara aplikasi host dan tamu sangat diinginkan tetapi tidak penting. Menjalankan dua server X, satu untuk host dan satu untuk tamu, adalah (untuk tujuan saya) penting.

Saya tidak bisa menjalankan Xorg asli dari dalam tamu karena mengeluh tentang /dev/tty0hilang, dan saya tidak bisa menggunakan mknodperangkat itu di tamu karena saya mendapat izin ditolak, bahkan ketika melakukannya sebagai root.

Robin Green
sumber

Jawaban:

12

Anda mungkin ingin mencoba xpra atau NX, VNC, dll. Juga lihat VirtualGL jika Anda menginginkan akselerasi GL.

Jika Anda dapat berbagi direktori dengan host, Anda kemudian dapat menggunakan mmap dengan xpra (menentukan path ke file mmap) yang memberikan peningkatan kinerja yang sangat signifikan.

totaam
sumber
Adakah yang bisa membagikan contoh aman tentang cara menggunakan Xpra dan Xephyr dengan LXC?
baptx
3

CATATAN : Pendekatan ini sedikit meretas. Itu juga tidak mendukung copy dan paste antara tuan rumah dan tamu - dan sama sekali tidak aman!

  1. Tambahkan /tmpsebagai sistem file tambahan dalam konfigurasi tamu, yang melewati /tmppada host.
  2. Pastikan server X Anda tidak dikonfigurasikan untuk menerima koneksi jaringan apa pun, karena langkah selanjutnya menonaktifkan keamanan X.
  3. Ketikkan xhost +jendela terminal.
  4. Mulai tamu LXC
  5. Masuk sebagai pengguna biasa yang Anda inginkan di dalam tamu (mis. Bukan sebagai root), dan ketik

DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &

DISPLAY=:2 /etc/X11/xinit/Xsession

di dalam tamu (ganti kedua 2dengan jumlah layar untuk digunakan jika Anda menggunakan ini untuk menghubungkan ke beberapa VM LXC.) Sesuaikan resolusi ( -screen) dan DPI ( -dpi) parameter yang sesuai.

Apa yang dilakukan adalah mengatur koneksi "proxy" ke server X bersarang Xephyr yang berjalan di guest (yang menggunakan soket domain UNIX dan ekstensi MIT-SHM) dan koneksi lain dari Xephyr ke server X host Anda (yang menggunakan soket domain UNIX , tetapi tidak bisa, sejauh yang saya bisa tentukan, menggunakan MIT-SHM, karena desain LXC). Ini tampaknya merupakan konfigurasi tercepat yang dimungkinkan oleh tamu LXC, setidaknya dengan driver open source untuk perangkat keras saya (nvidia).

Robin Green
sumber
Apakah ada cara aman untuk menggunakan Xephyr dengan LXC? Isolasi X11 dengan Xephyr didukung oleh firejail jadi saya kira kita bisa melakukannya dengan benar dengan LXC juga.
baptx