通知の必要なスクリプトとTwitterを連携するためにTTYtterを導入してみた。

インストール

aptでインストールできる。

$ sudo aptitude install ttytter

認証

初めて使うときにOAuth認証が行われる。SSLが必須なのでsslオプションを指定する。

$ ttytter -ssl

URLが表示される

1. Visit, in your browser, ALL ON ONE LINE,

https://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ブラウザでURLに接続する。ログインして、連携アプリを認証すると、数字が表示される。この数字を入力する。

5. A PIN will appear. Enter it below.

Enter PIN>0123456

認証は完了。もう一度実行するとタイムラインが表示される。

コマンドラインでツイートする

コマンドラインから簡単にツイートできる。

$ ttytter -ssl -status="<ツイートする内容>"

改行は使用できない。文字数を超えてしまうと失敗する。autosplitオプションで自動分割される。

$ ttytter -ssl -autosplit -status="<ツイートする内容>"

設定

~/.ttytterrcで初期設定を保持できる。sslオプションを省略するには~/.ttytterrcを次のようにする。

vi ~/.ttytterrc
ssl=1

sslオプションを指定しなくてもSSLで通信するようになる。

アクセストークンの取得

開発アカウント以外で面倒な別アカウントのアクセストークンの取得をttytterで行う。

$ ttytter -ssl -oauthwizard -keyf=./<出力先ファイル> -oauthkey=<ConsumerKey> -oauthsecret=<ConsumerSecret>

oauthwizardオプションでOAuth認証が行われる。オプションで出力先ファイル、ConsumerKey、ConsumerSecretを指定している。出力先にディレクトリが含まれないと~/.ttytterkey<ファイル名>に出力される。

アクセストークンを確認する。

$ cat <出力先ファイル>
ck=X&cs=X&at=<AccessToken>&ats=<AccessTokenSecret>

4月 12th, 2015

Posted In: ウェブ, ソフトウェア

タグ: , , ,

Leave a Comment

jsを簡単に編集しようとエディタのAtomを入れてみた。パッケージを使って機能を拡張できる。

日本語化にはパッケージのlocalizationを使うが、簡単にはインストールできなかった。ふと、"japanese"でパッケージを検索してみると、japanese-menuというプラグインを見つけた。インストールするだけでメニューが日本語になる。localizationと違い右クリックメニューまで日本語化される。japanese-menujapanese-wrapを入れて日本語化は完了。

用途に合わなかったのでAtomは使っていない。

4月 7th, 2015

Posted In: ソフトウェア

タグ:

Leave a Comment

JKCommentGetterを使えば、ニコニコ実況のコメントを簡単に取得できる。これをLinuxで使ってみる。

JKCommentGetterの導入

ソースを取得する

git clone https://github.com/ACUVE/JKCommentGetter.git

実行してみる

$ cd JKCommentGetter
$ ruby JKCommentGetter.rb
JKCommentGetter.rb.orig:82: invalid multibyte char (US-ASCII)
JKCommentGetter.rb.orig:81: syntax error, unexpected $end, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END

エラーが出て動かない

文字コードを指定すると動く

$ ruby -Ku JKCommentGetter.rb
** 引数が足りません **

Usage: ruby JKCommentGetter.rb チャンネル 取得時間範囲のはじめ 取得時間範囲のおわり [option...]
Options:
  -m sec  --margin sec                取得時間範囲の前後を指定秒だけ広げます
  -s sec  --start-margin sec          取得時間範囲のはじめを指定秒だけ早くします
  -e sec  --end-margin sec            取得時間範囲のおわりを指定秒だけ遅くします
  -f [filename]  --file [filename]    出力するファイル名を指定します
  -x  --xml                           出力フォーマットをXMLにします
  -j  --jkl                           出力フォーマットをJikkyoRec互換っぽくします
  -t  --time-header                   NicoJKフォーマットの一番初めに時刻ヘッダを追加します
  -o comment  --comment commment      ファイルの頭の辺りに指定したコメントを追加します
  -b path  --base-path path           ファイル出力のフォルダを指定します
  -d  --directory                     チャンネルと同じ名前のフォルダの中にファイルを出力します
  -c  --check-file                    取得時間範囲がよく似たファイルが存在する場合ダウンロードしなくなります
  -a sec  --check-range sec           よく似たファイルと判定する時間範囲を設定します
  -r num  --retry num                 取得エラーが発生した際に再取得へ行く回数
  -i cookie  --cookie cookie          Cookieとして利用する文字列を与えます
  -p  --perfect                       完全なコメントが取得できたと保証できない時にエラーで落ちるようにします
  -w  --working-directory             カレントディレクトリをスクリプトがあるフォルダにします
  -h  --help                          このヘルプを表示し終了します

    詳細は README.md をご覧ください

