2010年3月12日金曜日

dkmsでカーネルアップデート時にPT2のドライバを自動適用する

カーネルアップデート時にPT2のドライバを自動適用できるようにdkmsを設定する。

注意:
カーネルが2.6.31-21にアップデートされたときに確認したところ、dkmsの設定をやっていると起動時のログに
pt1-drv:disagrees about version of symbol module_layout
というメッセージがでて、PT2が認識されない状態になった。
とりあえずdkmsで適用しないようにしたらちゃんと認識されるようになったから、ドライバの再インストールは手動でやった方がトラブルはなさそうだ。

dkmsを使わなくするには下記のコマンドを実行する。
#sudo dkms add -m pt1 -v d89f0da0a7e4 -all


最新のドライバをダウンロードする。
http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2

ダウンロードしたファイルを解凍する。
今回は「pt1-d89f0da0a7e4」のディレクトリで解凍された。

「pt1-d89f0da0a7e4/driver/」を/usr/src/pt1-d89f0da0a7e4/にコピーする。

#cp -R pt1-d89f0da0a7e4/driver/ /usr/src/pt1-d89f0da0a7e4/

/usr/src/pt1-d89f0da0a7e4/にdkms.confファイルを作成する。
dkms.confの中身は以下の通り。

PACKAGE_NAME="pt1"
PACKAGE_VERSION="d89f0da0a7e4"
MAKE[0]="make KVER=${kernelver}"
CLEAN[0]="make clean"
BUILT_MODULE_NAME[0]="pt1_drv"
DEST_MODULE_LOCATION[0]="/kernel/drivers/video"
AUTOINSTALL="YES"

PACKAGE_VERSIONにはディレクトリの「-」以降の文字を指定する。今回の場合は「d89f0da0a7e4」となる。

ソースファイルの配置が終わったらdkmsに追加する。

#dkms add -m pt1 -v d89f0da0a7e4
#dkms build -m pt1 -v d89f0da0a7e4
#dkms install -m pt1 -v d89f0da0a7e4


以上で設定終わり。

dkmsでカーネルアップデート時にCrystal HDのドライバを自動適用する

カーネルアップデートのときに自動でCrystalHDのドライバを適用できるようにdkmsに設定する。

Packages in “PPA for XBMC SVN BUILDING” : PPA for XBMC SVN BUILDING : “XBMC SVN BUILDING” teamからダウンロードできるドライバのMakefileだとカーネルモジュールのディレクトリを直接指定しているので、dkmsで自動適用できないんじゃないかと思っていたのだが、グーグルで検索したところdkms用CrystalHDドライバのファイルがあった。

RPM Search Mandriva 2009 dkms-crystalhd-0-0.20100120.1mdv2009.1.i586.rpm
downloadからRPMパッケージをダウンロードして書庫マネージャで解凍する。

XBMCのCrystalHDドライバとRPMパッケージのCrystalHDドライバのdiff結果は下記の通り。


# diff -r ./driver/ ./usr/src/crystalhd-0-0.20100120.1mdv2009.1/driver/
./driver/linuxだけに発見: .crystalhd.ko.cmd
./driver/linuxだけに発見: .crystalhd.mod.o.cmd
./driver/linuxだけに発見: .crystalhd.o.cmd
./driver/linuxだけに発見: .crystalhd_cmds.o.cmd
./driver/linuxだけに発見: .crystalhd_hw.o.cmd
./driver/linuxだけに発見: .crystalhd_lnx.o.cmd
./driver/linuxだけに発見: .crystalhd_misc.o.cmd
./driver/linuxだけに発見: .gitignore
./driver/linuxだけに発見: .tmp_versions
./driver/linuxだけに発見: 20-crystalhd.rules
diff -r ./driver/linux/Makefile ./usr/src/crystalhd-0-0.20100120.1mdv2009.1/driver/linux/Makefile
5,6c5
< CRYSTALHD_ROOT = /root/crystalhd-0.1.orig/driver/linux
< KDIR = /lib/modules/2.6.31-20-generic/build
---
> KDIR = @KERN_DIR@
9c8
< INCLUDES = -I$(KDIR)/include -I$(CRYSTALHD_ROOT)/../../include -I$(CRYSTALHD_ROOT)/../../include/link
---
> INCLUDES = -I$(KDIR)/include -I$(src)/../../include -I$(src)/../../include/link
./driver/linuxだけに発見: Makefile.in
./driver/linuxだけに発見: Module.markers
./driver/linuxだけに発見: Module.symvers
./driver/linuxだけに発見: autom4te.cache
./driver/linuxだけに発見: bcm_70012_dev.sh
./driver/linuxだけに発見: bcm_70012_run.sh
./driver/linuxだけに発見: config.log
./driver/linuxだけに発見: config.status
./driver/linuxだけに発見: configure
./driver/linuxだけに発見: configure.ac
./driver/linuxだけに発見: crystalhd.ko
./driver/linuxだけに発見: crystalhd.mod.c
./driver/linuxだけに発見: crystalhd.mod.o
./driver/linuxだけに発見: crystalhd.o
./driver/linuxだけに発見: crystalhd_cmds.o
./driver/linuxだけに発見: crystalhd_hw.o
./driver/linuxだけに発見: crystalhd_lnx.o
./driver/linuxだけに発見: crystalhd_misc.o
./driver/linuxだけに発見: modules.order

