PT1/PT2のDVBとMythTV @WikiでMythTV 0.26のISDB対応パッチ(仮)が公開されていたので試してみた。

必要なパッチを作り直して、パッケージのビルドからインストールまでを行なった。結果はパッケージの依存関係の問題で失敗。実際に行なった手順と作成したパッチを公開。

2013/1/6 1:27追記:BS対応パッチの圧縮に失敗していたので再アップロード。
2013/1/10追記:カテゴリ日本語化パッチに文字化けの報告があるので修正。

Debian squeezeに導入(失敗)

  1. ここに置いてあるisdb-mythtv_0.26.0-20130101.patchをダウンロード
  2. パッケージのソースをダウンロード
    $ apt-get source mythtv
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    47.4 MB のソースアーカイブを取得する必要があります。
    取得:1 http://www.deb-multimedia.org/ sid/main mythtv-dmo 0.26.0+fixes20130104-dmo1 (dsc) [3,439 B]
    取得:2 http://www.deb-multimedia.org/ sid/main mythtv-dmo 0.26.0+fixes20130104-dmo1 (tar) [47.3 MB]
    取得:3 http://www.deb-multimedia.org/ sid/main mythtv-dmo 0.26.0+fixes20130104-dmo1 (diff) [72.3 kB]
    47.4 MB を 33秒 で取得しました (1,426 kB/s)
    dpkg-source: info: extracting mythtv-dmo in mythtv-dmo-0.26.0+fixes20130104
    dpkg-source: info: unpacking mythtv-dmo_0.26.0+fixes20130104.orig.tar.gz
    dpkg-source: info: applying mythtv-dmo_0.26.0+fixes20130104-dmo1.diff.gz
    dpkg-source: info: upstream files that have been modified:
     mythtv-dmo-0.26.0+fixes20130104/external/zeromq/configure
  3. パッチを当てる(ISDB以外のパッチは後述)
    $ cd mythtv-dmo-0.26.0+fixes20130104/
    $ patch -p1 < ../isdb-mythtv_0.26.0-20130101.patch
    patching file libs/libmythtv/channelscan/channelscan_sm.cpp
    patching file libs/libmythtv/channelscan/frequencytablesetting.cpp
    patching file libs/libmythtv/eithelper.cpp
    patching file libs/libmythtv/frequencytables.cpp
    patching file libs/libmythtv/libmythtv.pro
    patching file libs/libmythtv/mpeg/dishdescriptors.cpp
    patching file libs/libmythtv/mpeg/dishdescriptors.h
    patching file libs/libmythtv/mpeg/dvbdescriptors.cpp
    patching file libs/libmythtv/mpeg/dvbdescriptors.h
    patching file libs/libmythtv/mpeg/dvbstreamdata.cpp
    patching file libs/libmythtv/mpeg/dvbstreamdata.h
    patching file libs/libmythtv/mpeg/dvbtables.cpp
    patching file libs/libmythtv/mpeg/dvbtables.h
    patching file libs/libmythtv/mpeg/isdb_decode_text.c
    patching file libs/libmythtv/mpeg/isdb_decode_text.h
    patching file libs/libmythtv/mpeg/mpegdescriptors.cpp
    patching file libs/libmythtv/mpeg/mpegdescriptors.h
    patching file libs/libmythtv/mpeg/scanstreamdata.cpp
    patching file libs/libmythtv/mpeg/scanstreamdata.h
    patching file libs/libmythtv/mpeg/sctedescriptors.h
    patching file libs/libmythtv/tv_rec.cpp
    patching file libs/libmythtv/tv_rec.h
    $ patch -p1 < ../mythtv_0.26.0-bs-lnb.patch
    patching file libs/libmythtv/dtvmultiplex.cpp
    patching file libs/libmythtv/dtvmultiplex.h
    patching file libs/libmythtv/dvbchannel.cpp
    $ patch -p0 < ../mythtv_0.26.0-japanese-cat.patch
    patching file libs/libmythtv/mpeg/dvbdescriptors.cpp
    $ patch -p0 < ../mythtv_0.26.0-subtitle.patch
    patching file libs/libmythtv/eithelper.cpp
    $ patch -p0 < ../mythtv_0.26.0-tuning.patch
    patching file libs/libmythtv/dvbstreamhandler.cpp
  4. 足りないパッケージをインストール
  5. $ sudo aptitude install -t squeeze-backports debhelper #バージョンが古くてビルドできないのでアップグレード
    $ sudo aptitude install uuid-dev libvpx-dev 
  6. パッケージのビルド
    $ dch -i #バージョンなどを修正
    $ debuild -us -uc -d
  7. パッケージのインストール
    $ sudo dpkg -i ../*.deb
    $ sudo aptitude -f install

ビルドまでうまくできたが、パッケージの依存関係が崩れてしまったので失敗。wheezyがリリースされたらまた試そうと思う。

MythTV 0.26.0に向けて作成したパッチ

ビルドはできたが、インストールがうまくいかなかったので、全て未検証。

各パッチは以前の記事に準ずる。

カテゴリ日本語化パッチ

mythtv_0.26.0-japanese-cat.patch

カテゴリ日本語化パッチ(修正版)

mythtv_0.26.0-japanese-cat.patch

Qtのバージョンが変わって、実際に動くか不明。

サブタイトルの切り直しパッチ

mythtv_0.26.0-subtitle.patch

パッチがそのまま当たったので簡単に修正。

BS対応パッチ

mythtv_0.26.0-bs.zip

前回作成したパッチを元に作成。

録画バグ修正パッチ

mythtv_0.26.0-tuning.patch

修正されている可能性もあるが、念のため作成。

[amazon_tags]


1月 5th, 2013

Posted In: ソフトウェア

タグ: , , , , , , ,

4 Comments

ソースのダウンロード

$ apt-get source mythtv

パッチを当ててみる

$ cd mythtv-0.25/
$ patch -p1 < ../mythtv-isdb.patch
patching file libs/libmythtv/channelscan/channelscan_sm.cpp
Hunk #1 FAILED at 176.
1 out of 2 hunks FAILED -- saving rejects to file libs/libmythtv/channelscan/channelscan_sm.cpp.rej
patching file libs/libmythtv/channelscan/frequencytablesetting.cpp
Hunk #1 succeeded at 73 (offset 1 line).
patching file libs/libmythtv/eithelper.cpp
Hunk #1 succeeded at 217 (offset -5 lines).
Hunk #2 succeeded at 246 (offset -5 lines).
Hunk #3 succeeded at 260 (offset -5 lines).
Hunk #4 succeeded at 272 (offset -5 lines).
Hunk #5 succeeded at 317 (offset -5 lines).
Hunk #6 succeeded at 364 (offset -1 lines).
Hunk #7 succeeded at 452 (offset 4 lines).
Hunk #8 succeeded at 515 (offset 4 lines).
Hunk #9 succeeded at 524 (offset 4 lines).
patching file libs/libmythtv/frequencytables.cpp
Hunk #1 succeeded at 465 (offset 21 lines).
patching file libs/libmythtv/libmythtv.pro
Hunk #1 succeeded at 231 (offset 12 lines).
Hunk #2 succeeded at 247 (offset 14 lines).
patching file libs/libmythtv/mpeg/dvbdescriptors.cpp
Hunk #2 FAILED at 69.
Hunk #3 succeeded at 155 (offset 4 lines).
Hunk #4 FAILED at 161.
Hunk #5 FAILED at 192.
Hunk #6 succeeded at 226 (offset 6 lines).
Hunk #7 succeeded at 283 (offset 45 lines).
Hunk #8 succeeded at 309 (offset 37 lines).
3 out of 8 hunks FAILED -- saving rejects to file libs/libmythtv/mpeg/dvbdescriptors.cpp.rej
patching file libs/libmythtv/mpeg/dvbdescriptors.h
Hunk #1 succeeded at 9 with fuzz 1 (offset -6 lines).
Hunk #2 succeeded at 36 (offset -6 lines).
Hunk #3 FAILED at 99.
Hunk #4 FAILED at 252.
Hunk #5 FAILED at 561.
Hunk #6 FAILED at 594.
Hunk #7 FAILED at 1023.
Hunk #8 succeeded at 1105 (offset 49 lines).
Hunk #9 FAILED at 1448.
Hunk #10 FAILED at 1565.
7 out of 10 hunks FAILED -- saving rejects to file libs/libmythtv/mpeg/dvbdescriptors.h.rej
patching file libs/libmythtv/mpeg/dvbstreamdata.cpp
patching file libs/libmythtv/mpeg/dvbstreamdata.h
Hunk #1 succeeded at 25 (offset 1 line).
Hunk #2 succeeded at 213 (offset 1 line).
patching file libs/libmythtv/mpeg/dvbtables.cpp
patching file libs/libmythtv/mpeg/dvbtables.h
Hunk #1 FAILED at 8.
Hunk #2 FAILED at 93.
Hunk #3 FAILED at 277.
Hunk #4 succeeded at 326 (offset 2 lines).
Hunk #5 FAILED at 365.
Hunk #6 succeeded at 386 (offset 2 lines).
4 out of 6 hunks FAILED -- saving rejects to file libs/libmythtv/mpeg/dvbtables.h.rej
patching file libs/libmythtv/mpeg/isdb_decode_text.c
patching file libs/libmythtv/mpeg/isdb_decode_text.h
patching file libs/libmythtv/mpeg/mpegdescriptors.cpp
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 78.
Hunk #3 FAILED at 422.
Hunk #4 FAILED at 440.
4 out of 4 hunks FAILED -- saving rejects to file libs/libmythtv/mpeg/mpegdescriptors.cpp.rej
patching file libs/libmythtv/mpeg/mpegdescriptors.h
Hunk #1 succeeded at 197 (offset 44 lines).
Hunk #2 FAILED at 180.
1 out of 2 hunks FAILED -- saving rejects to file libs/libmythtv/mpeg/mpegdescriptors.h.rej
patching file libs/libmythtv/mpeg/scanstreamdata.cpp
Hunk #1 FAILED at 4.
1 out of 1 hunk FAILED -- saving rejects to file libs/libmythtv/mpeg/scanstreamdata.cpp.rej
patching file libs/libmythtv/mpeg/scanstreamdata.h
Hunk #1 FAILED at 12.
1 out of 1 hunk FAILED -- saving rejects to file libs/libmythtv/mpeg/scanstreamdata.h.rej
patching file libs/libmythtv/tv_rec.cpp
Hunk #1 succeeded at 1819 (offset -202 lines).
$ patch -p0 <../mythtv-japanese-cat.patch
patching file libs/libmythtv/mpeg/dvbdescriptors.cpp
Hunk #1 succeeded at 317 (offset -108 lines).
$ patch -p0 < ../mythtv-subtitle.patch
patching file libs/libmythtv/eithelper.cpp
Hunk #1 succeeded at 246 (offset -5 lines).
$ patch -p1 < ../mythtv-bs.patch
patching file libs/libmythtv/dtvmultiplex.cpp
Hunk #1 succeeded at 336 (offset 32 lines).
Hunk #2 FAILED at 327.
1 out of 2 hunks FAILED -- saving rejects to file libs/libmythtv/dtvmultiplex.cpp.rej
patching file libs/libmythtv/dtvmultiplex.h
patching file libs/libmythtv/dvbchannel.cpp
Hunk #1 succeeded at 267 (offset 29 lines).
Hunk #2 FAILED at 754.
Hunk #3 FAILED at 882.
2 out of 3 hunks FAILED -- saving rejects to file libs/libmythtv/dvbchannel.cpp.rej
$ patch -p2 < ../mythtv-tuning.patch
patching file libs/libmythtv/dvbstreamhandler.cpp
Hunk #1 FAILED at 282.
1 out of 1 hunk FAILED -- saving rejects to file libs/libmythtv/dvbstreamhandler.cpp.rej

パッチを何も考えずに当ててもほぼ全滅。成功しているのは単体ではあまり意味のない部分のみ。

ISDB対応版の0.25が出るまで様子を見る他ない。

Debian-Multimediaのmythtv-0.24.2は次の方法で入手できる。

$ wget ftp://ftp.debian-multimedia.org/pool/main/m/mythtv/{mythtv_0.24.2-0.0squeeze1.dsc,mythtv_0.24.2.orig.tar.gz,mythtv_0.24.2-0.0squeeze1.diff.gz}
$ dpkg-source -x mythtv_0.24.2-0.0squeeze1.dsc

このソースはいつまでダウンロードできるんだろう。

[amazon_tags]


5月 19th, 2012

Posted In: ソフトウェア

タグ: , , , , , ,

Leave a Comment

PT2+FUSE_b25+MythTVをDebianで使う上で録画失敗から対策したことを対策箇所ごとにまとめる。

録画マシンへの対策

エンコードなどマシンに負荷をかけすぎると録画中、fuse_b25がsyslogに“Driver Baffar Overflowed"というエラーを出して、以降の部分が録画されなくなる。

エンコードの際は、CPUコア(スレッド)の数より少ないスレッド数を指定する。

#2コア2スレッドの場合
$ ffmpeg -threads 1 [オプション]

更にfuse_b25の優先度は高くし、エンコードの優先度を低くしておく。

/etc/rc.local、fuse_b25のマウント部分

#マウント先の数字を元のデバイスよりいくつ大きくするか
OFFSET=10
for ADAPTER in 0 1 2 3
do
	NEW_ADAPTER=`expr $ADAPTER + $OFFSET`
	/usr/local/sbin/b25dir $NEW_ADAPTER
	nice --4 /usr/local/bin/fuse_b25 --target /dev/dvb/adapter$ADAPTER /dev/dvb/adapter$NEW_ADAPTER -o allow_other
done

ffmpegの優先度を下げる

$ nice -15 ffmpeg [オプション]

また、録画ディスクのI/Oに負荷をかけすぎても同様のことが起こるのでTsSplitterを使う場合は必ずWAITオプションを指定する。

$ wine TsSplitter.exe [オプション] -WAIT2,5

バックエンドへの対策

録画の開始時にMythTVのバックエンドが落ちることがある。PIDファイルが残るのでmythbackendのプロセスがなく、PIDファイルが残っていたら再起動させる。念のためfuse_b25の再マウントも行う。

$ sudo vi /usr/local/sbin/mythtv_check.sh

(さらに…)

[amazon_tags]


4月 16th, 2012

Posted In: ソフトウェア

タグ: , , , , , , , ,

Leave a Comment

DKMSはカーネルモジュールのソースパッケージを管理するシステム。これを使うとモジュールのビルド、インストールを自動化できる。これをPT2のDVB版ドライバに適用する。

DKMSのインストール

$ sudo aptitude install dkms

ソースのダウンロード・展開

$ wget http://www.linuxtv.org/hg/v4l-dvb/archive/tip.tar.gz
$ tar xvzf tip.tar.gz

ソースのディレクトリは"<パッケージ名>-<バージョン>"という名前にし、/usr/src/以下に配置する。展開された状態で"v4l-dvb-3724e93f7af5"となっているのでそのままコピーした。

/usr/src/以下にソースをコピー

$ sudo cp -r v4l-dvb-3724e93f7af5/ /usr/src/

DKMSにソースパッケージを追加するにはソースディレクトリ内に"dkms.conf"という設定ファイルを作成する必要がある。

dkms.confの作成

$ sudo vi /usr/src/v4l-dvb-3724e93f7af5/dkms.conf
#パッケージの名前
PACKAGE_NAME="v4l-dvb"
#パッケージのバージョン
PACKAGE_VERSION="3724e93f7af5"
#中間ファイルの削除コマンド
CLEAN="make clean"
#ビルドするコマンド
MAKE="make KVER=${kernelver}"
#モジュールが作成される場所(ソースディレクトリからの相対パス)
BUILT_MODULE_LOCATION[0]="v4l"
BUILT_MODULE_LOCATION[1]="v4l"
#作成されるモジュールの名前(拡張子.koは付けない)
BUILT_MODULE_NAME=[0]"dvb_core"
BUILT_MODULE_NAME=[1]"earth-pt1"
#元々のインストール先(/lib/modules/`uname -r`をルートとしたパス)
DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb/dvb-core/"
DEST_MODULE_LOCATION[1]="/kernel/drivers/media/dvb/pt1/"
#自動更新の有効化
AUTOINSTALL="YES"

必要なモジュールはearth-pt1のみなのでearth-pt1とdvb-coreのみなので上記のようにした。他のモジュールも入れる場合BUILT_MODULE_LOCATION[2],BUILT_MODULE_NAME[2],DEST_MODULE_LOCATION[2]というようにインデックスを増やして指定する。同じインデックスで組になる。

AUTOINSTALL="YES"としておくとカーネルのアップデート時に自動的にインストールされる。(設定の有無だけを見ているので"NO"としても有効になる)

DEST_MODULE_LOCATIONは元々のモジュールを見つけるためだけに使われ、モジュールはupdates/dkms/以下にインストールされる。Ubuntu10.10以降など新しいディストリビューションでは使われるらしい。

ソースパッケージの追加

$ sudo dkms add -m v4l-dvb -v 3724e93f7af5

モジュールのビルド

$ sudo dkms build -m v4l-dvb -v 3724e93f7af5

モジュールのインストール

$ sudo dkms install -m v4l-dvb -v 3724e93f7af5

インストールされたモジュールの確認

$ sudo modprobe -l |grep earth-pt1.ko
updates/dkms/earth-pt1.ko

モジュールのアンインストール

$ sudo dkms uninstall -m v4l-dvb -v 3724e93f7af5

ソースパッケージの登録削除

$ sudo dkms remove -m v4l-dvb -v 3724e93f7af5 --all

自動インストールの動作を確認するには次のコマンドを使う。

$ sudo /usr/lib/dkms/dkms_autoinstaller start

追記:アンインストールの記述間違いを修正

2012/03/30追記: earth-pt1のモジュールが動作しなかったのでdvb-coreもdkms.confに追加。

2012/05/11追記: 上手く動かなかったのでdkms.confにBUILT_MODULE_LOCATION[1]を追加。(動作確認済み)

[amazon_tags]


2月 4th, 2012

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

タグ: , , , , ,

Leave a Comment

wineが前回やった方法でインストールできなくなっているので何とかインストールしてみた。

作業ディレクトリを作成して移動

$ mkdir /usr/local/src/wine-unstable/
$ cd /usr/local/src/wine-unstable/

パッケージのダウンロード

$ wget http://dev.carbon-project.org/debian/wine-unstable/\
{libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-bin-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-capi-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-cms-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-dbg-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-dev-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-gl-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-gphoto2-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-ldap-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-openal-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-oss-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-print-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-sane-unstable_1.4~rc1-0.1_amd64.deb,\
libwine-unstable_1.4~rc1-0.1_amd64.deb,\
wine-bin-unstable_1.4~rc1-0.1_amd64.deb,\
wine-unstable_1.4~rc1-0.1_amd64.deb}

libwine-alsa-unstableが依存しているlib32asound2がsqueezeでは古いのでwineが上手くインストールできない。無理やりインストールしても問題は見当たらなかったのでlibwine-alsa-unstableのパッケージを書き換える。

libwine-alsa-unstableのパッケージを展開

$ dpkg-deb -x libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb libwine-alsa-unstable_1.4~rc1-0.1_amd64
$ dpkg-deb -e libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb libwine-alsa-unstable_1.4~rc1-0.1_amd64/DEBIAN

依存しているlib32asound2のバージョンを書き換え(squeezeのlib32asound2は1.0.23-2.1)

$ vi libwine-alsa-unstable_1.4~rc1-0.1_amd64/DEBIAN/control
     7  Depends: lib32asound2 (>= 1.0.23-2.1), libc6-i386 (>= 2.1.3), libwine-unstable (= 1.4~rc1-0.1)

パッケージを再構築

$ dpkg-deb -b libwine-alsa-unstable_1.4~rc1-0.1_amd64 libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb

パッケージのインストール

sudo dpkg -i *.deb

依存関係の修復

$ sudo aptitude -f install
以下の、インストールが完了していないパッケージが設定されます:
  libwine-alsa-unstable{b} libwine-bin-unstable libwine-capi-unstable libwine-cms-unstable{b} libwine-dbg-unstable libwine-dev-unstable{b} libwine-gl-unstable{b} libwine-gphoto2-unstable{b} libwine-ldap-unstable{b}
  libwine-openal-unstable{b} libwine-oss-unstable{b} libwine-print-unstable libwine-sane-unstable libwine-unstable{b} wine-bin-unstable wine-unstable
インストール・削除・更新されるパッケージがありません。
更新: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
0 B のアーカイブを取得する必要があります。展開後に 0 B のディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
  libwine-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
                    依存: lib32z1 (>= 1:1.1.4) but it is not going to be installed.
  libwine-openal-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
  libwine-ldap-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
  libwine-dev-unstable: 依存: libc6-dev but it is not going to be installed.
                        依存: libc6-dev-i386 but it is not going to be installed.
  libwine-cms-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
  libwine-alsa-unstable: 依存: lib32asound2 (>= 1.0.23-2.1) but it is not going to be installed.
  libwine-gl-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
  libwine-oss-unstable: 依存: oss-compat but it is not going to be installed.
  libwine-gphoto2-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed.
以下のアクションでこれらの依存関係の問題は解決されます:

      以下のパッケージを削除する:
1)      libwine-alsa-unstable
2)      libwine-bin-unstable
3)      libwine-capi-unstable
4)      libwine-cms-unstable
5)      libwine-dbg-unstable
6)      libwine-dev-unstable
7)      libwine-gl-unstable
8)      libwine-gphoto2-unstable
9)      libwine-ldap-unstable
10)     libwine-openal-unstable
11)     libwine-oss-unstable
12)     libwine-print-unstable
13)     libwine-sane-unstable
14)     libwine-unstable
15)     wine-bin-unstable
16)     wine-unstable



この解決方法を受け入れますか? [Y/n/q/?]n
以下のアクションでこれらの依存関係の問題は解決されます:

      以下のパッケージをインストールする:
1)      binutils [2.20.1-16 (stable)]
2)      gcc [4:4.4.5-1 (stable)]
3)      gcc-4.4 [4.4.5-8 (stable)]
4)      gcc-4.4-multilib [4.4.5-8 (stable)]
5)      gcc-multilib [4:4.4.5-1 (stable)]
6)      ia32-libs [20120102 (stable)]
7)      lib32asound2 [1.0.23-2.1 (stable)]
8)      lib32bz2-1.0 [1.0.5-6+squeeze1 (stable)]
9)      lib32gcc1 [1:4.4.5-8 (stable)]
10)     lib32gomp1 [4.4.5-8 (stable)]
11)     lib32ncurses5 [5.7+20100313-5 (stable)]
12)     lib32stdc++6 [4.4.5-8 (stable)]
13)     lib32v4l-0 [0.8.0-1 (stable)]
14)     lib32z1 [1:1.2.3.4.dfsg-3 (stable)]
15)     libc-dev-bin [2.11.3-2 (stable)]
16)     libc6-dev [2.11.3-2 (stable)]
17)     libc6-dev-i386 [2.11.3-2 (stable)]
18)     libgomp1 [4.4.5-8 (stable)]
19)     linux-libc-dev [2.6.32-41 (stable)]
20)     oss-compat [0.0.4+nmu3 (stable)]



この解決方法を受け入れますか? [Y/n/q/?]y
以下の新規パッケージがインストールされます:
  binutils{a} gcc{a} gcc-4.4{a} gcc-4.4-multilib{a} gcc-multilib{a} ia32-libs{a} lib32asound2{a} lib32bz2-1.0{a} lib32gcc1{a} lib32gomp1{a} lib32ncurses5{a} lib32stdc++6{a} lib32v4l-0{a} lib32z1{a} libc-dev-bin{a}
  libc6-dev{a} libc6-dev-i386{a} libgomp1{a} linux-libc-dev{a} oss-compat{a}
以下の、インストールが完了していないパッケージが設定されます:
  libwine-alsa-unstable libwine-bin-unstable libwine-capi-unstable libwine-cms-unstable libwine-dbg-unstable libwine-dev-unstable libwine-gl-unstable libwine-gphoto2-unstable libwine-ldap-unstable
  libwine-openal-unstable libwine-oss-unstable libwine-print-unstable libwine-sane-unstable libwine-unstable wine-bin-unstable wine-unstable
更新: 0 個、新規インストール: 20 個、削除: 0 個、保留: 0 個。
49.7 MB のアーカイブを取得する必要があります。展開後に 129 MB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y

これで問題なくインストールされた。

winetricksのインストール

$ wget http://winetricks.org/winetricks
$ sudo cp winetricks /usr/local/bin/
$ sudo chmod +x /usr/local/bin/winetricks

[amazon_tags]


1月 31st, 2012

Posted In: ソフトウェア

タグ: , , , ,

Leave a Comment

Linux用のRDPサーバーのXRDPを導入してみた。特に設定は必要無いのでVNC単体より簡単に使うことができる。また、普段GUIを使っていない場合でもログインしている間だけGUIが起動するので無駄が少ない。

Windows標準のリモートデスクトップ接続が使えるので、Windowsにクライアントをインストールする必要がない。

XRDPのインストール

インストール

$ sudo aptitude install xrdp

インストールできたら、特に設定をする必要は無いのでWindowsから接続してみる。

image

ユーザー名とパスワードを入力するとデスクトップが表示される。

デフォルトでは「sesman-Xvnc」が使われ、VNCを経由して表示される。VNCなので音は出ない。任意のVNCサーバーやRDPサーバーに接続することもできる。

「sesman-X11rdp」という項目があり、Xを使って表示されるようだが、標準では使うことはできない。

X11rdpを導入する

X11rdpを導入するとXRDPにXが使えるようになる。ここに書かれていることを参考に導入した。

ソースのダウンロード・展開

$ cd /usr/local/src/
$ wget http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz
$ tar xvzf x11rdp_xorg71.tar.gz

インストール

$ sudo mkdir /opt/X11rdp #インストール先ディレクトリを作成
$ cd x11rdp_xorg71
$ sudo sh buildx.sh /opt/X11rdp #インストール先を指定する

既存の環境に影響を与えないので/opt/X11rdpにインストールした。数十分かかるのでしばらく待つ。

インストールが完了したらパスが通っているディレクトリに実行ファイルのシンボリックリンクを貼る。

$ sudo ln -s /opt/X11rdp/bin/X11rdp /usr/local/bin/X11rdp

準備ができたのでRDPで接続してみる。

色の深度は16ビットにしておく

image

「sesman-X11rdp」を使って接続する

image

デスクトップが表示される。こちらも音声のリダイレクトには対応していない様子。

参考
Install xrdp and X11rdp – the comprehensive HOWTO for Ubuntu and Debian based systems « Scarygliders

[amazon_tags]


1月 28th, 2012

Posted In: ソフトウェア

タグ: , , , , ,

Leave a Comment

MythTVで録画したファイルをネットワークメディアプレイヤーやWindowsクライアントから再生する方法を紹介する。

MythTVのUPnPサーバーを有効にする

MythTVにはUPnP(DLNA)サーバー機能が備わっているというが、検出されないし、その設定項目もなかった。適切に設定されてない場所を修正するとあっさり有効になった。標準機能を使うのでwizdやmediatombと組み合わせるよりも手軽。

まず、mythtv-setupを起動する。

$ mythtv-setup

"1.一般"を選び、"ホストアドレスバックエンドの設定"で"Local Backend"と"Master Backend"の"IP Address"にマシンに振られているIPアドレスを指定する。両方に同じ物を指定しないと2つが別のマシンと認識してしまうので注意が必要。次に"UPnP Server Settings"の"UPnP Media Update Time"が0になっていないことを確認する。何も設定しなくてもデフォルトは30になっている。

設定を行ったら反映させる。一般ユーザーで設定しているのでバックエンドを再起動する。

$ sudo /etc/init.d/mythbackend restart

これでDLNAクライアントなどからMythTVが検出されるようになる。

タイトル、ジャンル、日付、チャンネル、グループのいずれかで分けて表示することもできる。サーバー側で並び順が変えられないのが惜しい所。下の画像はRDLNAを使った例。

image

(さらに…)

[amazon_tags]


1月 20th, 2012

Posted In: ソフトウェア

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

Leave a Comment

ローカルメールを外部に転送できなくて放置していたのを調べてみた。

持っているアドレスに手当たり次第にmailコマンドでメールを送ってみるがどこにも届かなかった。Exim4の設定はインターネットサイトになっているので問題ないがログ(Exim4は/var/log/exim4/mainlog)を見てみると"No route to host"と出ていた。そこで、プロバイダの規制がないか調べてみると原因はOP25B(Outbound Port 25 Blocking)ということがわかった。聞いたことはあったがそういうことだとは思わなかった。

プロバイダのメールサーバーを経由すればOP25Bを回避できるので、Debian標準のExim4で設定する。

Exim4の再設定

再設定コマンド

$ sudo dpkg-reconfigure exim4-config

ウィザードが表示される。メールサーバーとして使うつもりはないので必要な設定以外はデフォルトで進めていくことにする。

メール設定の一般的なタイプ
スマートホストでメール送信; SMTP または fetchmail で受信する
システムメール名
そのまま
入力側 SMTP 接続をリスンする IP アドレス
127.0.0.1 ; ::1
メールを受け取るその他の宛先
そのまま
メールをリレーするマシン
空欄
送出スマートホストの IP アドレスまたはホスト名
プロバイダのSMTPサーバーを指定
送出するメールでローカルメール名を隠しますか?
<いいえ>
DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド)?
<いいえ>
ローカルメールの配送方式
/var/mail/ 内の mbox 形式
設定を小さなファイルに分割しますか?
<いいえ>

SMTP認証の設定

SMTP認証が必要なので設定する。

$ sudo vi /etc/exim4/passwd.client

例の通り追記する。

# Example:
### target.mail.server.example:login:password
プロバイダのSMTPサーバー:アカウント名:パスワード

eo光の場合

smtpauth.eonet.ne.jp:xxxx@****.eonet.ne.jp: password 

これでmailコマンドでメールが送れるようになった。

メールの転送設定

ローカルのメールサーバーは使わないのでメールを全部独自ドメインのgmailに転送する。

root(システム)

/etc/aliasesを編集する。最後の行のrootへのエイリアスに転送先メールアドレスを指定する。

$ sudo vi /etc/aliases
root: example@example.com

一般ユーザー

ホームディレクトリに.forwardという名前のファイルを作って、そこにメールアドレスを指定する。

$ vi ~/.forward
example@example.com

これでサーバーの通知メールなどが外部から受け取れるようになった。

[amazon_tags]


10月 22nd, 2011

Posted In: ソフトウェア

タグ: , , , , ,

Leave a Comment

家ではテレビにデジタルチューナーを導入しないと決まっていたので、PCで一応見れるようにとリモートでのリアルタイム視聴を視野に入れていた。http版recpt1を候補にしたが、MythTVでもfuse_b25で対応でき、MythTV Playerでリアルタイム視聴できるとわかったので、元々使っていたMythTVを引き続き使うことにした。視聴と予約録画が同じシステムにあるので、MythTVにはチューナーを効率的に活用できる利点がある。

MythTV+FUSE_b25とepgfillでパッチを当てずに常用できるが、BSが見られないなど色々と不具合があるのでパッチ当てたものを使う。ただし、依存関係やらが面倒なのでMythTVはDeb-Multimediaのものをベースにする。セットアップはPT1/PT2のDVBとMythTV @Wikiを参考にして行った。

パッチの準備

MythTVを修正するためのパッチを用意する。

2011.9.29 追記
ISDB対応パッチとカテゴリ日本語化パッチを分離。パッチの形式を変更して再作成。
2011.9.30 追記
サブタイトルの切り直しパッチを更新。("最終回"や"<新>"などの文字列に対応)
2011.11.17
サブタイトルの切り直しパッチを更新
2011.12.11
サブタイトルの切り直しパッチを更新
2011.4.21
サブタイトルの切り直しパッチを更新
2012.5.19
0.25が最新版になったことの対策と自動アップデート防止を追記

ISDB対応パッチ

番組表取得や全チャンネルのフルスキャンに対応したMythTVのISDB対応版がある。Debian-Multimediaのパッケージをベースにするため、これをそのまま使わずパッチとして利用する。

本家のソースとISDB版のソースを持ってきてパッチを作る。

$ sudo aptitude install git #gitが入っていない場合
$ w3m http://www.mythtv.org/download/mythtv/0.24.1 #本家
$ tar xjf mythtv-0.24.1.tar.bz2
$ git clone git://github.com/fukumen/mythtv.git mythtv #ISDB版
$ mv mythtv/mythtv/ isdb-mythtv
$ diff -urN mythtv-0.24.1 isdb-mythtv > mythtv-isdb.patch

ISDB対応パッチ

カテゴリ日本語化パッチ

ISDB版で取得される番組表はepgdumpとは違い、カテゴリが英語になっているので、日本語に修正する。英語でも問題ないように思えるが、カテゴリが日本語になっていないと番組表の色分けが正常に行われない。

カテゴリ日本語化パッチ

サブタイトルの切り直しパッチ

EITで取得した番組表のタイトルが番組名での録画予約に適さないのでサブタイトルを切り直すようにするパッチ。先頭の識別子と後半部分を切り出してサブタイトルの先頭につける。このパッチの正規表現では後半部分の切り出しが少し過剰になるかもしれない。

サブタイトル切り直しパッチ

サブタイトル切り直しパッチ(2011.11.17版)

サブタイトル切り直しパッチ(2011.12.11版)

サブタイトル切り直しパッチ(2012.4.21版)

BS対応パッチ

ISDB版でもBSには対応していないので無理やり対応させる。このレスを参考にデータベースにアクセスする際にTransportIDも一緒に取ってくる処理とDisEqCの無効化してBSをチューニングする処理を追加した。TSIDをつけてチューニングする処理を追加するだけでチャンネルスキャンで設定することはできない。そのため、データベースを直接操作する必要がある。チャンネル登録用スクリプトを用意したので記事の下の方を参照。

BS対応パッチ

新BS対応パッチ

チューニングバグ修正パッチ

録画に失敗しても再試行しないバグがある。それに対応するパッチがwikiのトラブルシューティングにあるので持ってくる。これを当ててからfuse_b25に異常がない限り録画に失敗することはなくなった。

チューニングパッチ

FFmpegのAAC音声切り替え対応パッチ

MythTVに内蔵しているffmpegをAACの音声切り替えに対応させるパッチ。これもwikiからもらってくる。視聴にMythTV Playerを使っていて音声切り替えでエラーが出るので効果は不明。

2011.11.16追記

Debian-Multimediaのmythtv(0.24.1+fixes20111029以降)にはこのパッチを当てられない。

ffmpegパッチ

(さらに…)

[amazon_tags]


9月 10th, 2011

Posted In: ソフトウェア

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

12 Comments

先月、アナログ停波に備え、余ったPT2を譲ってもらって録画環境をデジタル化した。地上波だけでは高い買い物に感じたのでBSにも対応させた。ようやく使えるようになってきたのでまとめる。今回はMythTV以外の部分。

用意した機材

  • アースソフト PT2 Rev.A
  • NTT-ME SCR3310-NTTCom
  • B-CASカード
  • YAGI UwPA-UP
  • 富士通のBSアンテナ(十数年前のもの)
  • HORIC アンテナ2分配器 HAT-2SP911NB
  • YAGI 2分配器 CSPDL2(以前買って余ってた)
  • ダイソーのアンテナケーブル1m 315円*5

B-CASカードは電話して再発行してもらった。BSが見られるか聞かれただけでメーカー、機種名は問われなかった。

家にアンテナが立っていないのでブースター付きの室内アンテナを新調。ケーブルが付属していないので2本必要になる。BSアンテナは十年以上使われてなかったものをガラクタで補修して簡単に設置した。アンテナケーブルは一番安く手に入るダイソーのものを購入。

信号レベルはWindowsマシンにカードを挿してSignalTalkerで測った。BSアンテナはBluetoothでSignalTalkerの音を飛ばして調整した。recpt1でも信号レベルは測れるらしいので、もしアンテナがずれたら試してみる。DVB版で測れるツールはないんだろうか。

DVB版ドライバの導入

まずドライバを導入する。chardev版ではなくDVB版を使う。DVB版はfuse_b25を使えば、アナログ環境で使っていたMythTVで使える。DVB版ドライバは新しいカーネルには標準で入っているが、squeezeのカーネルには入っていないのでインストールする。

PT2が認識しているか確認

$ lspci | grep Multimedia
 04:01.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)

上のように出たらPT2が認識しているのでドライバをインストールする。ドライバのソースはhttp://www.linuxtv.org/hg/v4l-dvbからダウンロードできる。

そのままではビルドできないので必要なパッケージをインストールしておく。

$ sudo aptitude install build-essential linux-header-2.6-amd64

パッケージをインストールしたらドライバをビルドしてインストールする。

$ cd /usr/local/src/ 
$ wget http://www.linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2 
$ tar xjf tip.tar.bz2 
$ cd v4l-dvb-3724e93f7af5/ 
$ make 
$ sudo make install 
$ sudo reboot

インストール後、ドライバモジュールを読み込ませるために再起動する。

ドライバの確認。

$ lsmod | grep pt1
earth_pt1              15748  105
dvb_core               75106  1 earth_pt1
i2c_core               15819  6 i915,drm_kms_helper,earth_pt1,drm,i2c_algo_bit,i2c_i801
$ dmesg | grep DVB
[    7.555975] DVB: registering new adapter (earth-pt1)
[    7.556224] DVB: registering new adapter (earth-pt1)
[    7.556414] DVB: registering new adapter (earth-pt1)
[    7.556632] DVB: registering new adapter (earth-pt1)
[    7.892565] DVB: registering adapter 0 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)...
[    7.892655] DVB: registering adapter 1 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)...
[    7.892688] DVB: registering adapter 2 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)...
[    7.892714] DVB: registering adapter 3 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)...
$ ls /dev/dvb/ 
adapter0 adapter1 adapter2 adapter3

ISDB-SとなっているのがBS/CS用、ISDB-Tとなっているのが地上波用になる。

(さらに…)

[amazon_tags]


8月 19th, 2011

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

タグ: , , , , , , , ,

Leave a Comment

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