スクリプトを直接実行するにはJKCommentGetter.rbとJKComment.rbの先頭に次の二行を追加する。

#! ruby -EUTF-8
# -*- mode:ruby; coding:utf-8 -*-
$ vi JKComment.rb
$ vi JKCommentGetter.rb #追記
$ chmod +x JKComment.rb JKCommentGetter.rb
$ ./JKCommentGetter.rb

そのままではログインにCookieが必要なので、自動取得できるようにする。JKCommentGetter.rbのgetCookieを書き換えてcurlでCookieを取得させる。

diff

emailとpasswordはそれぞれ書き換える。

次のように使う

$ ruby -Ku JKCommentGetter.rb jk1 `date -d "4:00" +%s` 30m -x -f output.xml

この場合、NHK総合の4時から30分後までのログをXML形式でoutput.xmlに保存される。日付はUNIX時間かYYYYMMDDhhmmss形式で指定する。終わりの時間は経過時間を数字にs,m,h,dなどの単位をつけても指定できる。詳しい使い方は配布元に書いてある。

簡易スクリプト

対話形式でチャンネルと時間を指定するシェルスクリプトを書いてみた。

$ sh jkget.sh -x -f /path/to/output.xml
jk1   NHK 総合    jk101  NHKBS-1            jk231  放送大学
jk2   Eテレ       jk103  NHK BSプレミアム   jk234  BSグリーンチャンネル
jk4   日本テレビ  jk141  BS 日テレ          jk236  BSアニマックス
jk5   テレビ朝日  jk151  BS 朝日            jk238  FOX bs 238
jk6   TBS テレビ  jk161  BS-TBS             jk241  BSスカパー!
jk7   テレビ東京  jk171  BSジャパン         jk242  J Sports 1
jk8   フジテレビ  jk181  BSフジ             jk243  J Sports 2
jk9   TOKYO MX    jk191  WOWOWプライム      jk244  J Sports 3
jk10  テレ玉      jk192  WOWOWライブ        jk245  J Sports 4
jk11  tvk         jk193  WOWOWシネマ        jk251  BS釣りビジョン
jk12  チバテレビ  jk200  スターチャンネル1  jk252  IMAGICA BS
                  jk201  スターチャンネル2  jk255  BS日本映画専門チャンネル
                  jk202  スターチャンネル3  jk256  ディズニー・チャンネル
                  jk211  BSイレブン         jk258  Dlife
                  jk222  TwellV             jk910  SOLiVE24
Channel>1
jk1
Date>4:00
2015年  2月 22日 日曜日 04:00:00 JST
Length(min)>30
/path/to/JKCommentGetter.rb jk1 1424545200 30 -x -f /path/to/output.xml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    57    0     0  100    57      0     49  0:00:01  0:00:01 --:--:--    51
log: jk1 を 2015-02-22 04:00:00 +0900 から 2015-02-22 04:30:00 +0900まで取得します
log: スレッド1424545201から読み込み開始: start_time=2015-02-22 04:00:01 +0900, end_time=2015-02-22 16:20:03 +0900
log: スレッド1424545201から629コメント読み込んだ: 2015-02-22 04:00:09 +0900
log: スレッド1424545201から読み取り完了: size=629
log: スレッド1424458801から読み込み開始: start_time=2015-02-21 04:00:01 +0900, end_time=2015-02-22 04:00:15 +0900
log: スレッド1424458801から1000コメント読み込んだ: 2015-02-22 01:06:28 +0900
log: スレッド1424458801から読み取り完了: size=6
log: /path/to/output.xml へ出力します
OFFSET: 0

