4.slinkインストール

「4.slinkインストール」の編集履歴(バックアップ)一覧に戻る

4.slinkインストール - (2007/10/21 (日) 20:38:59) のソース

コントロールS出力端子アダプタが製作できたら、それを制御するドライバを準備します。

*slinkについて
slinkは [[http://www.undeadscientist.com/slink/index.html>http://www.undeadscientist.com/slink/index.html]]で公開されています。
最初 Controle-A1/A2, S-Link 端子持った機器をコントロールするためのドライバで
主にSONY製CDチェンジャーをコントロールするために作られたようです。
後年 ハードとともにコントロールS端子対応へ拡張されたようです。

*コントロールSについて
コントロールSはSONY独自規格のAV機器間のリンクプロトコルです。
他にもSONYにはコントロールA1,コントロールA2(またの名をS-Link)やLANCなどと言った規格を持っています。
slinkは名前の元になった コントロールA1/A2(S-Link)に対応しているのですが、何が違うかと言えば、
コントロールA1/A2は双方向通信でバス接続が可能であるのに対して、コントロールSは出力側から入力側へのー方向、Point-To-Pointの通信です。
コントロールSのプロトコルフォーマットはSONY製赤外線リモコン(SIRCS)と同じになっています。
「赤外線リモコンをそのままワイヤー接続にしたもの」がコントロールSの実体といっても過言ではないでしょう。

参考⇒[[http://www.boehmel.de/protocl.htm>http://www.boehmel.de/protocl.htm]]

最近はHDMIなどに取って代わられ、民生分野の製品にコントロールS端子は装備されなくなりつつあります。
海外製のSky Parfect TV チューナーには端子があるようなのですが、
[[SONYのサイト>http://www.ecat.sony.co.jp/visual/tuner/index.cfm?B2=42]]で見る限り、国内版にはついていないようです。
SONY製デジタルチューナーでもコントロールS入力端子を持つのは、DST-TX100,300,500,TX1,VGP-DTU1位で
現行製品は DST-TX1だけみたいです。
----

*ドライバの準備
ドライバは[[S-Link Device Driver Download>http://www.undeadscientist.com/slink/driverdownload.html]]にあるのですが、
そこにあるslink-3.1.4.tar.gz は CentOS 5のkernel2.6.18ではコンパイルに失敗してしまいます。
作者のBrian Behlendorf さんにメールしたら 最新版 slink-3.1.7.tar.gz を送ってくれましたので、このサイトに転載しておきます。 
ダウンロード⇒[[slink-3.1.7.tar.gz>http://www42.atwiki.jp/foltia/pub/source/slink-3.1.7.tar.gz]]


constユーザでダウンロードしておきます。
 [const@foltia ~]$ cd rpmbuild/SOURCES/
 [const@foltia SOURCES]$ wget http://www42.atwiki.jp/foltia/pub/source/slink-3.1.7.tar.gz
----

*ソースへのpatch
コントロールSは赤外線リモコンとプロトコルフォーマットが同一なので、
13bitまたは8bit、5bitのデバイスコードが必要です。
slinkを使ってデジタルチューナをコントロールするためには、デバイスコードを調べてソースに書き込む必要があります。

デバイスコードの調査にはLIRC付属のmode2使って実機のリモコンから収集しましたが、
その方法はメモにして残してありましすので、興味のある方は[[参考>http://www42.atwiki.jp/foltia/pub/data/slink/howtoget_devicecode_for_slink.txt]]にしてください。

さて、デバイスコードはDST-TX300で0x0B43,DST-TX1で0x0BCEになります。
DST-TX300のリモコンの型番はRM-J326D、DST-TX1はRM-J322Dなので、同じリモコンを使うチューナなら同じデバイスコードになると思います。
これを src/driver/slink.h に書き込みます。

その他、手直しをする必要がありますが、patchは[[こちら>http://www42.atwiki.jp/foltia/pub/source/slink.patch]]になります。

slinkのソースコードと同じディレクトリにdownloadしておきます。
 [const@foltia ~]$ cd rpmbuild/SOURCES/
 [const@foltia SOURCES]$ wget http://www42.atwiki.jp/foltia/pub/source/slink.patch

BUILDディレクトリに移動した上でソースを展開。patchを適用します。
 [const@foltia SOURCES]$ cd ~/rpmbuild/BUILD/
 [const@foltia BUILD]$ tar zxf ../SOURCES/slink-3.1.7.tar.gz
 [const@foltia BUILD]$ patch -p0 <../SOURCES/slink.patch
 patching file ./slink-3.1.7/src/driver/slink.h
 patching file ./slink-3.1.7/scripts/slink
 patching file ./slink-3.1.7/src/utils/slink_cmd.c
 [const@foltia BUILD]$
----

*make
本来であればソースに含まれるSPECファイルを使ってrpmを作成すべきところですが、
CentOS5ではうまくbuildできないので、通常のmakeで対応します。
READMEに従って、以下のコマンドでmakeします。


BUILD/slink-3.1.7にcdしてautogen.shスクリプトを実行します。

 [const@foltia BUILD]$ cd ./slink-3.1.7
 [const@foltia slink-3.1.7]$ ./autogen.sh
 configure.in: installing `./install-sh'
 configure.in: installing `./missing'
 configure.in:2: installing `./config.guess'
 configure.in:2: installing `./config.sub'
 [const@foltia slink-3.1.7]$

次にconfigureスクリプトを実行しますが、--with-linux= 引数で linux srcディレクトリを指定します。
kernel-headers-2.6.18-8.1.14.el5 をインストールしている場合は以下のようにします。

 [const@foltia slink-3.1.7]$ ./configure --with-linux=/usr/src/kernels/2.6.18-8.1.14.el5-i686/
 checking build system type... i686-pc-linux-gnu
 checking host system type... i686-pc-linux-gnu
 (中略)
 config.status: creating Makefile
 config.status: creating src/Makefile
 config.status: creating src/utils/Makefile
 config.status: creating scripts/Makefile
 config.status: creating man/Makefile
 config.status: creating html/Makefile
 config.status: creating src/driver/config.h
 config.status: executing depfiles commands
 [const@foltia slink-3.1.7]$
うまくいけば、エラーなく終了します。

configureが通ったら、makeします。
 [const@foltia slink-3.1.7]$ make
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/src/utils' から出ます
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/src' に入ります
 make[2]: `all-am' に対して行うべき事はありません.
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/src' から出ます
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/src' から出ます
 Making all in scripts
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/scripts' に入ります
 make[1]: `all' に対して行うべき事はありません.
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/scripts' から出ます
 Making all in man
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/man' に入ります
 make[1]: `all' に対して行うべき事はありません.
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/man' から出ます
 Making all in html
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' に入ります
 make[1]: `all' に対して行うべき事はありません.
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' から出ます
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' に入ります
 make[1]: `all-am' に対して行うべき事はありません.
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' から出ます
 [const@foltia slink-3.1.7]$
上記のようなメッセージが表示されれば正常にmakeできています。
----

*インストール
makeが正常に終了したら、以下のようにしてインストールします。

 [root@foltia slink-3.1.7]# make install
 (中略)
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' に入ります
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' に入ります
 make[2]: `install-exec-am' に対して行うべき事はありません.
 make[2]: `install-data-am' に対して行うべき事はありません.
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' から出ます
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7/html' から出ます
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' に入ります
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' に入ります
 make[2]: `install-exec-am' に対して行うべき事はありません.
 make[2]: `install-data-am' に対して行うべき事はありません.
 make[2]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' から出ます
 make[1]: ディレクトリ `/home/const/rpmbuild/BUILD/slink-3.1.7' から出ます
 [root@foltia slink-3.1.7]#

*動作確認
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。