2014年02月08日

TvRockをLinux上で動かす & 同期設定

案外簡単にLinux上でTvRockを動かせたのでそのメモ。
そもそもTvRockはWindows用のアプリであり、そのままではLinux上で動作させることはできない。さらにソースは公開されていないので、Linux向けにビルドすることもできない。

でもそんなWindowsアプリをLinux上で動作させたい場合は、「wine」を利用することで実現可能。
なおwineを利用するにはデスクトップ環境が必要。

LinuxはFedora20(x86 32ビット版)、デスクトップはGNOMEを利用した。
64ビット版でも手順は同じ。

手順は簡単で、wineをインストールしてTvRockを起動するだけ。

wineのインストール
# yum -y install wine
wine-1.7.8がインストールされた。

tvrock.exeの起動
まずはtvrock.exeをWindows PCから適当なフォルダにコピーしておく。
当方は、~/tvrock/配下にコピー。

tvrock.exeの起動はwineの引数として起動する。(デスクトップで行うこと)
一般ユーザ権限で実行可能。
$ cd ~/tvrock
$ wine ./tvrock.exe


しばらくするとTvRockコンソールが起動する。
適当な場所を右クリックすると、おなじみのメニューが表示される。

※このスクリーンショットは番組表同期済みのもの。
 初期は緑の番組情報は何も表示されていない。

以上。

------------------------------------------------------------------

以下は、Windows PCと番組表の同期方法について。

その前に、当方がやりたかったことは以下の通り。

PT3が動作しているWindows+TvRockの番組表を、24時間稼働のLinux PCに同期させ、Linux PC側の番組表からWindows PC上の予約を可能にしたい。

Windows PCは普段はスリープ状態のため、24時間稼働のLinux PCに番組表を担わせたい。

構成イメージは以下の通り

・Linux PC(ホスト名:vmf20)
 TvRockマスター
 PT3なし
 24時間稼働

・Windows PC(ホスト名:CMX64)
 TvRockスレーブ
 PT3あり
 非24時間稼働 WOL有効

マスター、スレーブ構成とすることで、番組表を自動で同期させる。
マスターにはチューナー(PT3)はないが、スレーブの番組表が自動で同期されるので、このような構成が可能となる。

同期構成内のPCは、どのPC上のチューナーでも予約が可能。
従って、優先予約デバイスをWindows PCのチューナーにしておけば、Linux PC側で録画予約しても、録画は常にWindows PC上で実行される。

予約時の動作イメージは以下の通り

Linux PC上の番組表を他のPCからブラウザで表示し、番組予約

Linux PCのTvRockは、自動ですぐにWOLパケットをWindows PCへ飛ばし、Windows PCを起動

TvRockの予約情報が自動で同期される

Windows PC上で予約がスケジューリング

ちなみに、Windows PC上の番組表で予約しても、予約情報はLinux PC側に同期される。


同期設定手順

1.Linux PC側をマスターに設定する

設定ダイアログにて、同期タブを表示。
マスターを選択。字が欠けているのは気にしないw

OKを押下してダイアログを閉じた後、一旦TvRockを再起動する。


2.Windows PC側をスレーブに設定する

設定ダイアログにて、同期タブを表示。
スレーブを選択。

マスター側のIPアドレスを入力。
WOLで起動してもらうため、自MACアドレスを設定。
OKを押下してダイアログを閉じた後、一旦TvRockを再起動する。

マスター、スレーブ動作確認
マスター、スレーブが正しく動作を開始したかどうかは、ログにて確認する。
設定ダイアログ → プロセスのTvRockログにて確認。

Linux PC=マスター側ログ
TvRockのスレーブ<CMX64>と接続しました

Windows PC=スレーブ側ログ
TvRockのマスター<vmf20>と接続しました


同期されると、PCとチューナーの組み合わせが選択可能となる。


優先予約デバイスにスレーブのWindowsPCを設定しておけば、全ての予約はWindowsPC側で実行させることができる。



番組表の予約リストを表示すると、下の方に同期構成されたPCが表示される。



以上。

なお、BeagleBone Black上のARMのFedora20上でもTvRockを実行できたので、こちらはまた別途。


最後に注意点!
ホスト名(OS上の設定)は、Windows、Linuxとも4文字以上にすること!

3文字以下だと、どちらか一方のホスト名が一覧に出てこず、選択できない。
最初、これがわからずに大ハマリしますた。



posted by frogie at 16:31 | Comment(0) | TrackBack(0) | 録画サーバ | このブログの読者になる | 更新情報をチェックする

2014年02月17日

Fedora20 リモートデスクトップまとめ(XDMCP & VNC)

BegleBone Black にインストールしたFedora20のデスクトップをリモート表示する。Fedora20のインストールはこちら

デスクトップのリモート表示は、XDMCP接続と、VNC接続(2通り)の計3通りあるので、それぞれの方法についてまとめた。

ちなみに、インストールしたFedora20は、GNOMEデスクトップ版だったんだけど、どうしてもGNOMEのデスクトップをリモート表示できなかったので、後からXfceデスクトップをインストールした。
BegleBone BlackのFedora20 GNOMEのデスクトップをリモート表示できた方いましたら、教えていただけると幸いです。。。

本記事内の構成

・前準備(XDMCP、VNC共通)
・XDMCP接続するための設定
・VNC接続するための設定 その1(マルチユーザ対応)
・VNC接続するための設定 その2(シングルユーザ対応)

・各接続方法に関する考察


前準備(XDMCP、VNC共通)

■Xfceデスクトップのインストール
# yum -y groupinstall "XFCE Desktop"
いっしょにlightdmもインストールされる。