OFFSETには開始時間を再生時間0秒に合わせるための秒数が表示される。こめたんぷれいやのシフトなどに指定する。

ソース

再生ソフト(Windows)

Linuxのソフトは不明。Androidにはエンコードが必要だがNicoLがある。

TVTestTvTPlayプラグインとNicoJKプラグインを利用する。
導入に手間はかかるがTSファイルの時間に合わせてログが再生される。この場合はrecpt1などにsidオプションを指定するとTOTが削られ使用できなくなる。TSファイル専用。
こめたんぷれいや
コメント設定でシフトを設定する必要はあるが、TSファイル以外の動画にも対応する。TSファイルの再生にはLavFiltersが必要。

2月 22nd, 2015

Posted In: ソフトウェア

タグ: , , , ,

Leave a Comment

先月にDVB版PT3ドライバがLinuxカーネルに取り込まれた。PX-S1UDも今年取り込まれている。PX-S1UDのドライバは3.15以降で、PT3のDVB版ドライバは3.18以降で使えるようになる。

両方のドライバをDebianで使えるようにしてみた。

DebianでPX-S1UDを使う

PX-S1UDには3.15以降のカーネルで対応するので、Debianのカーネルをアップグレードすればいい。

PX-S1UDの接続確認

$ lsusb | grep VidzMedia
Bus 001 Device 002: ID 3275:0080 VidzMedia Pte Ltd

バックポートリポジトリの追加

$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64

unzipのインストール

$ sudo aptitude install unzip

Windows用ドライバからファームウェアを導入

$ cd /usr/local/src/
$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/

再起動

$ sudo reboot

ドライバを確認

$ lsmod | grep smsusb
smsusb                 17036  0
smsmdtv                47106  2 smsdvb,smsusb
usbcore               199395  5 uhci_hcd,ehci_hcd,ehci_pci,smsusb,usbhid
$ ls /dev/dvb/
adapter0

DebianでDVB版PT3ドライバを使う

Linux3.18で対応するが、Wheezyではまだ使えないのでV4L-DVBドライバをインストールする。ビルドには3.8以降のカーネルが必要になる。カーネルのアップグレードまではPX-S1UDと共通。

PT3の確認

$ lspci | grep Multimedia
03:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)

バックポートリポジトリの追加

$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64

再起動して確認

$ sudo reboot
$ uname -r
3.16-0.bpo.2-amd64

必要なパッケージのインストール

$ sudo aptitude install git build-essential patchutils libproc-processtable-perl linux-headers-3.16-0.bpo.2-amd64

ビルド

$ cd /usr/local/src/
$ git clone --depth=1 git://linuxtv.org/media_build.git
$ cd media_build
$ ./build

インストール

$ sudo make install

ドライバモジュールのロード

$ sudo modprobe earth-pt3

ドライバの確認

$ lsmod |grep earth_pt3
earth_pt3              21751  0
dvb_core              110088  1 earth_pt3
i2c_core               50108  4 drm,i2c_piix4,drm_kms_helper,earth_pt3
$ ls /dev/dvb/
adapter0  adapter1  adapter2  adapter3

chardev版PT3ドライバを使い続ける際の注意点

Linux3.18以降を使う場合、DVB版ドライバをブラックリストに追加しておかないとDVB版ドライバが使われてしまう。PT3はearth-pt1ではなくearth-pt3を/etc/modprobe.d/blacklist.confに追加する。PT1/2を使っていない場合、earth-pt1を追加しても何の効果もない。

$ sudo sh -c "echo 'blacklist earth-pt3' >> /etc/modprobe.d/blacklist.conf

10月 26th, 2014

Posted In: ハードウェア

タグ: , , , , , , ,

2 Comments

PT1/PT2のDVBとMythTV @Wikiに置かれているパッチと修正版BSパッチをgithubにまとめてみた。パッチはgit-diffで作成した。Debian wheezyで軽く動作確認。

BS対応がたった1行移植し忘れてるだけとは思わなかった。これでGWに帰省したらOSのアップグレードができる。

4月 26th, 2014

Posted In: ソフトウェア

タグ: , , , ,

Leave a Comment

