Làm cách nào tôi có thể thiết lập nhiều trang chỉ với một card đồ họa vật lý?


16

Tôi có một máy tính Ubuntu chạy 16.04 và tôi chỉ có một card đồ họa.

Thông số kỹ thuật

Anh trai tôi và tôi liên tục đấu tranh về việc ai sẽ sử dụng nó, vì vậy tôi đang cố gắng làm mọi người ủng hộ và cài đặt nhiều trang.

  • Tôi sẽ seat0, với cổng VGA, chuột, bàn phím và giắc cắm tai nghe ở mặt sau của máy tính.

  • Anh ta sẽ seat1, với cổng DVI-D, chuột, bàn phím và giắc cắm tai nghe ở mặt trước của máy tính.

  • Chúng tôi sẽ chia sẻ khóa Wi-Fi để kết nối với internet.

Tôi hoàn toàn không biết làm thế nào để làm điều này. Những tập tin nào tôi tạo ra, chúng đi đâu và tôi đặt chúng vào đâu? Một câu trả lời được định dạng tốt (không phải là một hướng dẫn trực tuyến) sẽ tốt đẹp.

Đầu ra của 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)

Đầu ra của 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
Tôi chưa bao giờ thử, nhưng bạn có nhìn vào WIKI không?
lố lăng

@ridgy Đó là cho nhiều thẻ
Soren

1
Có một số giải pháp khác (như Xephyr, hãy xem câu trả lời cho Câu hỏi này ). Nhưng đối với các ứng dụng chuyên sâu về GPU như các trò chơi, cả hai ứng dụng này sẽ không đủ khả năng, theo như tôi thấy, cũng như các máy chủ X từ xa vì chúng không thể sử dụng GPU của máy tính chạy máy khách X để kết xuất.
lố lăng

xdmcp sẽ sử dụng công cụ kết xuất cục bộ và hiển thị từ xa, mặc dù bạn có thể không nhận được một số xtenstion hiện đại hơn như sự quyến rũ để hoạt động
Amias

Câu trả lời:


7

Vì vậy, đây là một hướng dẫn cũ, nhưng nó vẫn có thể hoạt động. Thẻ đa năng .

Một số lưu ý trước khi tôi bắt đầu mang hướng dẫn qua:

  • Tất cả các gdmcấu hình nó muốn bạn làm có thể không cần thiết. Nếu bạn có Gnome, bạn đã có gdm(và phiên bản mới hơn nhiều). Unity sử dụng lightdm, có vẻ như nó có thể không hoạt động. Bạn nên cài đặt gdmvà sử dụng nó để thử hướng dẫn này.

  • Chỉ cần một cảnh báo khác: HƯỚNG DẪN OLD. Nó có thể không hoạt động, nó có thể phá vỡ Ubuntu, nó có thể làm nổ tung máy của bạn (tất nhiên không thực sự). Hãy cẩn thận và sao lưu lên.

Bây giờ cho hướng dẫn

Wiki đề nghị vô hiệu hóa màn hình giật gân với những điều sau đây. Tôi không biết liệu thủ tục có còn hiệu quả hay không.

Rất nhiều điều có thể sai với thiết lập này và màn hình giật gân lạ mắt trong quá trình khởi động không giúp ích gì. Để vô hiệu hóa nó (có thể tạm thời) chỉnh sửa / etc / default / grub và thay đổi gán GRUB_CMDLINE_LINUX_DEFAULT từ giật gân yên tĩnh sang noplymouth. Sau đó chạy sudo update-grub.

Phần tiếp theo, về "máy tính để bàn mở rộng" có lẽ cũng có thể được bỏ qua. Chỉ cần cắm vào cả hai màn hình và đặt chúng thành "chế độ mở rộng" trong cài đặt màn hình của bạn.

Bây giờ, cho một số cấu hình.

