Pertanyaan Bagaimana saya bisa mengatur multiseat hanya dengan satu kartu grafis fisik?


Saya memiliki komputer Ubuntu yang menjalankan 16.04, dan saya hanya memiliki satu kartu grafis.

Specs

Saudaraku dan aku selalu berebut siapa yang akan menggunakannya, jadi saya mencoba untuk melakukan semua kebaikan dan menginstal multiseat.

  • saya akan seat0, dengan port VGA, mouse, keyboard, dan jack headphone di bagian belakang komputer.

  • Dia akan menjadi seat1, dengan port DVI-D, mouse, keyboard, dan jack headphone di bagian depan komputer.

  • Kami akan berbagi dongle Wi-Fi untuk terhubung ke internet.

Saya benar-benar bingung tentang cara melakukan ini. File apa yang saya buat, ke mana mereka pergi, dan apa yang saya masukkan ke dalamnya? Jawaban yang diformat dengan baik (bukan panduan online) akan menyenangkan.

Output dari lspci:

00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation C220 Series Chipset Family H81 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
01:00.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
01:00.1 System peripheral: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:01.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:05.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:07.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:09.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
03:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
04:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
05:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
06:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
08:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)

Output dari ls /dev/input/by-path/:

pci-0000:00:14.0-usb-0:1:1.2-event-kbd
pci-0000:00:14.0-usb-0:2:1.0-event-kbd
pci-0000:00:14.0-usb-0:7:1.0-event-mouse
pci-0000:00:14.0-usb-0:1:1.2-event-mouse
pci-0000:00:14.0-usb-0:3.1:1.0-event-mouse
pci-0000:00:14.0-usb-0:7:1.0-mouse
pci-0000:00:14.0-usb-0:1:1.2-mouse
pci-0000:00:14.0-usb-0:3.1:1.0-mouse
platform-eeepc-wmi-event

13
2017-08-28 22:29


asal


Saya tidak pernah mencoba, tetapi apakah Anda melihat WIKI? - ridgy
@ridgy Itu untuk multi kartu - TsundereBug
Ada beberapa solusi lagi (seperti Xephyr, lihat jawabannya pertanyaan ini). Tetapi untuk aplikasi intensif GPU seperti game, tidak satu pun dari ini akan cukup mumpuni, sejauh yang saya lihat, juga tidak akan menggunakan server X karena mereka tidak dapat menggunakan GPU dari komputer yang menjalankan klien X untuk rendering. - ridgy
xdmcp akan menggunakan mesin rendering lokal dan menampilkan dari jarak jauh, meskipun Anda mungkin tidak mendapatkan beberapa xtenstions yang lebih modern seperti glamor untuk bekerja - Amias


Jawaban:


Jadi ini adalah panduan lama, tetapi mungkin masih berfungsi. MultiSeatOneCard.

Beberapa catatan sebelum saya mulai membawa instruksi:

  • Semua gdm konfigurasi yang ingin Anda lakukan mungkin bahkan tidak diperlukan. Jika Anda memiliki GNOME, Anda sudah memilikinya gdm (dan versi yang jauh lebih baru). Penggunaan Unity lightdm, yang sepertinya tidak berfungsi. Anda harus menginstal gdm dan gunakan untuk mencoba panduan ini.

  • Hanya peringatan lain: PANDUAN LAMA. Ini mungkin tidak berfungsi, ini dapat merusak Ubuntu, itu mungkin meledakkan mesin Anda (tidak benar-benar tentu saja). Harap berhati-hati dan kembalikan barang-barang.

Sekarang untuk panduannya

Wiki menyarankan menonaktifkan layar splash dengan yang berikut. Saya tidak tahu apakah prosedurnya masih berfungsi atau tidak.

Banyak yang bisa salah dengan pengaturan ini dan layar splash yang menarik selama boot tidak membantu. Untuk menonaktifkannya (mungkin untuk sementara) edit / etc / default / grub dan ubah tugas GRUB_CMDLINE_LINUX_DEFAULT dari percikan tenang ke nomodeset noplymouth. Kemudian jalankan sudo update-grub.

Bagian selanjutnya, tentang "desktop yang diperluas" mungkin juga bisa dilewati. Cukup colokkan kedua monitor dan setel ke "mode tambahan" di pengaturan monitor Anda.

