Use RaspberryPi as a Thinclient device
はじめに
Ubuntu で RDS を立てたので,Raspi をシンクライアント 端末っぽくしてみた.
ただし,結局環境は壊すことにしたので検証の足りていない部分もあるかもしれない.
RPI-TC
Raspi でシンクライアントというとまず思いつくのは RPI-TC.
試しに軽く使ってみたが,思ってたのとちょっと違った.
RPI-TC は Raspi 側にも簡単なデスクトップ環境があるが,私がほしいのは単に RDS に接続するだけの機能. ディストリビューションとしてRDPする環境がまるっと入ってるのは便利なのかもしれないけれど,これなら Raspibian のデスクトップに自分で環境を作ったほうがよさげ.
OpenCocon
古いPCをシンクライアント端末として活用するディストリビューションらしい. opencocon v8 からは Raspi 用のイメージも公開している. ドキュメントを見た限りでは今回の目的に合致している様子.
試しに Raspi 版の最新 v9c を SD に焼いてみたが起動しなかった. 残念ながら v9 系はすべて起動しなかった. Raspi の電源を入れると虹色の画面で進まない.
去年あたりに Raspi を使ったシンクライアント端末が登場したことを考えると,かなり時代を先取りしてたと思うんだけれど,残念ながら更新は停滞気味の様子. v11 はいつ頃リリースされるんだろうか.
自前で環境をつくる
Install Raspbian Stretch Lite
ベースは Raspbian Stretch Lite をつかう. SD に焼いて起動する.
BUILD VDI ENV
$ cd /opt $ git clone https://github.com/HeavyMoon/vdi-tools.git $ sudo ./vdi-tools/mainte/build-env.sh
RDP 環境構築するのにスクリプトを書いた. GitHub に置いておいたので中身は割愛.
ウィンドウマネージャはBlackbox,RDP クライアントはなんとなく最近触っている Remmina をつかう.
プロキシ環境下の場合はコメント化されている部分を適当に設定しておく.まぁ git コマンド使えてるならプロキシも設定してある気もするけれど.
sudo で実行して必要なものをインストールする. 処理が終われば勝手に再起動される.
SETUP USERS
# /opt/vdi-tools/mainte/setup-usr.sh
デフォルトの pi ユーザを改名するので root でログインする. メンテ用ユーザ(mainte)とVDIユーザ(vdi)を設定する.
Setup Remmina
コンソールを開くとvdiユーザで自動ログインされてVDIのメニューが表示されるようになっているので,RDPプロファイルを作る.
- Preferences > Remmina Menu を選択して,Remminaを起動する
- Remmina で接続接続先の設定を作って保存して閉じる
- Profile
- Name = 適当に
- Basic
- Server = 接続先のアドレスを指定
- User name = ログインユーザーを指定
- User password = ログインユーザーのパスワードいれとく
- Advanced
- Quality = Medium (要チューニング)
- Sound = Local (要チューニング)
- Profile
- Remmina を閉じると UI に戻ってくるので,Preferences > Select a Connection Profile から作ったプロファイルを選択する
あとは UI から Connect を選択するだけで RDP してくれる.
おわりに
と,ここまで作っておいてこの計画は断念.
ESXi のスペックが貧弱すぎて RDS として立てた Ubuntu のスペックが足りないっぽい. Ubuntu に RDP したあとに Firefox でYoutube を起動すると Ubuntu の xrdp プロセスが CPU 使用率 100% になり,しばらくすると切断もしくは RDP した画面がフリーズする. Raspi 側のリソースには余裕があるので,ESXi を増強すれば改善できるかもしれない.
検証環境が1つしか無いし,原因切り分けも面倒. 私の環境では利用に耐えないので ESXi の環境は壊すことにした.
需要は無いかもしれないけれど,とりあえずスクリプトはここに置いたので試したければどうぞ.
あー田舎に住みたい...