# diff -r ./include/./usr/src/crystalhd-0-0.20100120.1mdv2009.1/include/
diff -r ./include/bc_dts_types.h ./usr/src/crystalhd-0-0.20100120.1mdv2009.1/include/bc_dts_types.h
86,87d85
< #define TEXT
<
/home/daisuke/src/usr/src/crystalhd-0-0.20100120.1mdv2009.1/include/だけに発見: bc_dts_types.h.0001


コンパイル済みのオブジェクトファイル以外の違いはdriverディレクトリのMakefileのカーネルモジュールディレクトリ指定部分とinclude指定部分、includeディレクトリのbc_dts_types.h、bc_dts_types.h.0001くらい。

RPMパッケージをそのまま使っても問題なさそうなのでcrystalhd-0-0.20100120.1mdv2009.1を/usr/src/にコピーする。


# cp -R crystalhd-0-0.20100120.1mdv2009.1/ /usr/src/


dkmsにcrystalhdを追加する。

#dkms add -m crystalhd -v 0-0.20100120.1mdv2009.1
#dkms build -m crystalhd -v 0-0.20100120.1mdv2009.1
#dkms install -m crystalhd -v 0-0.20100120.1mdv2009.1


以上でカーネルアップデートがあってもCrystalHDドライバが自動適用される。

2010年3月11日木曜日

Wineをインストールする

Windows用のプログラムをLinuxで使えるようにするというWineをインストールしてみた。

SynapticパッケージマネージャにてWineをインストールする。
クイック検索にwineと入力し、パッケージを表示。
wine1.2をインストール指定する。

依存関係のパッケージの確認メッセージが出るのでマークをクリック。


Synapticパッケージマネージャの適用ボタンをクリックしてWineをインストール。

とりあえずここまでやればWindows用プログラムがUbuntuでも動く。
インストールするバージョンによっては日本語フォントのシンボリックリンクを設定しなければいけないようだが、自分の環境では得になにもしなくてもwineの設定画面が日本語が表示された。

ただ、Windowsのソフトによっては文字化けがあったりでなにかしら設定する必要があるのかもしれない。

2010年3月10日水曜日

2ch ブラウザ V2Cのインストール

UbuntuのパッケージマネージャからインストールできるJDという2chブラウザでは2ch互換掲示板である「したらば掲示板」の過去ログが見れないので他の2chブラウザV2Cを使ってみた。

V2CはJavaで作られているのでSynapticパッケージマネージャで 「openjdk-6-jre」 をインストールする。
画像で選択されているパッケージをインストールする。依存関係のあるパッケージも同時にインストールされる。

V2Cをダウンロードして解凍する。
V2C TopからJREなしのtarアーカイブをダウンロードする。
ファイルを書庫アーカイブで解凍する。
ここでは/home/<ユーザーフォルダ>/bin に解凍した。

解凍したv2cディレクトリのv2cファイルをダブルクリックし、v2cを実行する。

以上でv2cが起動されるはず。

デスクトップツールバーのアプリケーションメニューバーから起動できるように設定する。

ツールバーのアプリケーションの上で右クリックし、メニューの編集をクリック。
左の一覧からインターネットを選択し、右にあるボタンの「新しいアイテム」ボタンをクリックする。


ランチャの作成にてv2cファイルを指定する。


OKボタンをクリックするとメニューにV2Cのショートカットが作成される。

以上で一通りのインストールは終わり。

2010年3月1日月曜日

XBMCで地デジ録画ファイルを再生する

XBMCで録画したファイルを再生してみた。

