如何仅使用一张物理图形卡设置多座?


16

我有一台运行16.04的Ubuntu计算机,并且只有一张图形卡。

眼镜

我的兄弟和我一直在为谁使用它而奋斗,因此,我试图帮每个人一个忙,并安装多座。

  • 我将是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'Sep

@ridgy适用于多张牌
Soren

1
还有更多解决方案(例如Xephyr,请查看此问题的答案)。但就游戏而言,就GPU密集型应用而言,据我所知,这两种性能都不够出色,远程X服务器也无法使用,因为它们无法使用运行X客户端的计算机的GPU进行渲染。
ridgy

xdmcp将使用本地渲染引擎并远程显示,尽管您可能无法获得像魅力之类的一些更现代的xtenstion
Amias

Answers:


7

因此,这是一个旧指南,但它可能仍然有效。MultiSeatOneCard

在开始介绍说明之前,请注意以下几点:

  • gdm它甚至可能不需要您要进行的所有配置。如果您拥有GNOME,那么您已经拥有了gdm(和更新的版本)。Unity使用lightdm,看起来好像不起作用。您应该安装gdm并使用它来尝试本指南。

  • 另一个警告:旧指南。它可能无法正常工作,可能会破坏Ubuntu,可能会使您的计算机崩溃(当然不是真的)。请小心并备份东西。

现在为指南

Wiki建议通过以下方式禁用启动屏幕。我不知道该程序是否仍然有效。

此设置可能会出错,并且引导过程中的启动画面无效。为了禁用它(可能是暂时的),请编辑/ etc / default / grub并将GRUB_CMDLINE_LINUX_DEFAULT分配从安静启动更改为nomodeset noplymouth。然后运行sudo update-grub。

关于“扩展桌面”的下一部分也可能被跳过。只需插入两台监视器,然后在您的监视器设置中将它们设置为“扩展模式”即可。

现在,进行一些配置。

首先,在/etc/gdm/gdm.conf中的[servers]部分中,找到以0 = ....开头的行(在行首没有#)。在其前面加上#号。

这应该是没有太大麻烦的。

然后编辑/etc/gdm/gdm.conf-custom。找到[security]部分,并添加一行PamStack = gdm-2.20。

这是您可能有问题的地方。代替2.20,您可能需要尝试3.18(这是针对16.04)。

找到[xdmcp]部分,并添加一行Enable = true。

那应该不会造成麻烦。

XDMCP不是特别安全的协议,因此使gdm拒绝来自其他计算机的连接是一个好主意。在/etc/hosts.allow中添加gdm行:127. *,在/etc/hosts.deny中添加gdm行:ALL。

这样,您可以选择不做。如果您关心安全性,建议您这样做,否则,我认为您可以离开。

现在,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"

请记住对其进行编辑以反映您的分辨率。

startxmonitor用户身份运行,看看是否可行。

如果可以运行,则需要在启动时进行启动,因此请将其添加到~/.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的知识?
索伦

@moo_we_all_do否,完全没有。对于此过程的作用以及为什么需要它,我只能有所了解,但是我不知道GDM与LightDM的关系。不过,使用GDM代替LightDM并不是真正的问题。您的登录屏幕将发生变化,并且与此有关(可见)。
TheWanderer

3

听起来很酷,所以我浏览了一下,发现此Wiki条目该Wikipedia条目链接在一起。它基本上使用称为xephyr的工具来组织输入/输出。

该条目相当旧,仅针对ubuntu 12.04进行了更新,但xephyr仍在标准存储库中(仅在我的计算机上测试了它的存在)。配置编辑看起来很复杂,但是非常简单,它可能仍然有效。是2014年的博客,这也使人们充满了希望。

请让我们知道您的票价!


很好,谢谢!您可以在答案中发布适合我的设置的说明的精简版吗?
索伦

我认为这是不可能的。您将需要执行几乎所有步骤(初始安装除外),gdm现在也被lightdm取代。也许您对条目中提到向导很幸运?但这似乎也已经过时了……
Jeroen

1

我认为这是不可能的,因为您不能拥有两组输入设备。可能有协同效应之类的工具在这里可能会有所帮助,但是会很混乱。

您可以购买另一台计算机并将其用作X终端,这只需要足够快的速度来更新屏幕,所以请向您的朋友索要他们的旧PC。如果您将原始计算机配置为运行XDMCP,则它将允许另一台计算机登录到其自己的桌面。

按计划,当X Windows替换为Mir时,将从ubuntu中删除此功能,这大概是在下一个LTS版本发布之时。

这是Ubuntu的XDMCP指南-https: //wiki.ubuntu.com/xdmcp


我们只有1台好的计算机。我们的其他计算机运行缓慢。这样行吗?
索伦

我已经使用奔腾笔记本电脑和cisco aironet wifi卡完成了此操作
Amias,2013年

您可以在此答案中添加说明吗?例如,“编辑(文件)说:..”
索伦

我有,该指南中都涵盖了xdmcp指令,并且在此处无法复制。xdmcp配置非常重要。
Amias'9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.