RetroPie(2)
X-Window から起動した RetroPie の np2kai
X-Window から RetroPie(実際は emulationstation)を起動することができます。しかし、この状態だと、np2kai でマウスが使えませえん。PC98 のゲームでマウスが使えないのは不便なので、使う方法を探しました。
まず、np2kai のソースを修正できないかを試しました。github からソースを clone してコンパイルしてみました。
$ git clone https://github.com/AZO234/NP2kai.git
$ cd np2kai/sdl
$ make j4
コンパイルはできました。しかし、ソースを見てもどこを修正すればよいのかわかりません。まあ、それはそうです。なぜ X-Window 下だとマウスが使えないのかの原因がわかっていません。
別の手を考えます。
$ sudo apt-get install wmctrl
wmctrl でフォーカスを当てたらできるかと思ったのですが、うまく行きませんでした。
X-Window の仮想端末から起動していましたが、crtl+alt+F3 で仮想コンソールに切り替えてから emulationstation を起動したら、np2kai でマウスが使えました。
なるほど、起動する端末の違いかな?
仮想コンソールに切り替えるコマンド cvt と 自動ログインできるように、agetty を組み合わせて試してみます。
使う仮想コンソールですが、tty1 は、すでにログインしています。tty7 で X-window が 動いています。普通使われない tty8 を使うことにしました。
試してみます。
$ (sudo chvt 8&); sudo LANG=C setsid /sbin/agetty –autologin pi -8 tty8 linux
chvt 8 を実行すると、戻ってくるまでそこで待ってしまうので、& を付けてバックグラウンドで動かし、agetty を実行します。setsid を使うのは、新しいプロセスグループ(正確にはセッション)を作るためです。
うまく切り替わりました。確認します。
$ tty
/dev/tty8
tty8 ですね。emulationstation を動かしてみます。
$ emulationstation
np2kai でマウスが使えました。X-window に戻るには、emurationstation を終了させてログアウトします。
$ exit
真っ暗な画面になりますが、ここで、alt+F7 を押すと X-window に戻ります。
- 仮想コンソールの 8 番に切り替え、tty8 で agetty を動かす。
- ログインしたら、emulationstation を動かす。emulationstation を終了したらexit して仮想コンソールの 7 番に切り替える。
上記の2段階の手順で行えば良いことになります。1 は shell スクリプトで実現し、2 は .bashrc で行えばいいです。
次の内容の shell スクリプトを ~/bin/emulationstation.sh として作成し、実行権を与えます。
$ vi ~/bin/emulationstation.sh
#!/bin/bash
tty=`tty`
if [ "${tty}" == "/dev/tty8" ]; then
fbterm emulationstation
setsid bash -c "(sleep 1; sudo chvt 7)" &
else
check=`ps ax | grep ty8 | grep getty`
if [ "${check}" == "" ]; then
sudo chvt 8 &
sudo LANG=C setsid /sbin/agetty --autologin pi -8 tty8 linux
else
sudo chvt 8
fi
fi
$ chmod +x ~/bin/emulationstation.sh
次に ~/.bashrc の最後に次の内容を追加します。
tty=`tty`
if [ "${tty}" == "/dev/tty8" ]; then
/home/pi/bin/emulationstation.sh
exit
fi
これで、emulationstation.sh を実行すると emulationstation が起動し、emulationstation を終了すると、X-window に戻ってくるようになります。fbterm から emulationstation を起動しているのは、デフォルトの言語を ja_JP.UTF-8 にしているので、文字化けしないようにです。
setsid コマンドは、初めて知りました。UNIX はまだまだ奥が深いです。
ディスカッション
コメント一覧
まだ、コメントがありません