トップ «前の日記(2009/10/30(Fri)) 最新 次の日記(2009/11/04(Wed))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2009/11/02(Mon) ゼミナール発表終了! [長年日記] 20:00現在 10℃

_ [FC][Ubuntu][Linux][Windows][研究関係][雑記]ひとつのキーボードとマウスで複数のコンピュータを使用する(Synergy)

Synergyはタイトルのことをソフトウェアだけで実現できる素晴らしいソフト!

対応プラットフォームの幅も広く、Windowsは95からのほぼ全てのバージョンで動作可能。また、Linux/UNIXや、Mac OS Xでも動作できる。

詳しくはSynergyでググるべし。

*前提:すべてのコンピュータをTCP/IPネットワークで接続する必要があり、また、動かしたいPC全てにこのソフトを入れる必要がある。

以下、使い方の概要だけ述べる。

まず、公式サイト(http://synergy2.sourceforge.net/)に行って、インストールしたいOSに合ったものをDownLoadページからDLする。

で、OSに合わせて適当にインストール。

Windowsの場合は.exeをクリックして後は普通にインストール。

rpm系Unixの場合はrpmをインストール。

それ以外のUnixの場合はソースからなので少し面倒だが、基本的には解凍して、

 $ ./configure
 $ make
 # make install

でいけるはず。

*XTestがないと言われた場合は、

 $ sudo apt-get install libxtst-dev

で入れる。

*ubuntuでは

 $ sudo apt-get install synergy

でも出来るっぽい。というか、自分の場合はmakeで失敗したのでapt-getの方をお薦めする。

未確認だが、macの場合は「synergyc」と「synergys」を/usr/local/binに、設定ファイル「synergy.conf」を/etcにでも配置すればいいらしい。というか、配置場所はどこでもよさそう。

んで、設定を行う。

Windows

XPの場合は、ほとんどGUIでできるので問題ないはず。分からなければググれ。

特にこのページ(http://e0166.blog89.fc2.com/blog-entry-435.html)がかなり役に立った。

ザくっとまとめる。

サーバの場合

synergy.exeをダブルクリックして synergyを起動。

〜〜(server)と書かれている部分にチェックを入れ、configureをクリック。

screens:の下の方の+をクリックして、サーバにしたいPCの名前と「クライアントとなるマシンの名前」を登録する。

(コンピューター名は、マイコンピュータを右クリックし、プロパティを開き、コンピューター名タブをクリックすれば確認できる)

*というか、Synagyを起動させて「info」ってボタンを押せば必要な情報が全て分かるはず。

で、次に、Links:の下にあるNew Linksをクリックして、

画面のどの方向にどのPCの画面を配置するかを指定する。(サーバを中心とした配置)

あとはStartを押してサーバーを起動すればサーバーの設定は完了。

クライアントの場合

〜〜(server)と書かれている部分にチェックを入れ、サーバー側のコンピューター名(動かない場合はIPアドレス)を入力。

で、入力後、『Start』ボタンを押せば起動できる。

Unix

サーバの場合

エディタで、/etc/synergy.confを直接編集する。

section: screens
  [server-machine]:
  [client-machine]:
end
section: links
  [server-machine]:
    right = [client-machine]
  [client-machine]:
    left = [server-machine]
end

それぞれ、

[server-machine] をprimary screenを持つコンピュータのホスト名に、

[client-machine] を secondary screenを持つコンピュータのホスト名に置き換えること。

スクリーンの位置は、right/left/up/downが指定できる.

で、設定ファイルを書き換えたら、

 $ synergys -f --config synergy.conf

としてフォアグラウンドモードで起動してテスト。(停止はctrl+c)

正常に起動することが確認できたら、synergyを、バックグラウンドで起動

 $ synergys

*100805追記

上記にしたがって「synergy.conf」を書いたのに次のようなエラー

 DEBUG: synergys.cpp,1051: opening configuration "synergy.conf"
 DEBUG: synergys.cpp,1058: cannot open configuration "synergy.conf"
 synergys: no configuration available

が出た場合、「synergy.conf」の場所が分からないだけということがありえる。

なので、パスを設定するか、

 $ synergys -f --config /etc/synergy.conf

 $ synergys --config /etc/synergy.conf

のように、明示的に指定する必要がある。

クライアントの場合
 $ synergyc -f [server-host-name]

を打つだけでOK。

ここで、[server-host-name]はsynergy サーバーを実行しているコンピュータのホスト名で置き換えること。

ただ、まずは念のために

 $ synergyc -f [server-host-name]

としてフォアグラウンドで起動してテストした方がいいと思う。

自動起動させる

どっかで見かけたメモ書きの内容の更にメモ書き。深刻なダメージを受けても責任は持たん。

*ログイン画面で起動している必要がないなら、Ubuntuなら普通に、起動時に動かすプログラムをGUIで設定できるはず。

というわけで、以下メモ。

ログイン前に自動起動する場合には /etc/gdm/Init/Default の

「sysmodmap=/etc/X11/Xmodmap」の直前に、

ログイン後に自動起動する場合には、 /etc/gdm/PreSession/Default の「XSETROOT=`gdmwhich xsetroot`」の直前に、

サーバorクライアントの起動処理を書く。

<サーバの場合>

SYNERGYS=`gdmwhich synergys`
if [ x$SYNERGYS != x ] ; then
$SYNERGYS --config /etc/synergy/synergy.conf
fi

<クライアントの場合>

SYNERGYC=`gdmwhich synergyc`
if [ x$SYNERGYC != x ] ; then
$SYNERGYC [server-host-name]
fi

[server-host-name]はサーバのホスト名(IPアドレス)で置き換えること。

Mac

知らん。

動かない場合

ファイアーウォールが邪魔をしている可能性大。

ポート (24800) を開けておくこと。

最後に一言

コレとVNCを併用すると、凄く使い勝手がいい!・・・らしいよ?

_ [Ubuntu][Linux][プロジェクト実習][雑記]特定のIPアドレスからの接続を許可する

ufwでは次のコマンドで可能。

 $ sudo ufw allow from 192.168.0.3

これは192.168.0.3からの通信を全て受け付けるように設定である。

また、

 $ sudo ufw allow from 192.168.0.3 to any port 24800

と書くと、特定のポート(24800)を,192.168.0.3というホストに対して許可できる。

その他のLinuxについては知らん。

_ [FC][Ubuntu][Linux][Windows][Mac][研究関係][雑記]コンピュータ名の調べ方

Windowsの場合

マイコンピュータを右クリックし、プロパティを開き、コンピューター名タブをクリック。

Vistaの場合は、コンピュータを開いて、システムのプロパティをクリックしても見れる。

*訂正

Windowsだとローマ字の大文字と小文字の区別がないが、他のOSだと区別されることが多い。

なので、正しい名前を得たい場合は、コマンドプロンプトを開いて、

 C:\> hostname

と打つのが確実。

Linuxの場合

ターミナルを開いて

 $ hostname

以上!

Macの場合

Dockの「システム環境設定」をクリック。

んで、「インターネットとネットワーク」から「共有」をクリックすれば見れる。

*訂正。

これだと正確な名前が出ないので、Synagyなどでこの名前を登録しても使えないっぽい。

なので、Linuxと同様に、ターミナルを開いて

 $ hostname

するのが確実っぽい。

まとめ

とりあえず「hostname」を打て!以上!