ฉันจะตั้งค่ามัลติซิทด้วยการ์ดกราฟิกฟิสิคัลการ์ดเดียวได้อย่างไร


16

ฉันมีคอมพิวเตอร์ Ubuntu ที่ใช้ 16.04 และฉันมีการ์ดกราฟิกเดียวเท่านั้น

รายละเอียด

พี่ชายของฉันและฉันต่อสู้ตลอดเวลาว่าใครจะใช้มันดังนั้นฉันจึงพยายามทำให้ทุกคนเป็นที่โปรดปรานและติดตั้งมัลติซีต

  • ฉันจะเป็นseat0ด้วยพอร์ต VGA, เมาส์, แป้นพิมพ์และแจ็คหูฟังที่ด้านหลังของคอมพิวเตอร์

  • เขาจะเป็นseat1ด้วยพอร์ต DVI-D, เมาส์, คีย์บอร์ดและแจ็คหูฟังที่ด้านหน้าของคอมพิวเตอร์

  • เราจะแบ่งปันดองเกิล Wi-Fi เพื่อเชื่อมต่ออินเทอร์เน็ต

ฉันสูญเสียวิธีการทำเช่นนี้อย่างสมบูรณ์ ฉันจะสร้างไฟล์อะไรพวกเขาไปที่ไหนและฉันจะใส่อะไรลงไป? คำตอบที่มีรูปแบบดี (ไม่ใช่คู่มือออนไลน์) น่าจะดี

ผลลัพธ์ของ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)

ผลลัพธ์ของ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

1
ฉันไม่เคยลอง แต่คุณดูWIKIหรือไม่?
ridgy

@ridgy นั่นสำหรับการ์ดหลายใบ
Soren

1
มีวิธีแก้ไขเพิ่มเติมบางอย่าง (เช่น Xephyr ลองดูคำตอบของคำถามนี้ ) แต่สำหรับแอพพลิเคชั่นที่ใช้ GPU มากเช่นเกมต่าง ๆ เหล่านี้จะไม่ preformant เพียงพอเท่าที่ฉันเห็นและจะไม่เซิร์ฟเวอร์ X ระยะไกลเนื่องจากพวกเขาไม่สามารถใช้ GPU ของคอมพิวเตอร์ที่ใช้ไคลเอนต์ X สำหรับการเรนเดอร์
ridgy

xdmcp จะใช้เอ็นจิ้นการเรนเดอร์ในพื้นที่และแสดงผลจากระยะไกลถึงแม้ว่าคุณอาจจะไม่ได้รับ xtenstions ที่ทันสมัยกว่านี้มากขึ้นเช่นความเย้ายวนใจในการทำงาน
Amias

คำตอบ:


7

ดังนั้นนี่คือแนวทางเก่า แต่อาจยังใช้งานได้ MultiSeatOneCard

บางบันทึกก่อนที่ฉันจะเริ่มนำคำแนะนำไป:

  • การgdmกำหนดค่าทั้งหมดที่คุณต้องการอาจไม่จำเป็น หากคุณมี GNOME แสดงว่าคุณมีอยู่แล้วgdm(และรุ่นที่ใหม่กว่า) ความสามัคคีใช้lightdmงานซึ่งดูเหมือนว่ามันจะไม่ทำงาน คุณควรติดตั้งgdmและใช้งานเพื่อลองคู่มือนี้

  • เตือนอีกครั้งหนึ่ง: คู่มือเก่า มันอาจใช้งานไม่ได้มันอาจพัง Ubuntu มันอาจระเบิดเครื่องของคุณ โปรดใช้ความระมัดระวังและสำรองข้อมูล

ตอนนี้สำหรับคำแนะนำ

wiki แนะนำให้ปิดใช้งานหน้าจอเริ่มต้นด้วยสิ่งต่อไปนี้ ฉันไม่รู้ว่าขั้นตอนยังใช้งานได้หรือไม่

มีอะไรผิดพลาดเกิดขึ้นกับการตั้งค่านี้และหน้าจอแฟนซีในระหว่างการบู๊ตก็ไม่ได้ช่วยอะไร เพื่อปิดการใช้งาน (อาจเป็นการชั่วคราว) แก้ไข / etc / default / grub และเปลี่ยนการมอบหมาย GRUB_CMDLINE_LINUX_DEFAULT จากสาดที่เงียบสงบไปเป็น noplymouth nomodeset จากนั้นรัน sudo update-grub

