いまだに、Mac の上で動かす、X11アプリケーションの使い方がよく分かりません。具体的には DISPLAY 環境変数の、ディスプレイ番号とスクリーン番号。
今回、FreeBSD 10.2 上の Virtual Box を使おうとしたところ、MacOS Snow Leopard のターミナルエミュレータから使用していたため、virtualbox とタイプしたところ、「Failed to open the X11 display!」と出て、起動させる事が出来ませんでした。
SnowLeopard には X11 というX-Window アプリケーションがあるので、これを使えば問題解決!のはずでした。
X11 の場合、別ホストのXディスプレイに画面だけ飛ばして使う事が出来、その場合 コマンドに 「-DISPLAY HOSTNAME:0」 ;例えば virtualbox -display macmini:0 ;と付加すれば画面だけ、Macに飛ばせるんですが・・・・・・・動かない!
手順
- Mac で virtualbox コマンドを使うホストを xhost コマンドで追加
- Mac から FreeBSD 10.2 のホスト へリモートアクセス
- リモートホスト上で、virtualbox -display 192.168.1.41:0.0 とタイプ(192.168.1.41 はMacのIPアドレス)
通常 0.0 からディスプレイ番号.スクリーン番号が始まるので :0.0 と付加したんですが、OSによっていはスクリーン番号が不要の事もあります。virtualbox -display 192.168.1.41:0 とやってみたけど、ダメ。
Macで、env とタイプして、ディスプレイ番号を確認してみたら、
DISPLAY=/tmp/launch-eQXXEB/org.x:0
この変数の中身って何よ?このファイルにポート番号が書いてあるのかと思ったけど、違ってました。
/etc/services を見てみると、
x11 6000/tcp #6000-6063 are assigned to X Window System x11 6000/udp x11-ssh 6010/tcp #Unofficial name, for convenience x11-ssh 6010/udp
となっていて、
netstat -a で開いているポートを確認してみると、通常Unixシステムでは 6000 がデフォルトのところが 6001 になっていることを確認。
tcp4 0 0 *.6001 *.* LISTEN tcp6 0 0 *.6001 *.* LISTEN
MacのGUIが 6000 を使っているのかな〜?よく分かりませんが、+1 されているので、ディスプレイ番号を+1して、virtualbox -display 192.168.1.41:1 としたところ、無事 VirtualBoxの設定画面が上がってきました。
すごく遅いけどね。