다중 좌석 설정 및 lightdm을 사용한 가상 터미널 전환

다중 좌석 설정 및 lightdm을 사용한 가상 터미널 전환

내 목표는 Ubuntu 컴퓨터에 두 개의 좌석을 두는 것입니다. 모니터 중 하나는 디스플레이링크 칩이 탑재된 Mimo의 USB 터치스크린입니다. xorg.conf를 재구성함으로써 이미 메인 디스플레이로 작동하게 했습니다. 터치 인터페이스도 작동합니다.

그러나 다중 사용자의 경우 xorg.conf를 변경하는 것만으로는 충분하지 않습니다. 추가 로그인 화면도 시작해야 하기 때문입니다. 이것은 lightdm 구성으로 들어가야 합니다.

다중 시트(lightdm.conf)에 대해 lightdm을 구성함으로써 각 ServerLayout(xorg.conf)에 대해 하나씩, 두 개의 X 인스턴스를 시작할 수 있었습니다. 하나는 VT7(가상 터미널 7)에서 실행되고 다른 하나는 VT8에서 실행됩니다. 일반적으로 알려진 바와 같이 단축키 Ctrl + Alt + Fx(x는 터미널 번호)를 사용하여 가상 터미널 간에 전환할 수 있습니다.

이제 문제는 다음과 같습니다. 기본적으로 VT7은 활성화되고 VT8은 비활성화됩니다. 하지만 VT8로 전환하면 활성화되지만 VT7은 비활성화됩니다.

두 X 서버 터미널/서버를 병렬로 실행하려면 어떻게 해야 합니까?

감사합니다.

여기 내 lightdm.conf가 있습니다.

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default

[Seat:1]
xserver-layout=displaylink

다음은 xorg.conf의 관련 부분입니다:

# Two Server Layouts

Section "ServerLayout"
    Identifier     "default"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
    Identifier     "displaylink"
    Screen         "DisplayLinkScreen"
    InputDevice    "Mouse1"
EndSection

# Two Screens

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
        Identifier      "DisplayLinkScreen"
        Device          "DisplayLinkDevice"
        Monitor         "DisplayLinkMonitor"
        SubSection "Display"
                Depth   24
                Modes   "800x480"
        EndSubSection
EndSection

# Two Monitors

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier      "DisplayLinkMonitor"
EndSection

# Two Graphics Cards/Interfaces

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
        Identifier      "DisplayLinkDevice"
        driver          "displaylink"
        Option  "fbdev" "/dev/fb1"
EndSection

# Three Input Devices (the last is touchscreen of the USB monitor)

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/mice"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "InputDevice"
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Device"        "/dev/input/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-event"
EndSection

답변1

아래의 위키 항목을 다시 읽는 중https://help.ubuntu.com/community/MultiseatX, X가 어떻게 호출되는지 살펴봐야 할 것 같습니다. 예를 들어 -sharevts-novtswitch명령줄 옵션은 어떻게든 lightdm.conf.

작동 중인 경우 Wiki 항목을 11.10으로 업데이트하는 것을 고려해 보십시오.

답변2

힌트를 주셔서 감사합니다. -sharevts 스위치가 핵심이었습니다. Lightdm에서는 기본적으로 추가되지 않습니다. /var/log/lightdm/lightdm.log를 보고 사용자 정의 xserver-command 옵션을 추가했는데 이제 드디어 작동합니다! 당신의 도움을 주셔서 감사합니다.

내 마지막 lightdm.conf:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default
xserver-command=/usr/bin/X :0 -layout default -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -sharevts

[Seat:1]
xserver-layout=displaylink
xserver-command=/usr/bin/X :1 -layout displaylink -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch -sharevts

답변3

나는 두 번째 좌석을 위한 별도의 tty 세트가 있어야 하고, 두 번째 X 서버는 그 중 하나에서 실행되어야 한다고 생각합니다. 그런데 커널 콘솔 코드를 살펴보면 콘솔이 하나만 있다는 가정하에 작성된 것으로 보입니다. 전역 변수를 사용하여 가상 콘솔을 단일 디스플레이에 다중화하고 연결된 모든 키보드에서 키보드 입력을 읽습니다.

다중 시트를 지원하려면 Linux 콘솔 코드를 크게 리팩터링해야 할 것 같습니다.

관련 정보