録画ファイルのディレクトリをビデオに追加し、再生するがインターレースのためか縞々の横線が表示されてまともに見れない。
ビデオ設定を開こうとするとフリーズし、電源長押しで強制終了させないといけなくなった。

XBMCのCristal HDを使用した再生に問題があるのか、それともドライバの問題か。
ともかくXBMCで地デジ録画のTSファイルの再生はできないようだ。

2010年2月28日日曜日

Flash Player 10.1 Beta 3 のインストール

Flash Player 10.1 Beta 3 が公開されている。
リリースノートによるとCrystal HDにも対応しているので、Ubuntuにインストールしてみた。

リリースノート(PDF)

すでにFlash Player 10がインストールされている場合はアンインストールしておく。
Synaptic パッケージマネージャにて flashplugin-installerを削除する。

手動でインストールしている場合は /usr/lib/mozilla/libflashplayer.so を手動で削除する。

Flash Player 10.1 Beta 3のダウンロード元から「Download plug-in for Linux (TAR.GZ, 4.4 MB)」をダウンロードする。
Adobe Labs - Downloads: Flash Player 10.1

ファイルを解凍する。
$ tar zxvf flashplayer10_1_p3_linux_022310.tar.gz

解凍されたファイルをプラグイン用ディレクトリにコピーする。
$ sudo cp libflashplayer.so /usr/lib/mozilla/

Beta版は32bitで動作するのでnspluginwrapperで64bitでも動作するようにする。

$ sudo nspluginwrapper -i /usr/lib/mozilla/libflashplayer.so

FireFoxを起動して、YouTubeの1080p動画を再生してみる。
1080pの動画は紙芝居状態でとても見ることができない。
720pにするとたまにコマ落ちが発生するが、一応再生できる。

2010年2月23日火曜日

Crystal HDを導入したレポート

Crystal HDをWindowsにインストールしたレポートがあった。

【西川和久の不定期コラム】 ネットブックで1080p動画が観られるアクセラレータ「Broadcom Crystal HD/BCM70012」

Ubuntuと違ってWindowsの導入は面倒くさくなさそう。
やっぱ再生支援のインターフェースをDirectXが提供しているというのが大きいんだろうな。

2010年2月21日日曜日

Crystal HD の再生支援を使える XBMC をインストール

Crystal HD を利用できるメディアプレイヤー XBMC をインストールする。

2010/02/21 現在、Crystal HDが利用できるのはXBMCだけらしい。

動作している動画がYouTubeに投稿されている。



2010/02/21 現在のXMBCチームのPPAリポジトリから利用できるXBMCではCrystal HDを利用する機能がないため、SVN Build のdebパッケージをダウンロードして、インストールする。

Packages in “PPA for XBMC SVN BUILDING” : PPA for XBMC SVN BUILDING : “XBMC SVN BUILDING” team
https://launchpad.net/~team-xbmc-svn/+archive/ppa/+packages

注) SVN Build は頻繁に更新されているので ファイル名のsvnのあとの数字はその都度読み替える。

xbmc - 1:9.11+svn27997-karmic1 の以下のファイルをダウンロードする。
xbmc-bin_9.11+svn27997-karmic1_amd64.deb
xbmc-data_9.11+svn27997-karmic1_all.deb
xbmc-skin-confluence_9.11+svn27997-karmic1_all.deb
xbmc-skin-pm3-hd_9.11+svn27997-karmic1_all.deb
xbmc-web_9.11+svn27997-karmic1_all.deb
PPAリポジトリからxbmcパッケージをインストールする時に同時にインストールされるパッケージなので大きくは間違ってないはず。

インストールはリストの上から順番にインストールする。

XBMCの日本語化
インストールしたそのままの状態だと日本語ファイル名が文字化けするのでフォントを置き換える。

Ubuntu Weekly Recipe:第109回 HDDレコーダを使いこなす(1)DLNAクライアント|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0109
の通りに実行する。

$ sudo mv /usr/share/xbmc/media/Fonts/arial.ttf{,_bak}
$ sudo ln -s /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf /usr/share/xbmc/media/Fonts/arial.ttf

[アプリケーション]-[サウンドとビデオ]-[XBMC Media Center]から起動

[SYSTEM]-[APPEARENCE]-[SKIN]-[Fonts]の項目で「Arial」を選択

表示も日本語化する。

[SYSTEM]-[APPEARENCE]-[International]-[Language]の項目で「Japanese」を選択

