Як я можу налаштувати мультиседіатор лише за допомогою однієї фізичної відеокарти?


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 Це для декількох карт
Soren

1
Є ще кілька рішень (наприклад, Ксефір, подивіться відповідь на це запитання ). Але для таких інтенсивних додатків, як ігри, жодна з цих програм не буде достатньо форматною, наскільки я бачу, і віддалені сервери X, оскільки вони не можуть використовувати GPU комп'ютера, на якому працює клієнт X для візуалізації.
гребінь

xdmcp використовуватиме локальний механізм візуалізації та демонструватиметься віддалено, хоча ви, можливо, не зможете працювати з більш привабливими сучаснішими розтяжками, такими як гламур
Amias

Відповіді:


7

Отже, це старий путівник, але він все ще може працювати. MultiSeatOneCard .

Деякі зауваження, перш ніж я розпочну вносити інструкції:

  • Вся gdmконфігурація, яку він хоче зробити, може навіть не знадобитися. Якщо у вас є GNOME, у вас вже є gdm(і набагато новіша версія). Єдність використовує lightdm, схоже, це може не працювати. Ви повинні встановити gdmта використовувати його, щоб спробувати цей посібник.

  • Ще одне попередження: СТАРИЙ ПОСІБНИК. Це може не працювати, це може зламати Ubuntu, це може підірвати вашу машину (не дуже, звичайно). Будьте обережні і резервні копії.

Тепер для екскурсовода

Вікі пропонує вимкнути екран сплеску із наступним. Я не знаю, чи все ще працює процедура чи ні.

З цією настройкою багато може піти не так, і вигадливий екран сплеску під час завантаження не допомагає. Щоб відключити його (можливо тимчасово), редагуйте / etc / default / grub та змініть призначення GRUB_CMDLINE_LINUX_DEFAULT з тихого сплеску на noodeset noplymouth. Потім запустіть 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як root та замініть рядок, починаючи /sbin/gettyз

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

Якщо це працює, але ви хочете також розділити аудіо, у пов'язаному посібнику MultiSeatX є деякі матеріали для вас.

Пам'ятайте, що це може не спрацювати. Я набрав це досить швидко, і, сподіваюсь, відредагую його, щоб було трохи зрозуміліше, якщо потрібно. Я адаптував частини посібника, щоб бути більш сучасними та збільшувати шанси на успіх.

Удачі!


Якісь знання про перенесення до LightDM?
Сорен

@moo_we_all_do ні, зовсім немає. Я можу отримати лише дещо конкретне уявлення про те, що робить ця процедура, і навіщо вона потрібна, але я не знаю, як GDM працює проти LightDM. Використовувати GDM замість LightDM, справді не проблема. Ваш екран для входу змінюється, і це стосується цього (помітно).
The Wanderer

3

Це звучить дуже круто, тому я переглянув і знайшов цей запис у Вікі як пов’язаний із цим записом у Вікіпедії . В основному він використовує інструмент під назвою xephyr для організації входів / виходів.

Запис досить старий і оновлений лише для ubuntu 12.04, але xephyr все ще знаходиться у стандартних репостах (якраз перевіряв його наявність на моєму комп’ютері). Редагування конфігурації здається складним, але досить простим, воно може працювати. Ось щоденник із 2014 року, який також сподівається.

Будь ласка, повідомте нам, як ви проїжджаєте!


Приємно, дякую! Чи можете ви опублікувати відредаговану версію інструкцій, яка відповідає моїй настройці у вашій відповіді?
Сорен

Я не думаю, що це навіть можливо. Вам потрібно буде виконати майже всі кроки (крім початкової установки), також gdm замінено на lightdm. Можливо, вам пощастило з майстром, згаданим у публікації ? Але також той здається застарілим ...
Єроен

1

Я не думаю, що це можливо, тому що ви не можете мати два набори пристроїв введення. Тут може допомогти такий інструмент, як синергія, але він буде безладним.

Ви можете отримати іншу машину і використовувати її як X Terminal, для оновлення екрана потрібно буде досить швидко, тому попросіть своїх друзів про їх старий ПК. Якщо ви налаштуєте свою оригінальну машину для запуску XDMCP, вона дозволить іншій машині увійти на свій робочий стіл.

Цю функціональність планується видалити з ubuntu, коли X вікна замінять на Mir, це, мабуть, буде приблизно під час наступного випуску LTS.

Ось посібник ubuntu до XDMCP - https://wiki.ubuntu.com/xdmcp


У нас є лише 1 хороший комп’ютер. Наші інші комп’ютери повільні. Це би спрацювало?
Сорен

Я зробив це з ноутбуком pre pentium та wifi-карткою cisco aironet
Amias

Чи можете ви додати відповіді до цієї відповіді? Наприклад, "Редагувати (файл), щоб сказати це: .."
Сорен

У мене, інструкції xdmcp містяться в цьому посібнику і занадто довгі для відтворення тут. Конфігурація xdmcp нетривіальна.
Амія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.