Debianのパッケージでlibvirtdを導入している。libvirtグループに所属していれば一般ユーザーでもvirt-managerで仮想マシンの管理ができるが、virshでの操作が行えない。一般ユーザーにはデフォルトのホストが設定されていないからだ。

仮想マシンが稼働している環境でも一覧が表示されない。

$ virsh list
 Id    Name                           State
----------------------------------------------------

接続先のURIが指定してみると表示される。

$ virsh -c qemu:///system list
 Id    Name                           State
----------------------------------------------------
 1     www                            running

rootにはデフォルトの接続先が設定されている。これは/etc/libvirt/libvirt.confで設定できる。

$ cat /etc/libvirt/libvirt.conf | grep uri_default
#uri_default = "qemu:///system"

これは一般ユーザーには適用されない。一般ユーザーは環境変数を設定する必要がある。

LIBVIRT_DEFAULT_URIにURIを設定すると接続先指定なしで接続できる。

$ export LIBVIRT_DEFAULT_URI="qemu:///system"
$ virsh list
 Id    Name                           State
----------------------------------------------------
 1     www                            running

.bashrcで常に適用されるようにする。

$ echo 'export LIBVIRT_DEFAULT_URI="qemu:///system"' >> ~/.bashrc

参考:libvirt: Connection URIs

4月 13th, 2014

Posted In: ソフトウェア

タグ: , , ,

One Comment

PX-S1UDをLinuxで使えるようにしたのでChinachuと組み合わせてみた。録画にはrecdvbを使う。

現在はこちらのドライバが安定している。

暗号化の解除

録画時にB25デコードをかける場合はlibarib25やFUSE_b25をインストールしておく。

recdvbのセットアップ

PT3などと同じように録画するには録画コマンドrecdvb(recpt1の改造版)をこちらからダウンロードしておく。手順はrecpt1と変わらない。

必要なパッケージのインストール

$ sudo aptitude install automake

ビルドとインストール

$ cd /usr/local/src/
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.2.0.tgz
$ tar xvzf recdvb-1.2.0.tgz
$ cd recdvb-1.2.0
$ ./autogen.sh
$ ./configure --enable-b25 #libarib25でデコードする場合
$ make
$ sudo make install

recpt1などが入っている場合checksignalが上書きされるので注意。recdvbはPT2、PT3のDVBドライバでも使えるが、衛星放送には対応していない。checksignalも形式が違うのであまり当てにならない。

録画テスト

$ recdvb --dev 0 --b25 --strip チャンネル番号 録画秒数 録画ファイル名

/dev/dvb/adapter0の場合–devに0を指定。

Chinachuのインストール

Chinachuwikiに従えば問題なくインストールできる。DVBデバイスの場合、実行ユーザーをvideoグループに所属させる必要があるので注意が必要。

必要なパッケージのインストール(wikiの記述通り)

$ sudo apt-get install build-essential curl git-core libssl-dev yasm libtool autoconf

実行ユーザー作成

$ sudo adduser chinachu
$ sudo adduser chinachu video #デバイスの操作はvideoグループにしかできないので、グループに追加
$ sudo adduser chinachu sudo #インストール・アップデートのためにsudoグループに追加

ユーザーをchinachuに切り替え

$ sudo -i -u chinachu

ソースの取得

$ git clone git://github.com/kanreisa/Chinachu.git chinachu

インストール

$ cd chinachu
$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/chinachu/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full)            5) Node.js Modules       9) libfdk-aac
2) Auto (fast)            6) epgdump              10) libogg
3) submodule              7) libx264              11) libvorbis
4) Node.js Environment    8) libvpx               12) libav
what do you install? > 1
selected: Auto (full)

サービスの登録

$ ./chinachu service operator initscript > /tmp/chinachu-operator
$ ./chinachu service wui initscript > /tmp/chinachu-wui
$ sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/
$ sudo insserv chinachu-operator
$ sudo insserv chinachu-wui

設定ファイルの作成

$ cp config.sample.json config.json #サンプルのコピー
$ sudo vi config.json

録画ファイルの保存先を設定

  "recordedDir" : "./recorded/",

ユーザーの設定

  "wuiUsers": [
    "ユーザー名:パスワード"
  ],