[SYSTEM]-[APPEARENCE]-[International]-[Character set]の項目で「Japanese(Shift-JIS)」を選択


あとはソースの追加でH.264動画ファイルのディレクトリを指定して、動画を再生する。

実際FF13ファイナルトレーラー 1980x1080を再生してみた印象は「凄い! ちゃんと再生されるよ!! でも、ちょっとコマ落ちもあるか。。。」といったところ。
再生支援できるソフトがXBMCに限られるというのが難点だが、Atomという低スペックPCでもちゃんと再生されるのはすばらしい。

2010年2月20日土曜日

Crystal HD Video Decoder のライブラリをインストールする

ライブラリをmake & make install する。

# cd crystalhd-0.1.orig/linux_lib/libcrystalhd/

# make

# make install

ファームウェアをコピーする。
make install では bcmFilePlayFw.bin がコピーされないので、手動でコピーする。

# cd ~/crystalhd-0.1.orig/firmware/fwbin/70012

# cp bcmFilePlayFw.bin /lib/firmware

2010年2月19日金曜日

D510MOで録画サーバ(epgrecのdo-record.shを編集する)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その6

録画が終わった後に自動でtssplitter_liteで分離するように epgrec の do-record.sh を修正する。

基本は日経Linux 2010年2月号の図8のスクリプトを参考にした。

ただ ubuntu と fedora ではシェルが違うのか if の条件の論理演算子のところでエラーとなった。
ubuntu のシェルの bash では 数値の比較は -eq 、文字列の比較は = となっている。

自分の環境の do-record.sh
----------------------------------------------------------------------
#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"

RECORDER=/usr/local/bin/recpt1
B25=/usr/local/bin/b25_bcas
SPLIT=/usr/local/bin/tssplitter_lite

OUTTMP=${OUTPUT}.tmp.ts

if [ ${MODE} -eq 0 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} -eq 1 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTTMP} >/dev/null
if [ ${TYPE} = "BS" ]; then
$SPLIT ${OUTTMP} ${OUTPUT} ${CHANNEL}
elif [ ${TYPE} = "GR" ]; then
if [ ${CHANNEL} = "20" ]; then
#NHK総合・水戸
$SPLIT ${OUTTMP} ${OUTPUT} 26624
elif [ ${CHANNEL} = "13" ]; then
#NHK教育・東京
$SPLIT ${OUTTMP} ${OUTPUT} 1032
elif [ ${CHANNEL} = "14" ]; then
#日本テレビ
$SPLIT ${OUTTMP} ${OUTPUT} 1040
elif [ ${CHANNEL} = "15" ]; then
#TBS
$SPLIT ${OUTTMP} ${OUTPUT} 1048
elif [ ${CHANNEL} = "17" ]; then
#テレビ朝日
$SPLIT ${OUTTMP} ${OUTPUT} 1064
elif [ ${CHANNEL} = "18" ]; then
#テレビ東京
$SPLIT ${OUTTMP} ${OUTPUT} 1072
elif [ ${CHANNEL} = "19" ]; then
#フジテレビ
$SPLIT ${OUTTMP} ${OUTPUT} 1056
fi
fi
#中間ファイル削除
rm ${OUTTMP}
fi
----------------------------------------------------------------------
それぞれのチャンネルのプログラムIDは全チャンネルを録画し、ffmpeg -i で調べておく。

録画予約のときに指定できるようにconfig.phpを編集

