Ubuntu 16.04.1とXRDP再び!日本語を取り返せ!

Posted on 2016/08/28(Sun) 04:50 in technical

はじまり

UbuntuにXRDPを入れて検証環境を便利にしたい、ただそれだけなんです。

Ubuntu 16.04が出て少し経つので、ここらで検証環境を作り直します。

今日は Ubuntu server 16.04.1 + MATE + X11RDP-o-Matic + ubuntu-defaults-ja によるWindowsからリモートデスクトップできるGNS3環境を作ります。

この番組は、魔法つかいプリキュア! 第18話 「魔法界再び!リンクルストーンを取り返せ!」のパクリタイトルでお送りします。

まだ開発環境で疲弊してるの?って言われかねない状況です。えぇい、そんなことは分かっておる。

ハードウェア

物理マシンにそのままぶち込んでいるので、グラフィック周りでは環境問題が出るかもしれませんね。

当たり障りのない内容で言うと、MBD-X9SCM-FにXeon E3-1235を載せてるくらいですね。:

$ grep Xeon /proc/cpuinfo | head -1
model name      : Intel(R) Xeon(R) CPU E31235 @ 3.20GHz
$ lspci | grep VGA
03:03.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)

構築

警告

最新のリリースでは、IBusに対する問題が修正されているので、ibusをfcitxに適宜読み替える必要があります。

ubuntu-16.04.1-server-amd64.iso を使ってインストールしました。IPMIって素敵。

インストール時に以下追加してます。:

[X] Virtual Machine Host
[X] OpenSSH Server

まずシステムのアップデート。:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo reboot

XRDPの前にデスクトップ環境であるMATEを入れ、NetworkManagerを*しておきます。:

sudo apt install -y ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-extras
sudo systemctl disable NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl enable networking.service
sudo vi /etc/network/interfaces
    auto eth0
    iface eth0 inet dhcp
sudo systemctl start networking.service

XRDPはX11RDP-o-Maticを利用させてもらいます。

Ubuntu 16.04に関しては最近の話題で手順が微妙ですが、 https://github.com/scarygliders/X11RDP-o-Matic/pull/61 を参考にこんな感じで入れます。:

cd ~
sudo apt-get install -y git
git clone https://github.com/metalefty/X11RDP-o-Matic.git
cd X11RDP-o-Matic
sudo ./X11rdp-o-matic.sh --justdoit --branch devel

この段階で、XRDPは動いているのでWindowsからリモートデスクトップ可能になります。

ただ、この時点では灰色の画面と会えるだけですね、うんうん。

なんだか面倒な話なんですけど、Ubuntuの標準的な入力フレームワークはFcitx+Mozcになって、MATEはちゃんとFcitx準拠っぽいんですがXRDP経由だとやっぱりIBusじゃないとうまく入力できないよ、みたいな状況らしくて歴史をちゃんと把握してない身分の僕は唸りながらコマンドを叩いている状態です。

閑話休題。

次に日本語の入力周りを整えます。ここは https://www.ubuntulinux.jp/japanese を利用させてもらいます。:

cd ~
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/xenial.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt install -y ibus-mozc ubuntu-defaults-ja

で、リモートデスクトップでログインした時に、MATEが立ち上がるようにしておきます(ここでは特定のユーザーだけ):

cd ~
echo 'export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS="@im=ibus"
mate-session' > ~/.xsession

リモートデスクトップでログインして、MATEのデスクトップが見えたらまずはOK。

設定個所はこの2つ(うろ覚えなので日本語まじり):

System -> Prefecenses -> Personal -> Language Support
  -> ユーティリティ起動時に不足言語情報をインストール
  -> 言語のインストール -> Japanese
System -> Prefecenses -> Others -> IBus Prefecenses
  -> Input Method -> Add
    -> Japanese-Mozc

IBus PreferenceでJapanese-Mozcが見つからない場合は、:

kill `pidof ibus-daemon`
ibus-setup

とかすると見えるようになる気がしますね。

設定が終わったら:

System -> Log Out <Username>

で抜けて、再度リモートデスクトップでログインし直すと、はれて日本語入力ができるようになっている気がします。

あとはいつものようにGNS3を入れておしまいです。

お疲れ様でした。

上手くいかなかった人は...お疲れ様です。

良く分かんないメモ

当初は、最初から日本語対応してるならその方が楽じゃないですか、って思ってUbuntu Desktopを入れたんですよ。

MATE入れてリモートデスクトップもできて日本語入力もできて、あぁ楽かもしれないな、って思ったんですよ。

で、Visual Studio Codeをインストールした辺りから雲行きが怪しくなってきたの。

最初に遭遇したのはこれ。 https://github.com/Microsoft/vscode/issues/3451

Visual Studio Codeを起動しようとしたら:

Xlib: extension "XInputExtension" missing on display ":10.0".

と言われる。一応、これは:

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1

とかすると一応動くようにはなるのだけど、いやいやそれsedして済ませる問題じゃなくない、ってやつ。

で、次はGNS3を入れるわけ。そうしたら今度は:

The X11 connection broke: Maximum allowed requested length exceeded (code 4)
libGL error: failed to load driver: swrast

とかなってこれもGUIの起動にコケる。

libGLの方は sudo apt install nvidia-current-updates すると消えるんだけど、いやそもそもここでnvidiaが出てくるってどういうことなんですかねぇ...?

と、この辺りで厳しくなって撤退。

Ubuntu Serverに後から必要なものを突っ込んでいく方式で、一応動いたような感じになりましたとさ。

おわり

おしまいです。