外部から見られないのであれば、設定そのものを削除してもいい。

ファイル名のフォーマット

"recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts",

フォーマットに使えるタグは/node_modules/chinachu-common/lib/chinachu-common.jsのexports.formatRecordedNameを見るとわかる。下に一覧を用意した。

チューナーの設定

  "tuners": [
    {
      "name"        : "PX-S1UD",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "recdvb --dev 0 --b25 --strip --sid <sid> <channel> - -"
    }
  ],

/dev/dvb/adapter0の場合–devに0を指定する。

チャンネル設定

  "channels": [
    { "type": "GR", "channel": "16" },
    { "type": "GR", "channel": "21" },
    { "type": "GR", "channel": "22" },
    { "type": "GR", "channel": "23" },
    { "type": "GR", "channel": "24" },
    { "type": "GR", "channel": "25" },
    { "type": "GR", "channel": "26" },
    { "type": "GR", "channel": "27" }
  ]

地域に合わせて設定する

サービスの起動

$ sudo service chinachu-operator start
$ sudo service chinachu-wui start

しばらく待つと番組表が作成される。

WUIに接続

ブラウザに"http://IPアドレス:10772/"と入力するとChinachuのWUIに接続できる。ここから予約や録画ファイルの視聴・管理が行える。ストリーミング再生を無変換以外で使うにはそれなりのスペックが必要。番組表からできるライブ視聴はエンコードが必要で信頼性がまだ低いので、予約録画して再生した方がいい。

エイリアス

他のユーザーでchinachuコマンドをそのまま使うのはまずそうなので、普段使っているユーザーで使えるようにエイリアスを追加。(次回ログインから有効)

$ echo "alias chinachu='sudo -u chinachu /home/chinachu/chinachu/chinachu'" >> ~/.bash_aliases

CLIコマンド

自動予約ルール確認

$ chinachu rules

予約済み番組の確認

$ chinachu reserves

録画中番組の確認

$ chinachu recording

録画済み番組の確認

$ chinachu reserves recorded 

Chinachuのアップデート

$ chinachu updater

番組表手動更新

$ chinachu update

番組表の作り直し

$ chinachu update -f

ロックファイルの削除

$ chinachu unlock

ファイル名のフォーマット

<date:日付フォーマット>
日時。dateformatが使われる。
<id>
番組ID
<type>
放送波の種類
<channel>
チャンネル番号
<channel-id>
チャンネルID
<channel-sid>
SID
<channel-name>
チャンネル名
<tuner>
チューナー名
<title>
タイトル
<fulltitle>
EPGで受信したタイトル
<subtitle>
サブタイトル
<episode>
話数
<category>
ジャンル

3月 23rd, 2014

Posted In: ソフトウェア, ハードウェア

タグ: , , , , , , , , , , ,

Leave a Comment

PLEXのUSBチューナーPX-S1UDがLinuxで使えるというので試してみた。標準ドライバに少し手を加えて使えるようにする。環境はDebian(wheezy)。

追記:ドライバがカーネルに組み込まれたのでこちらを参照。PX-S1UDとPT3のDVBドライバがLinux標準に – 底辺迷走

カーネルのアップグレード

Debian(wheezy)に導入されているカーネル3.2に含まれているドライバはPX-S1UDに使えないので、新しいカーネルを導入しておく。カーネル3.10以降であればアップグレードは不要。

使われているカーネルを確認

$ uname -r
3.2.0-4-amd64

Backportsリポジトリを追加

$ sudo sh -c "echo 'deb http://ftp.debian.org/debian/ wheezy-backports main' > /etc/apt/sources.list.d/wheezy-backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.12-0.bpo.1-amd64

カーネルを入れ替えるために再起動

$ sudo reboot

カーネルを確認

$ uname -r
3.12-0.bpo.1-amd64

ドライバのビルド

必要なパッケージのインストール

$ sudo aptitude install build-essential linux-source-3.12 linux-headers-3.12-0.bpo.1-amd64

カーネルソースの展開

$ cd /usr/local/src/
$ tar xvJf /usr/src/linux-source-3.12.tar.xz

ビルドの準備