----------------------------------------------------------------------
$RECORD_MODE = array(
        // ※ 0は必須で、変更不可です。
        0 => array(
                'name' => 'Full TS',    // モードの表示名
                'suffix' => '.ts',      // ファイル名のサフィックス
        ),

        1 => array(
                'name' => 'Partial TS',
                'suffix' => '_tss.ts',
        ),

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

というように変更。

これで手動予約のとき、予約カスタマイズで録画モードに Partial TS を選べるようになり、分離したデータのみが保存される。

D510MOで録画サーバ(tssplitterのインストール)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その5

録画ファイルにはワンセグなどのデータがある。
それらからHD動画だけを抜き出す tssplitter というツールがあるらしいのでインストールする。


http://hp.vector.co.jp/authors/VA038175/ から tssplitter_lite.zip をダウンロード

$ unzip tssplitter_lite.zip

$ cd tssplitter_lite

$ make

$ sudo cp tssplitter_lite /usr/local/bin


tssplitter_lite がちゃんと分離してくれるか確認する。


$ recpt1 --strip --b25 20 10 test.ts
enable B25 strip
using B25...
pid = 4267
C/N = 28.345783dB
Recording...
Recorded 11sec

分離するプログラムIDを ffmpeg で調査

$ ffmpeg -i test.ts
FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5+svn20090706-2ubuntu2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Oct 13 2009 22:35:00, gcc: 4.4.1
[NULL @ 0xaf68b0]non-existing PPS referenced
[h264 @ 0xaf68b0]non-existing PPS referenced
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!
[h264 @ 0xaf68b0]non-existing PPS referenced
    Last message repeated 1 times
[h264 @ 0xaf68b0]decode_slice_header error
[h264 @ 0xaf68b0]no frame!

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 29.97 (30000/1001)

Seems stream 2 codec frame rate differs from container frame rate: 29.97 (30000/1001) -> 14.99 (15000/1001)
Input #0, mpegts, from 'test.ts':
  Duration: 00:00:10.52, start: 65308.874011, bitrate: 14672 kb/s
  Program 26624 NHKAm9g1�?e8M
    Stream #0.0[0x100]: Video: mpeg2video, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 20000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 48000 Hz, mono, s16, 65 kb/s
  Program 26625 NHKAm9g2�?e8M
    Stream #0.0[0x100]: Video: mpeg2video, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 20000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 48000 Hz, mono, s16, 65 kb/s
  Program 27008 NHK7HBSG�?e8M
    Stream #0.2[0x581]: Video: h264, yuv420p, 320x180, 14.99 tbr, 90k tbn, 29.97 tbc
    Stream #0.3[0x583]: Audio: aac, 24000 Hz, mono, s16, 50 kb/s
  Program 65520
At least one output file must be specified
daisuke@D510MO-PC:~$ tssplitter
tssplitter: command not found
daisuke@D510MO-PC:~$ tssplitter_lite
tssplitter_lite - tssplitter_lite program Ver. 0.0.0.1
usage: tssplitter_lite src.ts dst.ts [options]
options:
  -f : use fifo

分離するプログラムIDは 26624。 ちなみに 27008 はワンセグのデータ。
tssplitter_lite でHDのみ分離する。

$ tssplitter_lite test.ts test_tss.ts 26624

分離できたか ffmpeg で確認

$ ffmpeg -i test_tss.ts
FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5+svn20090706-2ubuntu2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Oct 13 2009 22:35:00, gcc: 4.4.1

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 29.97 (30000/1001)
Input #0, mpegts, from 'test_tss.ts':
  Duration: 00:00:09.83, start: 65309.078711, bitrate: 13641 kb/s
  Program 26624
    Stream #0.0[0x100]: Video: mpeg2video, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 20000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 48000 Hz, mono, s16, 71 kb/s
At least one output file must be specified

Crystal HD Video Decoder のインストール

D510MOの内臓グラフィックはHD動画の再生支援には対応していないのでH.264の動画を再生できない。
試しにFF13ファイナルトレーラー 1980x1080 をPlayStation Networkからダウンロードして再生してみても音だけで全然映像が映らない。

なんかないかと調べたところ「Crystal HD Video Decoder」というBroadcamのHD再生支援チップがあるらしいので早速手に入れて録画マシンにインストールしてみた。

Broadcam Crystal HD Video Decoder (BCM970012)はネット通販で購入した。
ヤフオクで購入するよりは多少やすかったが、eBayで購入すればもうちょっと安いようだ。

1)マザーボードのmini PCI-Expressに接続する。

2)PCを立ち上げて「lspci -v」で認識しているか確認
-------------------------------
02:00.0 Multimedia controller: Broadcom Corporation BCM70012 Video Decoder [Crystal HD] (rev 01)
 Subsystem: Broadcom Corporation Device 2612
 Flags: bus master, fast devsel, latency 0, IRQ 10
 Memory at f0400000 (64-bit, non-prefetchable) [size=64K]
 Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
 Capabilities:
-------------------------------
ドライバをインストールしてないため、 Kernel driver in useとKernel modules が表示されない。

3)ドライバをインストールする。

Ubuntu日本語フォーラム / Broadcom Crystal HD ドライバのインストール
https://forums.ubuntulinux.jp/viewtopic.php?pid=49709

にCrystal HD Video Decoderのドライバダウンロード先が記載されていた。

Packages in “PPA for XBMC for Linux” : PPA for XBMC for Linux : “XBMC for Linux” team
https://launchpad.net/~team-xbmc/+archive/ppa/+packages