Sekarang, untuk beberapa konfigurasi.

Pertama, temukan di /etc/gdm/gdm.conf, di bagian [servers] sebuah baris yang dimulai dengan 0 = .... (tanpa # di awal baris). Letakkan # di depannya.

Itu harus mungkin tanpa banyak masalah.

Kemudian edit /etc/gdm/gdm.conf-custom. Temukan bagian [keamanan] dan tambahkan baris PamStack = gdm-2.20.

Di sinilah Anda mungkin memiliki masalah. Daripada 2.20, Anda mungkin perlu mencoba 3.18 (ini untuk 16.04).

temukan bagian [xdmcp] dan tambahkan sebuah baris Enable = true.

Itu seharusnya tidak menimbulkan masalah.

XDMCP bukanlah protokol yang sangat aman, jadi ini adalah ide yang bagus untuk membuat gdm menolak koneksi dari komputer lain. Tambahkan baris gdm: 127. * di /etc/hosts.allow dan baris gdm: ALL di /etc/hosts.deny.

Ini, Anda dapat memilih untuk tidak melakukannya. Jika Anda peduli dengan keamanan, saya sarankan Anda melakukannya, tetapi jika tidak, saya pikir Anda dapat meninggalkannya.

Sekarang mulai ulang gdm dengan me-reboot (mungkin cara termudah). Jika Anda melihat layar masuk GDM, ada sesuatu yang terjadi. Periksa panduan asli dan atur beberapa pengaturan.

Jika Anda tidak memiliki layar masuk, buka TTY dan jalankan X -query 127.0.0.1. Jika GDM muncul, bunuh saja (kembalilah ke TTY dan bunuh di sana).

Buat pengguna baru bernama monitor:

addgroup --gid 983 monitor
adduser --uid 983 --gid 983 monitor

Buat file (panduan tidak memiliki spesifikasi nama) di /etc/udev/rules.d/my.rules dan masukkan berikut ini:

SUBSYSTEM=="input", OWNER="monitor", GROUP="monitor"

Beberapa instalasi paket:

apt-get install x11-utils xserver-xephyr

Kita perlu memisahkan monitor dengan beberapa alias:

ln -s xmessage /usr/bin/xmessage0
ln -s xmessage /usr/bin/xmessage1

Masuk ke dalam monitor pengguna di TTY dan buat ~/.xsession.

Masukkan ini ke dalam:

runscreen () {
    # $1 = number
    # $2 = geometry
    local xpid winid k
    while :; do
        xmessage$1 -geometry $2 "Window $1" &
        xpid=$!
        k=10
        while \
            winid=`xwininfo -name xmessage$1|grep 'Window id'|cut -d' ' -f4` \
            && [ $k -gt 0 -a ! "$winid" ]
        do
            sleep 1
            k=$(($k - 1))
        done
        if [ "$winid" ]; then
            Xephyr :1$1 -parent "$winid" -dpms -keybd "evdev,,device=$3,$xkb" -mouse "evdev,,device=$4" -query 127.0.0.1 
        fi
        kill $xpid
        sleep 3
        kill -9 $xpid
    done 
}

# For some reason I was unable to set the following in xorg.conf
# We need to turn off power management of the main X server because it doesn't
# see either of the keyboards and the mice so it will enter power-saving mode
# after 10 minutes
xset s off
xset dpms 0 0 0
xset -dpms

xkb='xkbrules=xorg,xkbmodel=evdev,xkblayout=us'

# PS/2 keyboard and mouse
kbd1=`ls /dev/input/by-path/platform-*-event-kbd`
mouse1=`ls /dev/input/by-path/platform-*-event-mouse`

# USB keyboard and mouse
kbd2=`ls /dev/input/by-path/pci-*-event-kbd`
mouse2=`ls /dev/input/by-path/pci-*-event-mouse`

runscreen 1 1280x1024+1920+0 "$kbd2" "$mouse2" &
runscreen 0 1920x1080+0+0 "$kbd1" "$mouse1"

Ingatlah untuk mengeditnya agar mencerminkan resolusi Anda.

Menjalankan startx sebagai monitor pengguna dan lihat apakah berfungsi.

Ini perlu dibuat untuk memulai saat boot jika berhasil, jadi tambahkan ini ke akhir ~/.profile (untuk akun monitor):

if [ "`tty`" = /dev/tty6 ]; then
    exec startx
fi

Bunuh GUI dan pergi ke TTY6. Masuk sebagai monitor dan itu harus dimulai.

Jika itu berhasil, edit file /etc/init/tty6.conf sebagai root dan mengganti baris yang dimulai dengan /sbin/getty dengan

exec /bin/login -f monitor tty6 </dev/tty6 >/dev/tty6 2>&1

Jika berhasil, tetapi Anda juga ingin memisahkan audio, tautan MultiSeatX Panduan memiliki beberapa hal untuk Anda.

Harap diingat ini mungkin tidak berfungsi. Saya mengetik ini agak cepat dan mudah-mudahan akan mengeditnya menjadi sedikit lebih jelas jika diperlukan. Saya telah mengadaptasi bagian-bagian dari panduan ini untuk lebih up-to-date dan meningkatkan peluang untuk sukses. 

Semoga berhasil!


4
2017-09-07 21:24



Pengetahuan apa pun tentang porting ke LightDM? - TsundereBug
@moo_we_all_do tidak, tidak sama sekali. Saya hanya bisa mendapatkan ide yang agak spesifik tentang prosedur ini, dan mengapa itu diperlukan, tetapi saya tidak tahu bagaimana GDM bekerja vs LightDM. Ini tidak benar-benar masalah untuk menggunakan GDM, bukan LightDM sekalipun. Layar login Anda berubah dan itu saja (terlihat). - TheWanderer


Saya tidak berpikir ini mungkin karena Anda tidak dapat memiliki dua set perangkat input. Mungkin alat seperti sinergi dapat membantu di sini tetapi itu akan menjadi berantakan.

Anda bisa mendapatkan mesin lain dan menggunakannya sebagai X Terminal, ini hanya perlu cukup cepat untuk memperbarui layar jadi tanyakan teman Anda untuk komputer lama mereka. Jika Anda mengkonfigurasi mesin asli Anda untuk menjalankan XDMCP maka akan memungkinkan mesin lain untuk login ke desktop sendiri.

Fungsionalitas ini dijadwalkan untuk dihapus dari ubuntu ketika X windows diganti dengan Mir, ini mungkin akan sekitar waktu rilis LTS berikutnya.

Berikut ini panduan ubuntu untuk XDMCP - https://wiki.ubuntu.com/xdmcp


1
2017-09-02 11:14



Kami hanya memiliki 1 komputer yang bagus. Komputer kami yang lain lambat. Ini akan berhasil? - TsundereBug
Saya telah melakukan ini dengan laptop pra pentium dan kartu wifi cisco aironet - Amias
Bisakah Anda menambahkan instruksi untuk jawaban ini? Misalnya. "Edit (file) untuk mengatakan ini: .." - TsundereBug
i have, petunjuk xdmcp semua tercakup dalam panduan itu dan terlalu panjang untuk mereproduksi di sini. konfigurasi xdmcp tidak sepele. - Amias


Kedengarannya sangat keren, jadi saya melihat-lihat dan menemukan entri wiki ini sebagai terkait dari entri wikipedia ini. Pada dasarnya menggunakan alat yang disebut xephyr untuk mengatur input / output.

Entri ini cukup lama dan hanya diperbarui untuk ubuntu 12.04, tetapi xephyr masih dalam repositori standar (baru saja diuji kehadirannya di komputer saya). Penyuntingan konfigurasi tampak rumit tetapi cukup mudah, mungkin masih bisa berfungsi. Sini adalah sebuah blog yang berasal dari 2014, yang membuat orang juga berharap.

Tolong beri tahu kami berapa tarif Anda!


1
2017-09-07 08:15



Terima kasih banyak! Bisakah Anda mengirim versi instruksi yang sudah diedit yang sesuai dengan pengaturan saya dalam jawaban Anda? - TsundereBug
Saya tidak berpikir itu mungkin. Anda harus melakukan hampir semua langkah (kecuali pemasangan awal), juga gdm sekarang digantikan oleh lightdm. Mungkin Anda beruntung dengan wizard yang disebutkan di entri? Tetapi juga yang tampaknya usang ... - Jeroen