■gdmサービス無効化
# systemctl stop gdm.service
# systemctl disable gdm.service

■lightdmサービス有効化
# systemctl enable lightdm.service
# systemctl start lightdm.service

■操作をする側(Windows側)の準備
XDMCP用には、適当なX接続ツールを用意。
当方はASTEC-X(有償)を用意。
http://www.astec-x.com/

VNC用には、UltraVNC Viewer (v1.1.9.3)を用意。
http://www.forest.impress.co.jp/library/software/ultravnc/


XDMCP接続するための設定

■lightdmの設定
/etc/lightdm/lightdm.conf の追加箇所
[SeatDefaults]
xserver-allow-tcp=true

[XDMCPServer]
enabled=true
port=177

lightdmの再起動
# systemctl restart lightdm.service

■ASTEC-XによるXDMCP接続
ASTEC-Xの設定は以下のXDMCPの箇所だけ。


接続するとlightdmのログイン画面が表示される。

右上のリストボックスで、GNOMEかXfceを選択できるので、Xfceを選択してログイン。

ログイン後、こんな感じでXDMCP接続でのデスクトップを利用可能。


使用感はというと、もっさりすぎて全く実用に耐えまへん。
とりあえず接続できて満足して終わり、と言った感じですw

ASTEC-Xを終了させると、デスクトップ上のプロセスも全て終了する。


VNC接続するための設定 その1(マルチユーザ対応)

■lightdmの設定
/etc/lightdm/lightdm.conf の追加箇所
[LightDM]
start-default-seat=false

[VNCServer]
enabled=true
command=Xvnc
port=5900
width=1024
height=768
depth=24

lightdmの再起動
# systemctl restart lightdm.service

ここでUltraVNC Viewerにて接続するわけだが、この状態で接続しても、UltraVNCがパスワードを要求してきて接続できない。
さらにこのパスワードを設定する方法をあれこれ調べてみたがよくわからない。
結局、先人様のサイトを参考に、VNC接続時に呼び出される/usr/bin/Xvnc をラップして、パスワードを訊かせないようにすることで対処。

パスワードを訊いてこないように/usr/bin/Xvncをラップ
# mv /usr/bin/Xvnc /usr/bin/Xvnc.bin
# echo exec /usr/bin/Xvnc.bin $@ -SecurityTypes none > /usr/bin/Xvnc
# chmod ogu+x /usr/bin/Xvnc
参考サイト:http://so-young-aws.blog.so-net.ne.jp/2014-01-18

■UltraVNC ViewerによるVNC接続
UltraVNC Viewerを起動し、VNC Server 欄に、host:display の形式で以下のように記述。


接続するとlightdmのログイン画面が表示される。

右上のリストボックスで、GNOMEかXfceを選択できるので、Xfceを選択してログイン。

ログイン後、こんな感じでVNC接続でのデスクトップを利用可能。


使用感はというと、こちらももっさりすぎて全く実用に耐えまへん。
XDMCPよりは軽いけど、実用に耐えない点では同じ。
XDMCPと同様、とりあえず接続できて満足して終わり、と言った感じですw
ちなみに、XDMCPより50MBほど多くメモリを消費してます。(BeagleBone Black上)

UltraVNC Viewerを終了させると、デスクトップ上のプロセスも全て終了する。


VNC接続するための設定 その2(シングルユーザ対応)
その2では、セッション断後もデスクトップは保持され続けるようにするための設定。

■X11vncのインストール
# yum -y install x11vnc

任意のユーザアカウントにて、Xfce用の.xinitrcを作成
$ echo exec /usr/bin/xfce4-session > ~/.xinitrc

同ユーザにてstartx
$ startx &

さらに同ユーザにてx11vncを起動する。
$ x11vnc -display :0 -forever &

この状態で、Windowsより UltraVNC Viewer にて接続する。

■UltraVNC ViewerによるVNC接続
UltraVNC Viewerを起動し、VNC Server 欄に、host:display の形式で以下のように記述。


接続すると、startx を実行したユーザでログインした状態となる。


使用感はVNCその1と同じ。

なお、この接続の場合、パスワードなしで接続できてしまうが、UltraVNCにてパスワードを利かせるようにするには、過去記事を参照。

本接続の場合、UltraVNC Viewerを終了させても、デスクトップ上のプロセスは残ったままとなる。

以上。


各接続方法に関する考察

今回試した接続方法は以下の3つ。
(1).XDMCP接続
(2).VNC接続その1(Xvnc)
(3).VNC接続その2(X11vnc)

それぞれ一長一短があり、まとめると以下の通り。
(1).XDMCP接続
 マルチユーザ、超もっさり、メモリ小、セッション断でデスクトップ消滅

(2).VNC接続その1(Xvnc)
 マルチユーザ、もっさり、メモリ大、セッション断でデスクトップ消滅

(3).VNC接続その2(X11vnc)
 シングルユーザ、もっさり、メモリ大、セッション断でもデスクトップは維持


以上、リソースを抑えたい場合は「XDMCP接続」、セッション断後もデスクトップで処理を継続させたい場合は、「X11vnc接続」といった感じだろうか。

あと「X11vnc接続」は、以前のデスクトップが継続しているので、再接続時のデスクトップ形成は圧倒的に早い。

ただ、いずれも、もっさりすぎて常用には耐えない。
一時的な設定にGUIを使いたいだけであればどの方式でもいいし、デスクトップに常駐が必要なもの(wine経由のアプリ等)であれば、「X11vnc接続」という使い分けだろう。

posted by frogie at 00:43 | Comment(0) | TrackBack(0) | BeagleBone Black | このブログの読者になる | 更新情報をチェックする