Series が Karmic の 「crystalhd - 0.1-20100118」をクリック。

crystalhd_0.1.orig.tar.gz
libcrystalhd-dev_0.1-20100118_amd64.deb
libcrystalhd1_0.1-20100118_amd64.deb
の3ファイルをダウンロード。

crystalhd_0.1.orig.tar.gz は http://www.broadcom.com/support/crystal_hd/ からダウンロードできるドライバとは違うものらしい。

ここからはrootで作業

sudo su -

cp /home/<ユーザーディレクトリ>/crystalhd_0.1.orig.tar.gz ./

tar zxvf crystalhd_0.1.orig.tar.gz

cd crystalhd-0.1.orig/driver/linux/

autoconf

./configure

configure のログ
----------------------------------
checking for ld... ld
configure: creating ./config.status
config.status: creating ./Makefile
----------------------------------

make

make のログ
----------------------------------
make -C /lib/modules/2.6.31-19-generic/build SUBDIRS=/root/crystalhd-0.1.orig/driver/linux modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.31-19-generic' に入ります
  CC [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd_lnx.o
  CC [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd_misc.o
  CC [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd_cmds.o
  CC [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd_hw.o
  LD [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/crystalhd-0.1.orig/driver/linux/crystalhd.mod.o
  LD [M]  /root/crystalhd-0.1.orig/driver/linux/crystalhd.ko
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.31-19-generic' から出ます
----------------------------------

make install

make install のログ
----------------------------------
if [ -e "/lib/udev/rules.d" ] ; then cp -f 20-crystalhd.rules /lib/udev/rules.d/ ; fi
if [ -e "/etc/udev/rules.d" ] ; then cp -f 20-crystalhd.rules /etc/udev/rules.d/ ; fi
install -d /lib/modules/2.6.31-19-generic/kernel/drivers/video/broadcom
install -m 0644 crystalhd.ko /lib/modules/2.6.31-19-generic/kernel/drivers/video/broadcom
/sbin/depmod -a
----------------------------------

chmod +x bcm_70012_run.sh
chmod +x bcm_70012_dev.sh

ドライバモジュール有効化スクリプトを実行
./bcm_70012_run.sh

./bcm_70012_run.sh のログ
----------------------------------
Broadcom Crystal HD (BCM70012) Module loaded
----------------------------------

デバイスノード追加スクリプトを実行
./bcm_70012_dev.sh

./bcm_70012_dev.sh のログ
----------------------------------
Broadcom MediaPC 70012 Module loaded
----------------------------------

libcrystalhd1_0.1-20100118_amd64.deb をダブルクリックしてインストーラからインストール。
libcrystalhd-dev_0.1-20100118_amd64.deb をダブルクリックしてインストーラからインストール。
ファームウェアなどがインストールされないようなので、debは使用しない。

lspci -v でCrystal HDのドライバがインストールされているか確認
---------------------------------
02:00.0 Multimedia controller: Broadcom Corporation BCM70012 Video Decoder [Crystal HD] (rev 01)
Subsystem: Broadcom Corporation Device 2612
Flags: bus master, fast devsel, latency 0, IRQ 31
Memory at f0400000 (64-bit, non-prefetchable) [size=64K]
Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
Capabilities: [48] Power Management version 3
Capabilities: [60] Vendor Specific Information
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
Capabilities: [cc] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel
Capabilities: [160] Device Serial Number 7d-38-06-24-12-18-10-00
Capabilities: [16c] Power Budgeting
Kernel driver in use: Broadcom 70012 Decoder
Kernel modules: crystalhd
---------------------------------

2010年2月16日火曜日

D510MOで録画サーバ(録画ツールのインストール)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その4


日経Linux 2010年2月号に従って録画ツールをインストールする。


基本は雑誌通りの手順で作業する。


ただrecpt1の最新版を使うと地上デジタルスキャンコマンドのgrscanをmakeするところでエラーとなるので、付録CD-ROMにあるソースを使用する。




全部最新のプログラムを使いたいときは次のサイトを参考にすると良いかも。


Linux活用レシピ 家電の製作 地デジ録画サーバ
http://linux-memo.net/kaden/chidejiserver_top.html


Ubuntu 9.10 + PT2 で地上・BSデジタルを見る(1) - tiplinux
http://blogs.yahoo.co.jp/tiplinux/23609792.html



2010年2月13日土曜日

D510MOで録画サーバ(OS・ドライバインストール)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その3


OSと日本語環境、ネットワークドライバをインストールする。


OSインストール:
Ubuntu 9.10 Desktop 64bit のCD-RをCDドライブにセットしてブートする。
言語選択できるので日本語を選択し、ハードディスクにインストールを選ぶ。


基本は画面の説明に従ってインストールを進める。
パーティションだけ手作業でセットした。


/dev/sda1   /boot             100MB
/dev/sda2   スワップ領域   4GB
/dev/sda3   /                   20GB
/dev/sda4   /home            残り全部


とりあえずこんな感じでパーティションを切ったのだが /boot は200MBくらいにしたほうがいいかもしれない。カーネルアップデートがあると25MBくらい増えるからあっという間になくなりそうだ。




日本語環境インストール:
Ubuntuの日本語環境<http://www.ubuntulinux.jp/products/JA-Localized>の通りに作業する。


[アプリケーション]-[アクセサリ]-[端末]で端末起動する。


コマンドを実行する。


wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/karmic.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt-get upgrade




途中で再起動するウィンドウが表示されるけど「あとで再起動する」ボタンで閉じる。


[システム]-[システム管理]-[言語サポート]を開く。
翻訳パッケージ等のインストールを促されるけどキャンセルする。


選択欄が二つあるのでどちらも日本語にしてウィンドウを閉じる。



日本語RemixCD と同じパッケージをインストールする。
sudo apt-get install ubuntu-desktop-ja

一旦再起動する。

[システム]-[システム管理]-[日本語環境セットアップヘルパ]を起動

とりあえず以下のパッケージをインストールした。

ebview
edict-fpw
gjiten
ttf-umefont
ttf-konatu
scim-anthy
scim-bridgh-client-gtk
poppler-data
otf-ipafont
ttf-ipafont
ttf-ipamonafont

ネットワークドライバのインストール:
RTL8111D 用ドライバをインストールするには - metastable blog<http://d.hatena.ne.jp/metastable/20100117/1263737845>によるとD510MOに使われているLANチップ用でないドライバが自動適用されてしまい、ネットワークが不安定になるらしいので正しいドライバをインストール、適用する。


http://www.realtek.com/downloads/downloadsView.aspx?Langid=4&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false
から「LINUX driver for kernel 2.6.x and 2.4.x (Support x86 and x64)」をダウンロードする。
2010/2/13時点のバージョンは8.016.00


端末を起動。


sudo su - でrootで作業


ダウンロードしたファイルをコピー
cp /home/<ユーザー>/r8168-8.016.00.tar.bz2 ~/
*)<ユーザー>はログインしているユーザーのホームディレクトリに読み替える。




tar zxvf r8168-8.016.00.tar.bz2
cd r8168-8.016.00


自動インストールバッチを実行
./autorun.sh


実行ログ
-------------------------------


2010年  2月 10日 水曜日 21:25:03 JST
make -C src/ clean
make[1]: ディレクトリ `/root/r8168-8.016.00/src' に入ります
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers Module.markers *.order
make[1]: ディレクトリ `/root/r8168-8.016.00/src' から出ます
make -C src/ modules
make[1]: ディレクトリ `/root/r8168-8.016.00/src' に入ります
make -C /lib/modules/2.6.31-19-generic/build SUBDIRS=/root/r8168-8.016.00/src modules
make[2]: ディレクトリ `/usr/src/linux-headers-2.6.31-19-generic' に入ります
  CC [M]  /root/r8168-8.016.00/src/r8168_n.o
  CC [M]  /root/r8168-8.016.00/src/r8168_asf.o
  CC [M]  /root/r8168-8.016.00/src/rtl_eeprom.o
  LD [M]  /root/r8168-8.016.00/src/r8168.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/r8168-8.016.00/src/r8168.mod.o
  LD [M]  /root/r8168-8.016.00/src/r8168.ko
make[2]: ディレクトリ `/usr/src/linux-headers-2.6.31-19-generic' から出ます
strip --strip-debug r8168.ko
make[1]: ディレクトリ `/root/r8168-8.016.00/src' から出ます
make -C src/ install
make[1]: ディレクトリ `/root/r8168-8.016.00/src' に入ります
install -m 744 -c r8168.ko /lib/modules/2.6.31-19-generic/kernel/drivers/net/
make[1]: ディレクトリ `/root/r8168-8.016.00/src' から出ます
----------------------------------

再起動するとドライバが元に戻るらしいので下記コマンドを実行
mkinitramfs -o /boot/initrd.img-`uname -r` `uname -r`

再起動してr8168が適用されていることを確認。



2010年2月12日金曜日

D510MOで録画サーバ(組み立て)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ その2


基本的な組み立て方はD510MOの取説とケースの取説の通りだけど自分でやった作業も残しておく。


やったこと
1)ケースから電源を取り外す


2)D510MOにメモリ、キーボード、ディスプレイ、CDドライブ、電源を取り付ける


3)ケースのパワースイッチをD510MOに接続


4) 最新BIOSをダウンロード
Intel 新 Atom MB (D510MO) で Ubuntu 9.10 を使うには
http://d.hatena.ne.jp/metastable/20100111/1263201842
によると最新のBIOSでないとUbuntuが起動しないようなのでBIOSアップデートする。


