xrdp再び

Comice OS に、xrdp をインストールして、Windows PCからリモートアクセスする
Comice OS (Ubuntu 11.10相当+Gnome Shell)
Windows PC(Windows 7 Home Premium 64bit)

xrdp のインストール

通常なら端末に次のコマンドを入力すればよいのだが
 sudo apt-get install xrdp

Ubuntuのレポジトリにある xrdp 0.5.0 は、日本語キーボードに対応していないという問題がある。
この問題を修正したバージョンが ppa に公開されているので、そちらを使わさせて貰う。

 sudo add-apt-repository  ppa:ikuya-fruitsbasket/xrdp
 sudo apt-get update
 sudo apt-get install xrdp

詳しくはこちらに

vino のインストール (オプション)

xrdp のインストールしただけでは、ログインをすると独立したデスクトップが作成される。
それはそれで便利だが、よそのコンピュータから実行中のデスクトップにアクセスすることもできる。
そのためには、vino もインストールする必要がある。
 sudo apt-get install vino

デスクトップ共有(vino-preferences)を起動して、適切な共有オプション、セキュリティオプションを指定する
desktopShare.png

デスクトップ共有を有効にするには、いったんログアウトする必要があった。


PC 側の設定

PCのリモートデスクトップ接続を起動してオプションを変更

色数を15bitか16bitにする
rdp2.png

サーバー認証は甘くする(古い認証でも接続する)
rdp1.png

IPアドレスかホスト名を指定して、接続ボタンをクリックすると、xrdpのログイン画面が表示される。

  • モジュール名は sesman-Xvnc
  • ユーザ名は Linux のユーザ名
  • パスワードは Linuxのパスワード

rdp3.png

しかし、これだけでは足りない。

  • Ubuntu 10.04 (Gnome2)や Xubuntu(XFce)はログインできる。
  • Ubuntu 11.10/12.04 (Unity) や Linux Mint や Comice OS (Gnome-Shell)はログインもできない。


xrdpサーバの設定


xrdp 0.6 や xrdp 0.5 を自分でビルドした場合は、日本語キーマップファイルを生成する必要がある。
(上述した PPA には日本語キーマップファイルが含まれているので、この項目は不要)

ALT-F2で 端末 gnome-terminal を動かす。
xrdpの設定ファイルの場所に移動して、ファイルを生成。
  cd /etc/xrdp
  sudo xrdp-genkeymap km-0411.ini

km-0411.ini は IMMがないときに使われるキーマップ定義ファイルである。
IMMが有効なときに必要なキーマップ定義ファイルは次のようにして調べることができる。

xrdp を止める
  sudo service xrdp stop
xrdp をフォアグラウンドタスクとして実行
  sudo xrdp -nodaemon
ALT+F2で リモートデスクトップクライアントを実行
  rdesktop 127.0.0.1
あるいはWindowsパソコンからリモートデスクトップ接続で接続する。

必要なキーマップ定義ファイルがないと、次の警告が表示される。
  keymap for 0xe0010411 was not found. Falling back to 0x0409 instead
  local keymap file for 0x0409 found and dosen't match built in keymap, using local keymap file

この場合、必要なキーマップファイル名は、km-e0010411.ini になる。
番号がわかったので、CTRL+Cでxrdpを終了する。
先ほど作った km-0411.ini ファイルを km-e0010411.ini でも参照できるようにシンボリックリンクを作る。
  cd /etc/xrdp
  sudo ln -s km-0411.ini km-e0010411.ini

必要なキーマップ定義ファイルがないと、英語のキーボード配列で入力しなければならなくなる。
仮に、パスワードを打ち間違えるとログイン経過表示で止まってしまう。
rdp4.png

Comice OS や Linux Mint の設定


PPA に含まれる /etc/xrdp/startwm.sh は、複数のデスクトップマネージャに対応しているが、
Comice OS や Linux Mint では不都合があることがわかっている。

ホームディレクトリに startwm.sh をテキストエディタで作成する。

 #!/bin/sh
 
 export LANG="ja_JP.UTF-8"
 export XKL_XMODMAP_DISABLE=1
 
 . /etc/X11/Xsession

Linux Mint や Comice OS は、ホームディレクトリに .xsession ファイルも作る。
  gnome-session --session=gnome

ホームディレクトリに startwm.sh ファイルがあれば、/etc/xrdp/startwm.sh より優先使用される。
Xsession スクリプトは、ホームディレクトリの .xsession ファイルを使ってデスクトップマネージャのオプションを指定できる。
デフォルトのセッション名は ubuntu (Unity3D)は、Comice OS や Linux Mint には入ってないので、接続できない。
確かめていないが、Ubuntu 11.10や12.04では セッション名を ubuntu2d にすると、fall back mode ながらリモート接続できるのではなかろうか?
rdp5.png

実行中のデスクトップに接続する


vino と xrdp をインストールすれば、実行中のデスクトップに接続することも可能だ。
IPアドレスかホスト名を指定して、接続ボタンをクリックすると、xrdpのログイン画面が表示される。

  • モジュール名は console
  • パスワード デスクトップ共有で指定したパスワード

を指定してOKボタンを押せば、接続できる。
しかしこれでは、キーボードがめちゃくちゃだ。
暫定的な解決策としては、ホームディレクトリの .vnc 隠しディレクトリに xstartup をテキストエディタで作成する。

 #!/bin/sh
 
 export LANG="ja_JP.UTF-8"
 export XKL_XMODMAP_DISABLE=1
 
 . /etc/X11/Xsession

これで、コンソールのキーボード配列は英語だが、CTRL+SPACEでかな漢字変換もできるようになる。
スクリプトに環境変数か何かを追加して日本語キーボードが使用できるとよいのだが...。

dキーを入力できない

端末で、 d キーを入力すると端末が隠れてしまった場合、キーボードショートカットを修正する必要がある。

  1. システム設定のキーボードを開き、ショートカットを開く
  2. ナビゲーション グループを選んで、すべての通常のウィンドウを隠す の Super+d を 無効かCtrl+Alt+D などに変更する

または

  1. gconf-editor を起動
  2. キー /apps/metacity/global_keybindings/show_desktop が <Super>d になっていたら、disabled か <Control><Alt>d などに変更する
  3. gconf-editor を終了すると変更内容はただちに反映される

rdp6.png


ja_JP.UTF-8なのにIMEが動かない


  1. 漢字キー で切り替えられるかどうか
  2. CTRL+SPACE で切り替えられるかどうか
  3. 念の為、システム設定の 言語サポートとキーボードレイアウトを確認
  4. ファイルマネージャを起動し、Applicationブックマークにある「入力メソッド切り替え器」を起動して、「Use iBus」 を選択してOKボタンを押す。

rdp7.png

  • 最終更新:2012-06-21 23:49:21

このWIKIを編集するにはパスワード入力が必要です

認証パスワード