ส่วนถัดไปอาจข้ามไปได้ เพียงเสียบจอภาพทั้งสองและตั้งค่าเป็น "โหมดขยาย" ในการตั้งค่าจอภาพของคุณ

ตอนนี้สำหรับการกำหนดค่าบางอย่าง

ก่อนอื่นให้ค้นหาใน /etc/gdm/gdm.conf ในส่วน [เซิร์ฟเวอร์] บรรทัดที่ขึ้นต้นด้วย 0 = .... (ไม่มี # ที่จุดเริ่มต้นของบรรทัด) ใส่ # ไว้ข้างหน้า

ที่ควรจะเป็นไปได้โดยไม่มีปัญหามาก

จากนั้นแก้ไข /etc/gdm/gdm.conf-custom ค้นหาส่วน [ความปลอดภัย] และเพิ่มบรรทัด PamStack = gdm-2.20

นี่คือที่ที่คุณอาจมีปัญหา แทนที่จะเป็น 2.20 คุณอาจต้องลอง 3.18 (สำหรับ 16.04)

ค้นหาส่วน [xdmcp] และเพิ่มบรรทัด Enable = true

ที่ควรทำให้ไม่มีปัญหา

XDMCP ไม่ใช่โปรโตคอลที่ปลอดภัยเป็นพิเศษดังนั้นจึงเป็นความคิดที่ดีที่จะทำการปฏิเสธการเชื่อมต่อ gdm จากคอมพิวเตอร์เครื่องอื่น เพิ่มบรรทัด gdm: 127. * ใน /etc/hosts.allow และบรรทัด gdm: ALL ใน /etc/hosts.deny

สิ่งนี้คุณสามารถเลือกที่จะไม่ทำ หากคุณสนใจเรื่องความปลอดภัยฉันขอแนะนำให้คุณทำ แต่ไม่เช่นนั้นฉันคิดว่าคุณสามารถทิ้งไว้ได้

ตอนนี้รีสตาร์ท gdmโดยการรีบูตเครื่อง (อาจเป็นวิธีที่ง่ายที่สุด) หากคุณเห็นหน้าจอการเข้าสู่ระบบ GDM เกิดอะไรขึ้น ตรวจสอบคู่มือต้นฉบับและปรับแต่งการตั้งค่าบางอย่าง

หากคุณไม่มีหน้าจอเข้าสู่ระบบให้ไปที่ TTY และเรียกใช้ X -query 127.0.0.1และเรียกใช้ ถ้า GDM ขึ้นมาฆ่ามัน (กลับไปที่ TTY แล้วฆ่าตรงนั้น)

สร้างผู้ใช้ใหม่ชื่อmonitor:

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

สร้างไฟล์ (คำแนะนำไม่มีรายละเอียดชื่อ) /etc/udev/rules.d/my.rulesและใส่ในต่อไปนี้:

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

การติดตั้งแพ็คเกจบางอย่าง:

apt-get install x11-utils xserver-xephyr

เราจำเป็นต้องแยกจอภาพด้วยนามแฝงบางอย่าง:

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

เข้าสู่ระบบmonitorของผู้ใช้ใน TTY ~/.xsessionและสร้าง

ใส่สิ่งนี้ไว้ข้างใน:

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"

อย่าลืมแก้ไขเพื่อสะท้อนความละเอียดของคุณ

เรียกใช้startxในฐานะmonitorผู้ใช้และดูว่าใช้งานได้หรือไม่

สิ่งนี้จำเป็นต้องเริ่มต้นเมื่อเริ่มระบบหากใช้งานได้ดังนั้นให้เพิ่มส่วนนี้ที่ส่วนท้ายของ~/.profile(สำหรับบัญชีจอภาพ):

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

ทำลาย GUI และไปที่ TTY6 เข้าสู่ระบบเป็นmonitorและมันควรจะเริ่มขึ้น

หากใช้งานได้ให้แก้ไขไฟล์/etc/init/tty6.confเป็นรูทและแทนที่บรรทัดที่ขึ้นต้น/sbin/gettyด้วย

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

หากใช้งานได้ แต่คุณต้องการแยกเสียงการเชื่อมโยงด้วย คู่มือMultiSeatX ที่มีบางสิ่งสำหรับคุณ

โปรดจำไว้ว่าสิ่งนี้อาจไม่ทำงาน ฉันพิมพ์ข้อความนี้ค่อนข้างเร็วและหวังว่าจะแก้ไขให้ชัดเจนขึ้นเล็กน้อยหากจำเป็น ฉันได้ดัดแปลงบางส่วนของคู่มือเพื่อให้ทันสมัยและเพิ่มโอกาสในการประสบความสำเร็จ

โชคดี!


มีความรู้เกี่ยวกับการย้ายพอร์ตไปยัง LightDM หรือไม่?
Soren

@moo_we_all_do ไม่ไม่มีเลย ฉันสามารถเข้าใจแนวคิดที่เฉพาะเจาะจงว่ากระบวนการนี้ทำอะไรและทำไมจึงเป็นสิ่งจำเป็น แต่ฉันไม่รู้ว่า GDM ทำงานอย่างไรกับ LightDM มันไม่ใช่ปัญหาที่จะใช้ GDM แทน LightDM หน้าจอเข้าสู่ระบบของคุณเปลี่ยนแปลงและเกี่ยวข้องกับมัน (มองเห็นได้)
TheWanderer

3

มันฟังดูเท่ห์มากฉันเลยท่องไปรอบ ๆ และพบว่ารายการวิกินี้เชื่อมโยงกับรายการวิกิพีเดียนี้ โดยทั่วไปจะใช้เครื่องมือที่เรียกว่า xephyr เพื่อจัดระเบียบอินพุต / เอาต์พุต

รายการนี้ค่อนข้างเก่าและอัปเดตเฉพาะสำหรับ Ubuntu 12.04 แต่ xephyr ยังอยู่ใน repos มาตรฐาน (เพิ่งทดสอบการแสดงตนบนคอมพิวเตอร์ของฉัน) การแก้ไขการกำหนดค่าดูเหมือนซับซ้อน แต่ตรงไปตรงมาอาจยังใช้งานได้ นี่คือบล็อกเดทจากปี 2014 ที่ทำให้เรามีความหวัง

โปรดแจ้งให้เราทราบว่าคุณเป็นอย่างไร!


ดีมากขอบคุณ! คุณสามารถโพสต์คำแนะนำในเวอร์ชันที่แก้ไขซึ่งตรงกับการตั้งค่าของฉันในคำตอบของคุณได้หรือไม่?
Soren

ฉันไม่คิดว่ามันจะเป็นไปได้ คุณจะต้องดำเนินการเกือบทุกขั้นตอน (ยกเว้นการติดตั้งครั้งแรก) นอกจากนี้ gdm จะถูกแทนที่ด้วย lightdm บางทีคุณอาจมีโชคกับตัวช่วยสร้างที่กล่าวถึงในรายการ ? แต่ดูเหมือนว่ามันจะล้าสมัยไปแล้ว ...
Jeroen

1

ฉันไม่คิดว่ามันเป็นไปได้เพราะคุณไม่มีอุปกรณ์อินพุตสองชุด เป็นไปได้ว่าเครื่องมืออย่าง synergy อาจช่วยได้ที่นี่ แต่มันจะยุ่ง

คุณสามารถรับเครื่องอื่นและใช้เป็นเทอร์มินัล X ซึ่งจะต้องเร็วพอที่จะอัปเดตหน้าจอดังนั้นขอให้เพื่อนของคุณสำหรับพีซีเก่าของพวกเขา หากคุณกำหนดค่าเครื่องดั้งเดิมให้เรียกใช้ XDMCP เครื่องจะอนุญาตให้เครื่องอื่นเข้าสู่เดสก์ท็อปของตนเอง

ฟังก์ชั่นนี้มีกำหนดจะถูกลบออกจากอูบุนตูเมื่อ X windows ถูกแทนที่ด้วย Mir นี่อาจจะเป็นช่วงเวลาของการเปิดตัว LTS ครั้งต่อไป

นี่คือคำแนะนำของ Ubuntu สำหรับ XDMCP - https://wiki.ubuntu.com/xdmcp


เรามีคอมพิวเตอร์ที่ดีเพียง 1 เครื่องเท่านั้น คอมพิวเตอร์เครื่องอื่นของเราช้า มันจะใช้ได้ไหม
Soren

ฉันได้ทำสิ่งนี้กับแล็ปท็อปก่อนเพนเที่ยมและการ์ด wifi ของซิสโก้ aironet
Amias

คุณสามารถเพิ่มคำแนะนำให้กับคำตอบนี้ได้หรือไม่? เช่น "แก้ไข (ไฟล์) เพื่อพูดสิ่งนี้: .. "
Soren

ฉันมีคำแนะนำ xdmcp ครอบคลุมในคู่มือนั้นและยาวเกินไปที่จะทำซ้ำที่นี่ การกำหนดค่า xdmcp นั้นไม่สำคัญ
Amias
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.