http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=3196&lang=jpn
intelダウンロードセンターから BIOS 0154 (MO0154P.BIO)をダウンロード


5)適当なUSBフラッシュメモリをフォーマットしてBIOSファイルを書き込む
 
6)USBフラッシュメモリを取り付け


7)電源をコンセントに接続


8)電源ONすると同時にF7キーを連打


9)BIOSアップデートメニューが表示されるのでアップデートファイルを選択
アップデートが終わったら一旦電源を切る。
USBメモリを取り外す。


10)BIOS設定
電源ONと同時にF2キーを連打。


シャトルのブログ | D510MO始動
http://www.shooting-bios.net/~ryuta/cgi-bin/sb/log/eid214.html
を参考にbootのUSB Mass Storage Emulation TypeをAuto→All Fixed Discに変更。


11)Ubuntu 9.10 Desktop CDで起動
ブートメニューのメモリテストで取り付けたメモリのテスト。
とりあえず#4まで実行してエラー無しを確認。


12)D510MOをケースに取り付け
メモリ以外を一旦取り外し、マザーボードをケースに取り付ける。


13)ケーブルをD510MOに接続
説明書にしたがってパワースイッチ、リセットスイッチ、パワーランプ、HDアクセスランプ、フロントUSB、フロントオーディオ、SATAケーブルを接続。


