Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

Ubuntu 20.04 LTS+WSL2でMID (MaXX Interactive Desktop)を起動するまで。

f:id:espio999:20210407203504p:plain
impsbl.hatenablog.jp
先日、WSL2で稼働するUbuntuにてGnomeを動作させた。Gnomeが動作するということは、もちろんMID (MaXX Interactive Desktop)も動作する。

MIDとは、SGI (Silicon Graphics International) 製ワークステーションに搭載されたOS、IRIXのデスクトップをLinux上に再現するプロジェクトだ。これをWSL2で稼働するUbuntuへインストールする。

先日の投稿で紹介した手順を完了していることを、インストール環境の前提としている。Microsoft StoreからダウンロードしたUbuntuへ、ubuntu-deskop-minimalをインストールし、Gnomeが起動するところまでを確認済みの環境だ。
その環境へ、MID v2.1.1をインストールする手順を紹介する。

Ubuntuへの導入手順は、次のサイトに紹介されている。この投稿で紹介する手順は、そこに一手間加えている。
docs.maxxinteractive.com

インストール・スクリプトの準備

インストール手順に紹介されているコマンド群を実行するならば、サイトのコマンドをコピー、編集し、シェル・スクリプトとして実行するのが良い。インストール手順で紹介されている作業は、端的に3つのステップに分かれている。それぞれをスクリプト化して、個別に実行することにした。

Step.1 必要なパッケージの導入

step1.sh

apt install cpp libxaw7 libjpeg62 libgtk2.0-0 x11-apps freeglut3
apt install pavucontrol
apt install xfonts-100dpi xfonts-75dpi 
apt install fonts-dejavu fonts-noto
apt install libtinfo5

ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5


step1.shでは、日本語など、アジア圏のフォントを導入するためのコマンドを意図的に省いている。具体的には、次のコマンドだ。

// Additional Fonts for Japanese support
apt install fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-cjk

理由は次の3点だ。MIDのインストールを通じて、中途半端に日本語対応する必要はない。

  1. WSLはWindows上で動作しており、必要ならばWindowsのフォントを参照すればよい。
  2. WSL、Windows間で、簡単にファイル、入出力のやり取りができる。
  3. Ubuntuの日本語対応が必要ならば、language-packを導入したほうが良い。

そもそも日本語対応などしなくとも、日本語の表示はできるのだ。冒頭のサンプル画像を見て欲しい。
分かりにくいかもしれないので、テキスト・エディタの画面を切り抜いておいた。これは、このブログのテキストをWindowsからMID上のテキスト・エディタへcopy&pasteしたものだ。
日本語フォントをインストールしていないが、文字化けもしていない。
f:id:espio999:20210407204135p:plain

もしUbuntuでの日本語対応が必要ならば、GnomeデスクトップのGUIを介して操作すればよいし、language-pack-jaを導入すれば、必要な日本語フォントもインストールされる。
MIDのインストールのためだけに、日本語フォントだけインストールする必要はない。

Step.2 MIDのダウンロード、インストール

step2.sh

cd /tmp
wget https://s3.ca-central-1.amazonaws.com/cdn.maxxinteractive.com/maxx-desktop-installer/MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh
chmod a+x MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh
./MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh


AWSからMIDのインストール・スクリプトをダウンロード、実行することで、MIDそのものをダウンロード、実行することになる。

step.3 ユーザー環境の設定

step3.sh

cd $HOME
/opt/MaXX/share/misc/HOME/MaXX-Desktop-v2.1.1-upgrade.sh


インストール・スクリプトの実行

作成した3つのスクリプトを順番に実行する。注意したいのは、次の2点だ。

  • step1.shとstep2.shはrootで実行する。
  • step3.shはユーザーとして実行する。

実行コマンドは次のようになるだろう。

実行コマンド

sudo chmod 777 step*.sh

sudo ./step1.sh
sudo ./step2.sh
./step3.sh


起動スクリプトの準備

MIDを起動するためのシェル・スクリプトを作成する。次のコマンドを、シェル・スクリプトファイルとして保存する。私は”maxx.sh”とした。
保存したファイルの権限変更を忘れないこと。X serverを起動し、maxx.shを実行すれば、MIDが起動する。

maxx.sh

sudo service dbus restart
sudo service x11-common restart
. /opt/MaXX/etc/system.runtime
. /opt/MaXX/etc/skel/Xsession.dt

chmod 777 maxx.sh

f:id:espio999:20210407200250p:plain

なお起動時に、いくつかのエラーが出力されている。サウンド関連のエラーは放置するとして、フォント関連のエラーは深堀してみる価値がありそうだ。
何にせよ、実用上の問題は生じていない。

Warning: Missing charsets in String to FontSet conversion

エラー出力

wsluser@paulownia:~$ ./maxx.sh
[sudo] password for wsluser:
 * Stopping system message bus dbus                                                                                                                                                                       [ OK ]
 * Starting system message bus dbus                                                                                                                                                                       [ OK ]
 * Setting up X socket directories...                                                                                                                                                                     [ OK ]
xset:  bad font path element (#0), possible causes are:
    Directory does not exist or has wrong permissions
    Directory missing fonts.dir
    Incorrect font server address or syntax
xsettingsd: Loaded 16 settings from /home/wsluser/.maxxdesktop/xsettingsd.conf
xsettingsd: Created window 0x80001 on screen 0 with timestamp 23800093
xsettingsd: Selection _XSETTINGS_S0 is owned by 0x0
xsettingsd: Took ownership of selection _XSETTINGS_S0
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:830: audio open error: No such file or directory
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
Warning: Missing charsets in String to FontSet conversion