$ cd linux-source-3.12/
$ cp /boot/config-`uname -r` .config
$ make oldconfig
$ make modules_prepare
$ cp /lib/modules/`uname -r`/build/Module.symvers .

ドライバの階層に移動

$ cd drivers/media/usb/siano/

ソースを修正する

$ vi smsusb.c

usb_device_id smsusb_id_tableに次の2行を追加

        { USB_DEVICE(0x3275, 0x0080),
                .driver_info = SMS1XXX_BOARD_SIANO_RIO },

変更内容

$ diff -u smsusb.c{.org,}
--- smsusb.c.org        2014-01-26 02:18:00.000000000 +0900
+++ smsusb.c    2014-03-21 19:59:07.922682492 +0900
@@ -634,6 +634,8 @@
                .driver_info = SMS1XXX_BOARD_ZTE_DVB_DATA_CARD },
        { USB_DEVICE(0x19D2, 0x0078),
                .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD },
+       { USB_DEVICE(0x3275, 0x0080),
+               .driver_info = SMS1XXX_BOARD_SIANO_RIO },
        { } /* Terminating entry */
        };

ドライバモジュールのビルド

$ make -C /usr/local/src/linux-source-3.12 M=`pwd` modules

ドライバのインストール

"make modules_install"ではうまくインストール出来ないのでcpでインストールする。Windows用ドライバに含まれるファームウェアも必要なので導入しておく。

元のモジュールを上書きするので、バックアップする

$ sudo mv /lib/modules/`uname -r`/kernel/drivers/media/usb/siano/smsusb.ko{,.org}

ドライバモジュールのインストール

$ sudo cp smsusb.ko /lib/modules/`uname -r`/kernel/drivers/media/usb/siano/
unzipのインストール
$ sudo aptitude install unzip

Windows用ドライバからファームウェアを導入

$ cd /usr/local/src/
$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/

ドライバのロード

PX-S1UDの接続確認

$ lsusb |grep VidzMedia
Bus 002 Device 002: ID 3275:0080 VidzMedia Pte Ltd

ドライバモジュールのロード

$ sudo modprobe smsusb

デバイスの確認

$ ls /dev/dvb/
adapter0

ドライバモジュールを自動で読み込ませる

$ sudo sh -c "echo smsusb >> /etc/modules"

DVBデバイスとして認識されるので他のDVBデバイス同様に扱える。FUSE_b25を使えばMythTVでも使える。

参考:

3月 21st, 2014

Posted In: ハードウェア

タグ: , , , , , , , , ,

Leave a Comment

Philipsのディスプレイ234E5QHSB/11を2台購入した。それまでDVIで接続していたが、このディスプレイにはDVIポートがなく、HDMIポートに接続することになる。HDMIに変更するついでに音声もHDMIに乗せることにした。ディスプレイにはスピーカーをつないでいる。

環境はP5K-PRO+GeForce 9600GT GE。DVIをHDMIに変換して使う。GeForce 400シリーズより前のNVIDIAのビデオカードはサウンドチップを搭載していないので、音声を乗せるにはマザーボードのS/PDIF出力に接続する必要がある。

ケーブルを探す

接続用の2pinケーブルが付属品にはなかったので探してみたが、見つからなかった。PCショップで聞いてみた所、最近のものには必要ないのでもう売ってないという。仕方なく、似たようなケーブルを探してみたところ、ヨドバシTK-CD4というケーブルを見つけた。CD-ROM用とあるが、調べてみるとS/PDIFのケーブルらしい。これを購入して接続することにした。

ケーブルの接続

マザーボードとビデオカードのS/PDIFを接続する。接続方法はELZAの接続ガイドを見るとわかりやすい。ASUS製の接続例を見て接続した。

ディスプレイから出力するには再生デバイスの既定値をデジタル出力に設定する。
hdmi_spdif_000

スリープで音が出なくなる

起動直後は音声が出力されるが、スリープすると音が出なくなった。ドライバを入れ直したり、ディスプレイを接続し直したりしても改善しない。

NVIDIAコントロールパネルを見ると音声出力がオフになっていた。スリープから復帰したときのこの設定が適用されたらしい。設定を変更すると音声が出力されるようになった。