Đầu tiên, tìm trong /etc/gdm/gdm.conf, trong phần [máy chủ] một dòng bắt đầu bằng 0 = .... (không có # ở đầu dòng). Đặt một # ở phía trước của nó.

Điều đó nên có thể mà không gặp nhiều rắc rối.

Sau đó chỉnh sửa /etc/gdm/gdm.conf-custom. Tìm phần [bảo mật] và thêm một dòng PamStack = gdm-2.20.

Đây là nơi bạn có thể có một vấn đề. Thay vì 2.20, bạn có thể cần thử 3.18 (đây là ngày 16.04).

tìm phần [xdmcp] và thêm một dòng Enable = true.

Điều đó sẽ không gây rắc rối.

XDMCP không phải là giao thức đặc biệt an toàn, do đó, nên thực hiện gdm từ chối kết nối từ các máy tính khác. Thêm một dòng gdm: 127. * trong /etc/hosts.allow và một dòng gdm: ALL in /etc/hosts.deny.

Điều này, bạn có thể chọn không làm. Nếu bạn quan tâm đến bảo mật, tôi khuyên bạn nên làm điều đó, nhưng nếu không, tôi nghĩ bạn có thể rời bỏ nó.

Bây giờ khởi động lại gdm bằng cách khởi động lại (có lẽ là cách dễ nhất). Nếu bạn thấy màn hình đăng nhập GDM, có gì đó không ổn. Kiểm tra hướng dẫn ban đầu và điều chỉnh một số cài đặt.

Nếu bạn không có màn hình đăng nhập, hãy truy cập TTY và chạy X -query 127.0.0.1 . Nếu GDM xuất hiện, giết nó (quay trở lại TTY và giết nó ở đó).

Tạo một người dùng mới được gọi là monitor:

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

Tạo một tệp (hướng dẫn không có thông số kỹ thuật tên) trong /etc/udev/rules.d/my.rulesvà đặt vào sau:

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

Một số cài đặt gói:

apt-get install x11-utils xserver-xephyr

Chúng ta cần tách màn hình với một số bí danh:

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

Đăng nhập vào monitorngười dùng trong TTY và tạo ~/.xsession.

Đặt cái này vào trong:

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"

Hãy nhớ chỉnh sửa nó để phản ánh nghị quyết của bạn.

Chạy startxnhư monitorngười dùng và xem nếu nó hoạt động.

Điều này cần được thực hiện để bắt đầu khi khởi động nếu nó hoạt động, vì vậy hãy thêm phần này vào cuối ~/.profile(đối với tài khoản màn hình):

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

Giết GUI và đi đến TTY6. Đăng nhập như monitorvà nó sẽ bắt đầu lên.

Nếu nó hoạt động, chỉnh sửa tệp /etc/init/tty6.confdưới dạng root và thay thế dòng bắt đầu /sbin/gettybằng

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

Nếu nó hoạt động, nhưng bạn cũng muốn tách âm thanh, MultiSeatX được liên kết hướng dẫn có một số thứ dành cho bạn.

Xin nhớ điều này có thể không hoạt động. Tôi đã gõ nó lên khá nhanh và hy vọng sẽ chỉnh sửa nó rõ ràng hơn một chút nếu cần thiết. Tôi đã điều chỉnh các phần của hướng dẫn để cập nhật hơn và tăng cơ hội thành công.

Chúc may mắn!


Bất kỳ kiến ​​thức về chuyển sang LightDM?
Soren

@moo_we_all_do không, không có gì cả. Tôi chỉ có thể có được một ý tưởng cụ thể về quy trình này làm gì và tại sao nó cần thiết, nhưng tôi không biết GDM hoạt động như thế nào so với LightDM. Đó thực sự không phải là vấn đề khi sử dụng GDM thay vì LightDM. Màn hình đăng nhập của bạn thay đổi và đó là về nó (rõ ràng).
TheWanderer

3

Nghe có vẻ rất hay, vì vậy tôi đã duyệt qua và thấy mục wiki này được liên kết từ mục wikipedia này . Về cơ bản, nó sử dụng một công cụ gọi là xephyr để tổ chức đầu vào / đầu ra.

Mục nhập này khá cũ và chỉ được cập nhật cho Ubuntu 12.04, nhưng xephyr vẫn ở trong bản repos tiêu chuẩn (chỉ thử nghiệm sự hiện diện của nó trên máy tính của tôi). Các chỉnh sửa cấu hình có vẻ phức tạp nhưng khá đơn giản, nó vẫn có thể hoạt động. Đây là một blog có từ năm 2014, khiến người ta cũng phải hy vọng.

Xin vui lòng cho chúng tôi biết giá vé của bạn như thế nào!


Rất vui, cảm ơn! Bạn có thể đăng một phiên bản chỉnh sửa xuống của hướng dẫn phù hợp với thiết lập của tôi trong câu trả lời của bạn không?
Soren

Tôi không nghĩ rằng nó thậm chí có thể. Bạn sẽ cần phải thực hiện gần như tất cả các bước (ngoại trừ cài đặt ban đầu), gdm hiện được thay thế bằng lightdm. Có lẽ bạn có may mắn với các thuật sĩ được đề cập trong mục ? Nhưng cũng có vẻ như đã lỗi thời ...
Jeroen

1

Tôi không nghĩ điều này là có thể bởi vì bạn không thể có hai bộ thiết bị đầu vào. Nó có thể là một công cụ như sức mạnh tổng hợp có thể giúp đỡ ở đây nhưng nó sẽ lộn xộn.

Bạn có thể lấy một máy khác và sử dụng nó như X Terminal, điều này chỉ cần đủ nhanh để cập nhật màn hình, vì vậy hãy hỏi bạn bè của bạn cho máy tính cũ của họ. Nếu bạn định cấu hình máy ban đầu của mình để chạy XDMCP thì nó sẽ cho phép máy kia đăng nhập vào máy tính để bàn của chính nó.

Chức năng này được lên kế hoạch để loại bỏ khỏi Ubuntu khi các cửa sổ X được thay thế bằng Mir, điều này có lẽ sẽ vào khoảng thời gian phát hành LTS tiếp theo.

Dưới đây là hướng dẫn của ubfox về XDMCP - https://wiki.ubfox.com/xdmcp


Chúng tôi chỉ có 1 máy tính tốt. Các máy tính khác của chúng tôi rất chậm. Điều này sẽ làm việc?
Soren

Tôi đã thực hiện điều này với một máy tính xách tay pentium trước và thẻ wifi cisco aironet
Amias

Bạn có thể thêm hướng dẫn cho câu trả lời này? Ví dụ: "Chỉnh sửa (tệp) để nói điều này: .."
Soren

tôi có, các hướng dẫn xdmcp đều được đề cập trong hướng dẫn đó và quá dài để sao chép ở đây. Cấu hình xdmcp là không tầm thường.
Amias
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.