Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Xorg マルチシートのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Xorg マルチシート
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:X サーバー]] [[en:Xorg multiseat]] マルチシートとはひとつのコンピュータで同時に複数のユーザーが作業する構成のことです。2台のモニター、2枚のキーボードおよび2個のマウスを使います。以下のようなメリットがあります: * 消費電力が少ない (ひとつのコンピュータしか稼働しない)。 * 購入しなくてはならないハードウェアが少ない。 混乱を避けるために、この記事では以下のように用語を定義します: * スクリーン: Xorg がウィンドウを表示するスクリーンです。スクリーンにはモニターとグラフィックカードを接続します。 * モニター: あなたの目の前にある物理モニターです。 * サーバーレイアウト: どのスクリーン・キーボード・マウスを使用するかの定義です。 * シート: 物理モニター・物理キーボード・物理マウスからなる作業環境です。 ==要件== ===キーボードとマウス=== 標準的な PS/2 または USB キーボードで問題ありません。マウスも同じです。 ===グラフィックハードウェア=== 最高の結果を得るにはグラフィックカードが2枚必要です。 1枚のビデオカードでデュアルヘッド構成にすることもできますが、セカンドモニターでは [[Xephyr]] を使う必要があり、性能を生かすためにディスプレイの解像度が同じである必要があります。 ===ソフトウェア=== 使用するグラフィックカードの Xorg ドライバーと evdev ({{Pkg|xf86-input-evdev}}) ドライバーが必要です。 ==デバイスをシートに接続== udev ルールを作成することで Systemd の loginctl を使ってデバイスをシートに割り当てます。 ===デバイスの確認=== デフォルトのシート (seat0) の状態を確認: {{hc|# loginctl seat-status seat0|<nowiki> seat0 Sessions: *11 Devices: ├ /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0 │ (drm:card0) ├ /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/graphics/fb0 │ (graphics:fb0) "radeondrmfb" ├ /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.1/sound/card1 │ (sound:card1) "Generic" │ └ /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.1/sound/card1/input15 │ (input:input15) "HD-Audio Generic HDMI/DP,pcm=3" ├ /sys/devices/pci0000:00/0000:00:12.0/usb3 │ (usb:usb3) │ ├ /sys/devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1:1.2/0003:046D:C52B.0006/input/input5 │ │ (input:input5) "Logitech Unifying Device. Wireless PID:101b" │ └ /sys/devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1:1.2/0003:046D:C52B.0006/input/input6 │ (input:input6) "Logitech Unifying Device. Wireless PID:200a" ├ /sys/devices/pci0000:00/0000:00:14.2/sound/card0 │ (sound:card0) "SB" │ ├ /sys/devices/pci0000:00/0000:00:14.2/sound/card0/input7 │ │ (input:input7) "HDA ATI SB Line" │ └ /sys/devices/pci0000:00/0000:00:14.2/sound/card0/input9 │ (input:input9) "HDA ATI SB Rear Mic" ├ </nowiki>'''/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0/drm/card1'''<nowiki> │ (drm:card1) ├ </nowiki>'''/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0/graphics/fb1'''<nowiki> │ (graphics:fb1) "radeondrmfb" ├ </nowiki>'''/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.1/sound/card2'''<nowiki> │ (sound:card2) "HDMI" │ └ </nowiki>'''/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.1/sound/card2/input16'''<nowiki> │ (input:input16) "HDA ATI HDMI HDMI/DP,pcm=3" ├ </nowiki>'''/sys/devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input2'''<nowiki> │ (input:input2) "CHESEN PS2 to USB Converter" ├ </nowiki>'''/sys/devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.1/input/input3'''<nowiki> │ (input:input3) "CHESEN PS2 to USB Converter" └ </nowiki>'''/sys/devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.0/input/input4'''<nowiki> (input:input4) "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)" </nowiki>}} どのデバイスがどれかわからない場合 {{ic|lspci}} や {{ic|lsusb}} と比較してデバイスを識別してください。 ===デバイスの割り当て=== シートはグラフィックカードごとに作成されます。まずはグラフィックカードの割り当てから始めます: {{bc|# loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0/drm/card1 # loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0/graphics/fb1}} それから入力デバイスを追加: {{bc|# loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input2 # loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.1/input/input3 # loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:12.1/usb4/4-2/4-2:1.0/input/input4}} サウンドカードが複数ある場合、シートごとに割り当てることでユーザーセッションの PulseAudio で使えるようになります: {{bc|# loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:04.0/0000:02:00.1/sound/card2/input16 # loginctl attach seat-1 /sys/devices/pci0000:00/0000:00:04.0/0000:02:00.1/sound/card2}} ハードウェアが2つのシートに分割されていることを確認: {{bc|# loginctl seat-status seat0 # loginctl seat-status seat-1}} ==Xorg の設定== {{ic|loginctl}} でデバイスをシートに接続したら特別な [[Xorg]] の設定は必要ありません。それぞれのキーボード・マウス・ビデオカード・モニターを2つのサーバーレイアウトで設定できます。 {{hc|xorg.conf.d ツリーの例|<nowiki> ├── 00-keyboard.conf #created by localectl ├── 31-monitor-seat0.conf ├── 32-monitor-seat1.conf ├── 40-serverflags.conf ├── 41-graphic-seat0.conf ├── 42-graphic-seat1.conf ├── 51-screen-seat0.conf ├── 52-screen-seat1.conf ├── 61-layout-seat0.conf └── 62-layout-seat1.conf </nowiki>}} ===利用可能な入力デバイスを定義=== [[Xorg#入力デバイス]]に書かれているようにデバイスを設定してください。"Identifier" は ServerLayout で割り当てる識別子で "Device" は設定する物理デバイスです。 {{hc|01-keyboard-seat0.conf| Section "InputDevice" Identifier "keyboard0" Option "Device" "/dev/input/event1" #Option "Device" "/dev/input/by-path/pci-0000:00:1a.0-usb-0:1.6:1.0-event-kbd" # or by path Option "GrabDevice" "on" # prevent send event to other X-servers EndSection }} 他は [[Xorg#入力デバイス]]と同じです。 ===Monitor=== [[Xorg#モニターの設定]]に書かれているようにモニターを設定します。識別子に注意してください。 {{hc|31-monitor-seat0.conf| Section "Monitor" Identifier "monitor0" EndSection }} ===ServerFlags=== {{hc|40-serverflags.conf| Section "ServerFlags" Option "AutoAddGPU" "off" EndSection }} ===グラフィックカード=== BusId に注意してください。使用するハードウェアカードを指定するオプションです。BusId は {{ic|lspci}} で確認できますが、オプションに使用する値とは違います。lspci はデバイスアドレスを16進数で表示するためです。アドレスを16進数から10進数に変換する必要があります。lspci でデバイスアドレスが {{ic|0:0a:0}} であれば {{ic|xorg.conf}} では {{ic|0:10:0}} と指定します。 {{hc|42-graphic-seat1.conf| Section "Device" Identifier "graphic0" Driver "nvidia" Option "NoLogo" "1" # Remove nvidia branding at startup BusId "PCI:1:0:0" MatchSeat "seat-1" # Needed when only configuring part of Xorg for non-seat0. Option "Monitor-DVI-1" "monitor1" #assigns monitor configuration to graphic output port EndSection }} ===Screen=== "monitor" オプションに注意してください。 {{hc|51-screen-seat0.conf| Section "Screen" Identifier "screen0" Device "graphic0" Monitor "monitor0" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1280x1024" "1024x768" EndSubsection EndSection }} ===ServerLayout=== 各シートごとのセクションを作成します (Identifier に注意してください): {{hc|62-layout-seat1.conf| Section "ServerLayout" Identifier "seat-1" Screen "screen1" 0 0 InputDevice "mouse1" "CorePointer" InputDevice "keyboard1" "CoreKeyboard" Option "Seat" "seat-1" Option "SingleCard" "on" # use this to simplfied isolatedevice option EndSection }} 再起動する前に各ユーザーディレクトリの {{ic|~/.Xauthority}} ファイルは削除してください。 ちらつきを抑えるために以下を {{ic|/etc/environment}} に追加すると良いでしょう: {{bc|1= CLUTTER_PAINT=disable-clipped-redraws:disable-culling CLUTTER_VBLANK=True }} ==テスト== ログインマネージャを設定する前に、まずは個別のシートをテストします。 twm (tiny window manager) でシートが機能するか確認します。{{ic|~/.xinitrc}} に以下を追加: exec twm 以下のコマンドを使って個別のシートをテストします: startx -- -layout seat0 -config xorg.conf.multiseat シートごとに上記のコマンドをテストします。全て動作したら完了です。 ==ログインマネージャの設定== === XDM === {{ic|/etc/X11/xdm/Xservers}} を開いて以下の変数を設定: {{bc| # NOTE: don't add -sharevts on seat0, otherwise it may reset in about 10~20 minutes automatically. :0 local /usr/bin/X :0 vt07 -nolisten tcp -novtswitch -layout seat0 -seat seat0 :1 local /usr/bin/X :1 vt08 -nolisten tcp -novtswitch -layout seat-1 -seat seat-1 }} {{Note|シート番号が XDM によって正しくセッションに割り当てられない場合 ({{ic|loginctl}} でシートがないセッションが表示される)、接続されたデバイスが上手く機能しなくなります。}} Archlinux テーマを使用する場合は {{ic|/etc/X11/xdm/xdm-config}} を編集: {{bc| DisplayManager._0.setup: /etc/X11/xdm/arch-xdm/Xsetup DisplayManager._0.startup: /etc/X11/xdm/arch-xdm/Xstartup DisplayManager._0.reset: /etc/X11/xdm/arch-xdm/Xreset DisplayManager._1.setup: /etc/X11/xdm/arch-xdm/Xsetup DisplayManager._1.startup: /etc/X11/xdm/arch-xdm/Xstartup DisplayManager._1.reset: /etc/X11/xdm/arch-xdm/Xreset }} === LightDM === [[LightDM]] は自動的にマルチシートを認識しますが、必要であれば {{ic|/etc/lightdm/lightdm.conf}} で設定できます: {{bc|1= [LightDM] run-directory=/run/lightdm [Seat:*] greeter-session=lightdm-gtk-greeter greeter-hide-users=false # Bug: lightdm-gtk-greeter doesn't load user saved session when greeter-hide-users=true[https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/837002] session-wrapper=/etc/lightdm/Xsession [Seat:seat0] xserver-command=/usr/bin/X :0 xserver-layout=seat0 [Seat:seat-1] xserver-command=/usr/bin/X :1 xserver-layout=seat-1 }} {{note|Xorg サーバーはバージョン 1.16 から VT を non-seat0 で起動するように処理しません。そのため {{ic|-sharevts}} オプションは不要です [http://permalink.gmane.org/gmane.comp.sysutils.systemd.devel/22346]。}} ==サウンド== ===シートごとに別々のサウンドカードを使う=== サウンドカードをシートに[[#デバイスをシートに接続|接続]]することで PulseAudio がサウンドカードを認識して使えるようになります。 ===ひとつのサウンドカードを複数のユーザーで使う=== 同時に複数のユーザーがサウンドカードを同時に使えるようにしたい場合、サウンドサーバーの [[PulseAudio]] が必要です。 デフォルトの設定をメインユーザーのホームディレクトリにコピー: $ cp /etc/pulse/default.pa ~/.pulse/ または: $ cp /etc/pulse/default.pa ~/.config/pulse/ ファイルを編集して、末尾に以下を追加: load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 pulseaudio を再起動: $ pulseaudio -k $ pulseaudio --daemonize=no 2番目のユーザーでは以下のようにユーザーとして設定: $ echo "default-server = 127.0.0.1" > ~/.pulse/client.conf ==トラブルシューティング== ===Windows キーが機能しない=== [[スタートアップファイル]]に以下を記述してください: xmodmap -e "add Mod4 = Super_L Super_R" ===挙動が安定しない=== 全てを正しく設定しても、何らかの理由でカーソルが表示されない黒画面になる場合、BIOS で最初に初期化するカードを PCI カードに設定してみてください。 ===デスクトップに小さな黒いボックスが表示される=== 仮想端末の一部が X に描画されています。おそらく Linux のカーネルフレームバッファが原因です。フレームバッファを無効化するか、1番目のシートの X 引数から "-sharevts" オプションを削除することで解決できます。 ===マルチメディアキーが機能しない=== キーボードにマルチメディアキーがある場合、マルチシート環境でマルチメディアキーが動作しなくなることがあります。そのようなキーボードは複数の "event" デバイスとして認識されるのが原因です。適切な event デバイスを確認して、InputDevice セクションを追加して、適切な ServerLayout セクションにその InputDevice セクションを追加してください。"SendCoreEvents" オプションを使用することでコアキーボードでない場合でもデバイスからの入力が処理されます。例: {{bc| Section "InputDevice" Identifier "Keyboard0" Driver "evdev" Option "Device" "/dev/input/event6" Option "XkbModel" "evdev" EndSection Section "InputDevice" Identifier "Keyboard0Multimedia" Driver "evdev" Option "Device" "/dev/input/event7" Option "XkbModel" "evdev" EndSection Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Keyboard0Multimedia" "SendCoreEvents" InputDevice "Mouse0" "CorePointer" Option "AutoAddDevices" "no" EndSection }} ==参照== *[https://bbs.archlinux.org/viewtopic.php?id=105450 オリジナルの Arch フォーラムスレッド] *[[マルチポインタ X]] では同一セッションで複数のデバイスを使用する方法を説明しています。 *[http://code.lexarcana.com/posts/simple-multiseat-setup-on-fedora-17.html Multiseat using loginctl] *[http://code.lexarcana.com/posts/using-udev-to-configure-fedora-multi-seat-automatically.html Using udev to configure multi-seat automatically]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Xorg マルチシート
に戻る。
検索
検索
Xorg マルチシートのソースを表示
話題を追加