hdmi_spdif_0001
hdmi_spdif_002
hdmi_spdif_003

アナログ出力と違ってデジタル出力はノイズが乗りにくいので、今まであったPC内部のノイズがなくなって快適になった。

3月 15th, 2014

Posted In: ハードウェア

タグ: ,

Leave a Comment

DVB版ドライバがないPT3ではMythTVは使えなかった。最近DVB版PT3ドライバが公開されたので、導入してみる。環境はいつも通りDebianの安定版(wheezy)。

カーネルのアップグレード

Debian(wheezy)に導入されているカーネル3.2ではビルドできないので、新しいカーネルを導入しておく。3.5でビルドできないことと3.8以降でビルドできることを確認している。新しいカーネルはbackportsリポジトリを使うと簡単に導入できる。

使われているカーネルを確認

$ uname -r
3.2.0-4-amd64

Backportsリポジトリを追加

$ sudo sh -c "echo 'deb http://ftp.debian.org/debian/ wheezy-backports main' > /etc/apt/sources.list.d/wheezy-backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.10-0.bpo.3-amd64

カーネルを入れ替えるために再起動

$ sudo reboot

カーネルを確認

$ uname -r
3.10-0.bpo.3-amd64

V4L-DVBドライバの導入

PT3ドライバのビルドに必要なV4L-DVBドライバを導入する。ビルドには少し時間がかかる。

必要なパッケージのインストール

$ sudo aptitude install build-essential patchutils libproc-processtable-perl l linux-headers-3.10-0.bpo.3-amd64

ビルド

$ cd /usr/local/src/
$ git clone git://linuxtv.org/media_build.git
$ cd media_build
$ ./build

インストール

$ sudo make install
$ sudo make kernel-links #ヘッダーのインストール

DVB版PT3ドライバをインストール

事前準備は済んだのでドライバをインストールする。

ソースの取得

$ cd /usr/local/src/
$ git clone https://github.com/knight-rider/ptx.git
$ cd ptx/pt3_dvb/

V4L-DVBからModule.symversをコピー

$ cp /usr/local/src/media_build/v4l/Module.symvers .

ビルド

$ make

インストール

$ sudo make install

ドライバモジュールのロード

$ sudo modprobe pt3_dvb

デバイスファイルの確認

$ ls /dev/dvb/
adapter0  adapter1  adapter2  adapter3

PT2との違い

PT2のDVB版ドライバと同じように使えるが、デバイス番号が異なる。0,1が衛星波、2,3が地上波と、順番はChardev版と同じになる。

DVBアプリのビルド

tuneコマンドやs2scanが付属しているのでビルドする。

tune.cのDTV_STREAM_IDをDTV_ISDBS_TS_IDに書き換える

$ vi tune.c
$ git diff tune.c
diff --git a/dvb_apps/cmds/tune.c b/dvb_apps/cmds/tune.c
index 20178d0..a45ee08 100644
--- a/dvb_apps/cmds/tune.c
+++ b/dvb_apps/cmds/tune.c
@@ -100,7 +100,7 @@ static int search(int adapter_nr, int channel_id)

        prop[0].cmd = DTV_FREQUENCY;
        prop[0].u.data = channel->frequency;
-       prop[1].cmd = DTV_STREAM_ID;
+       prop[1].cmd = DTV_ISDBS_TS_ID;
        prop[1].u.data = channel->ts_id;
        prop[2].cmd = DTV_TUNE;

ビルド

$ make
$ find . -perm +111
.
./restamp
./nitdump
./ptsdump
./tune
./dumpts
./dumpeid
./s2scan
./dumpts2

コマンドが生成される。コマンドの使い方やDVB版の使い方は以前の記事を参照。

予約機能が良くても、BSに対応できないとMythTVは導入できない。

PT3といえば、chardev版PT3の導入記事に/etc/modprobe.d/blacklist.confにearth-pt1を追加するように書いてあるのが気になる。earth-pt1はPT3には対応していないので、PT1/2を導入していない環境では効果が無い。

参考:

11月 24th, 2013

Posted In: ハードウェア

タグ: , , , , , , ,

Leave a Comment

« 前ページへ次ページへ »