14)USBアダプタを取り付け
奥沢一丁目を取り扱い説明書でQとされている「USB front panel header with Intel Z-U130 USB Solid-State Drive (or compatible device) support」に取り付ける。
QのUSBは片方が死んでいるので注意。


15)カードリーダー取り付け
奥沢一丁目にカードリーダーを取り付け。
かなりグラグラするのでアダプタを支えながら取り付ける。


16)PT2取り付け
入れようとしてもS0のアンテナ端子が引っかかる。
PCIスロット側の上部にあるネジを外してバックパネルを後ろに広げる。
その状態でPT2を取り付ける。パネルは元の位置にネジ止めする。


17)ハードディスク取り付け
3.5インチベイではメモリと干渉するのでベイの下に取り付ける。
電源ケーブル、SATAケーブルをハードディスクに接続。


18)電源をケースに取り付け


19)ダブル分波器をPT2に取り付け
地デジとBS/CSのケーブルをそれぞれ接続




以上で一通りの組み立ては終わり。

D510MOで録画サーバ(構成)

新型AtomのD510を使ってPT2の録画サーバを作ったときのメモ

ハードウェア構成は以下の通り

マザーボード:intel D510MO
CPU:オンボード
メモリ:hynix DDR2-667 1G × 2
ハードディスク:SAMSUNG HD203WI  2TB
ケース:岡谷エレクトロニクス MX1201-BK
電源 :ケース付属 200W


マザーボードUSB変換アダプタ:世田谷電器 USB9pinポート変換 奥沢一丁目 AR-UPIPO-A
(カードリーダーを内蔵するため)
地デジチューナー:アースソフト PT2
カードリーダー:NTTCommunications SCR3310-NTTCom
分波器:日本アンテナ ダブル分波器 STSW2D

BCASカード:青いやつ
カードは他のパソコン用地デジチューナーから流用
そのうち赤カードをBCAS社に発行してもらう。


CDドライブ:ソニーオプティアーク BC-5500A + タイムリー SLIM-U02B
CDドライブはすでにある外付けのものを利用


OS:Ubuntu 9.10 Desktop 64bit

http://www.ubuntu.com/getubuntu/download
本家公式 からISOファイルをダウンロードしてCD-Rに焼く

 ディスプレイ:IODATAの17型液晶ディスプレイ