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]を追加。(動作確認済み)


2月 4th, 2012

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

タグ: , , , , ,

Leave a Comment

簡易設置したBSのアンテナがずれてBSが受信できなくなっていたので再調整した。

DVB版ドライバで信号レベルを測定する方法が見当たらないので、chardev版ドライバをインストールして測定する。測定にはrecpt1付属のchecksignalを使う。

chardev版ドライバのインストール

ドライバの取得・展開

$ wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
$ tar xvjf tip.tar.bz2

ドライバのインストール

$ cd pt1-3914cc1b2375/
$ cd driver/
$ make
$ sudo make install

ツールのビルド

recpt1をビルド

$ cd ../recpt1/
$ ./autogen.sh
$ ./configure
$ make

ドライバ付属のもので問題ない。常用しないのでインストールはしない。

ドライバの入れ替え

MythTVの停止

$ sudo /etc/init.d/mythtv-backend stop

fuse_b25のマウント解除

$ sudo umount /dev/dvb/adapter{10,11,12,13}

DVB版のドライバ無効化して、chardev版ドライバを有効化

$ sudo modprobe -r earth_pt1
$ sudo modprobe pt1_drv

信号レベルの確認

DVB版と違って0,1がBS/CS、2,3が地上波になっている。地上波は物理チャンネルを指定、BSは通常のチャンネル。BSは同じ方角なので、チャンネルが古くても問題ない。

使い方

$ ./checksignal --help

Usage:
./checksignal [--device devicefile] [--lnb voltage] [--bell] channel


Options:
--device devicefile: Specify devicefile to use
--lnb voltage:       Specify LNB voltage (0, 11, 15)
--bell:              Notify signal quality by bell
--help:              Show this help
--version:           Show version
--list:              Show channel list

Available Channels:
13-62: Terrestrial Channels
101ch: NHK BS1
102ch: NHK BS2
103ch: NHK BShi
141ch: BS Nittele
151ch: BS Asahi
161ch: BS-TBS
171ch: BS Japan
181ch: BS Fuji
191ch: WOWOW
192ch: WOWOW2
193ch: WOWOW3
200ch: Star Channel
211ch: BS11 Digital
222ch: TwellV
C13-C63: CATV Channels
CS2-CS24: CS Channels

地上波

$ ./checksignal --device /dev/pt1video2 

BS

$ ./checksignal --device /dev/pt1video0 --lnb 15 101

ドライバを元に戻す

モジュールの入れ替え

$ sudo modprobe -r pt1_drv 
$ sudo modprobe earth_pt1

chardev版ドライバの無効化

トラブル防止のためにchardev版ドライバを自動的にロードしないようにする

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

もしくは、ドライバをアンインストールしてしまう

$ sudo rm /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko
$ sudo rm /etc/udev/rules.d/99-pt1.rules

後処理

fuse_b25の再マウント

$ sudo fuse_b25 --target /dev/dvb/adapter0 /dev/dvb/adapter10 -o allow_other
$ sudo fuse_b25 --target /dev/dvb/adapter1 /dev/dvb/adapter11 -o allow_other
$ sudo fuse_b25 --target /dev/dvb/adapter2 /dev/dvb/adapter12 -o allow_other
$ sudo fuse_b25 --target /dev/dvb/adapter3 /dev/dvb/adapter13 -o allow_other

MythTVの起動

$ sudo /etc/init.d/mythtv-backend start

追記:コマンドの間違いを修正


2月 2nd, 2012

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

タグ: , , , , , ,

3 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となっているのが地上波用になる。

(さらに…)


8月 19th, 2011

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

タグ: , , , , , , , ,

Leave a Comment

Debian 6.0(squeeze)のインストール先にWesternDegital WD20EARSを使った。これを2台使って、ソフトウェアRAIDとLVMを構成する。ただし、このディスクには3つ問題がある。

  • IntelliPark
    消費電力削減のため、8秒間アクセスがないとヘッドを退避してしまう。ヘッド退避が頻発するとパフォーマンスが落ちる上、ディスクの寿命が縮む。
  • AdvancedFormatTechnology(AFT)
    論理セクタと物理セクタのずれによって書き込み速度が低下する。
  • 容量2TB
    2TBを超えるHDDにインストールするとGUIDパーティションテーブル(GPT)が使われる。 ブートローダー用にパーティションを作る必要がある(参考)。

まず、IntelliParkの8秒はやりすぎなので5分程度に設定する。設定にはwdidle3.exeを使う(WDのサポート外なので注意)。

  1. FreeDOSが必要なのでUNetbootinをダウンロードする。
  2. UNetbootinを起動し、FreeDOSをUSBメモリにインストールする。
  3. WDのサイトからwdidlw3.exeをダウンロード。
  4. FreeDOSが入ったUSBメモリにwdidle3.exeを入れる。
  5. 設定するHDDとFreeDOSの入ったUSBメモリだけを接続し、USBメモリから起動する。
    (全てのディスクに同じ設定がされる)
  6. FreeDOSが起動したら次のようにコマンドを打ち、ヘッドの退避を300秒(5分)に設定する。
    A:\>C:
    C:\>wdidle3.exe /s300
  7. 設定が完了したのを 確認して、電源を切る。

次にAFT対策、論理セクタと物理セクタがずれないようにする。MBRパーティションにsqueezeをインストールする場合は最初のパーティションは2048セクタで開始するので対策は不要。2TBのディスクを使うとGPTになり、なぜかずれる。そのため、先にGPartedでパーティションを切っておく。起動用の小さなパーティションと他のパーティションを未フォーマットで切っていく。

起動用パーティションを作る。AlignをMiBにして先頭に最小単位1MiBの未フォーマットパーティションを作り、右クリックメニューの情報で開始セクタが2048セクタになっているのを確認する。ここにGrubがインストールされる。

Screenshot-新規パーティションの作成

Screenshot-新規パーティション #1の情報

同様に他のパーティションも切っていく。RAIDを組むので2台に同じように切る。

Screenshot--dev-sdb - GParted

3つの問題の問題が解決した所でインストールを始める。パーティションは1MB,256MB,残りの3つに切った。HDD以外にドライブを積んでいないのでUSBメモリからインストールする。ここでもUNetbootinを使う。DebianとStable_NetInstall_x64を選択してUSBメモリに書き込む。書き込んだUSBメモリからブートする。インストーラが起動したら、USBメモリを抜きインストール開始(USBメモリがsdaになるのを防ぐ)。

インストールを進めて、ディスクのパーティショニングで手動を選択。あらかじめ切っておいたパーティションを次のようにする。予約済みBIOSブート領域(biosgrub)を作らないとGRUBのインストールに失敗する。(作らなくても警告が出ず、何度やっても失敗するのではまった。ガイドでパーティショニングすると勝手に作られる)

物理パーティションの構成

/dev/sda1(/dev/sdb1) 1MB 予約済みBIOSブート領域(biosgrub)
/dev/sda2(/dev/sdb2) 256MB RAIDの物理ボリューム(/dev/md0)
/dev/sda3(/dev/sdb3) 2TB RAIDの物理ボリューム(/dev/md1)

次にソフトRAIDを設定する。ソフトウェアRAIDの設定から/dev/sda2と/dev/sdb2、/dev/sda3と/dev/sdb3をそれぞれチェックしてRAID1アレイを作成する。小さい方のアレイにext4を指定して、マウントポイントを/bootに指定。大きい方をLVMの物理ボリュームに指定してボリュームグループを作成する。次に、ボリュームグループから必要なだけ論理ボリュームを作成して、完了を選ぶ。切り出した論理ボリュームにそれぞれ利用方法とマウントポイントを指定する。次のような構成にした。後で足りなくなった容量を拡張できるようにボリュームグループを使い切らずに残してある。

パーティションの構成(RAID)

/dev/sda1 1MB biosgrub
/dev/md0 256MB ext4
/dev/md1 2TB LVMの物理ボリューム

パーティションの構成(LVM)と利用方法

パーティション 容量 利用方法 マウントポイント
/dev/sda1 1MB biosgrub
/dev/md0 256MB ext4 /boot
論理ボリューム 20GB ext4 /
論理ボリューム 200GB ext4 /home
論理ボリューム 20GB ext4 /usr
論理ボリューム 1.5TB ext4 /usr/local
論理ボリューム 20GB ext4 /var
論理ボリューム 5GB ext4 /tmp
論理ボリューム 4GB スワップ領域

設定し終えたら変更を書き込む。あとは通常通りインストールを進める。ソフトウェアの選択にSSHサーバーが追加されていた。インストール直後からSSHで操作ができて便利。

インストール後は、2つ目のディスクにも起動情報を書き込む。パーティションとして見えるのでbiosgrubパーティションを1つ目のディスクから2つ目のディスクへコピーするだけで済む。

$ sudo dd if=/dev/sda1 of=/dev/sdb1 bs=512
2048+0 records in
2048+0 records out
1048576 bytes (1.0 MB) copied, 0.0783861 s, 13.4 MB/s
$

参考

メモ帳: Ubuntu9.10 で NAS on RAID1(3/6)


2月 16th, 2011

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

タグ: , , , , , ,

4 Comments

今使ってるメイン機。9月のはじめに組んだもの。
 MyPC1

[CPU]Intel Pentium Dual-Core E2180 2.0GHz
[M/B]P5K PRO (中古)
[メモリ]バルク S&Mとかいう悪評チップ 2GB*2
[VGA] RH3650-E512HW
[HDD]ST3500320AS 500GB
[FDD]FA404MX
[DVDドライブ]GH20NS10
[ケース]CM690 (展示品)
[電源]KRPW-K500W
[キャプチャ]GV-MVP/RX(中古)

  MyPC2 MyPC3

いろいろ情報を集めた上で、ほとんど価格.comの上位で選んだ。オークションと九十九で揃えた。

CPU:
そんなに性能が必要ないと思って安物にした。コストパフォーマンスはいい。低発熱でOCしても安定。廉価版でもPentiumブランドはさすが。FSBやら固定して、電圧上げたら3GHzまでOCできた。後々VTが無効化されてるのに不自由した。リテールファンでもそんなにうるさくなくて十分冷えた。

マザーボード:
P5K-Eが一番売れてた。それで、ASUSの同系統のP5K PRO。なんとなくこっちにしてみたくなった。でも、糞配線。ケースの中央に大蛇ができてる。

メモリ:
なんとなくオークションで入札したら落ちた。落ちてほしくなかった。調べたら2chにスレが立つほどの糞チップ。エラーとかもなく安定してる。

VGA:
PCゲームはやらないので、動画支援付のRADEON。使いまわしできる部品だから、それなりのものをと。デュアルディスプレイを視野に端子が2基のものを選んだ。統一感と将来性を考えて両方DVI。SAPPHIRE製が良さそうだったので買おうと思ったら売り切れ。ちょうど、玄人志向のVGAのセールがやってた。そこからSAPPHIREのと中身が同じものを。

HDD:
最初からSeagateにしようと思ってた。当時コストパフォーマンスが一番よかった500GB。他がキャッシュ16MBに対して32MBだったので購入。九十九の保証もつけた。1ヶ月で認識しなくなった。初期不良の期間が過ぎてたけど初期不良交換。数日前にその原因がわかった。思いっきりその被害者。
(GALACTIC FUNK | seagateがやばい
修理から帰ってきたのも同じ型。ファームはSD15、これは危ない。

FDD:
カードリーダ内臓。OSバンドルでない。ないと落ち着かない、それだけ。FDDは使わなくてもカードリーダがついてる。

DVDドライブ:
LG電子が良さそうな気がした。その中で売れ筋のもの。

ケース:
当時、価格.comで1位。下置き電源で探した。AntecのSOLOとかP180はちょっと高くて手が出なかった。どちらかと言うと静音より冷却。似た感じのNineHundredは見た目が気に入らなくて、それ以下のThreeHundredは選べない。青いファンを1つ増設。サイドファンがうるさいので底面吸気ファンにした。

電源:
値段の割りにいい電源ということで。電源なら玄人志向でも問題ないはず。サービスコンセントがないのが普通なのは知らなかった。連動OAタップも購入。

キャプチャ:
ゲームのキャプチャ用に低予算で。番組録画で頻繁に使うようになった。唯一64bit非対応のパーツ。32bitOSから離れられない原因になってしまった。

2つ玄人でメモリはバルクで危ない。CPUの予算が異常に低かった。CPUよりメモリ派。ケースファンには換気扇フィルタ。大学で仕入れた中古の15型ディスプレイ×2、サーバに使ってる中古PCについてたキーボード。壊れたマウスの代わりに買ったマウス。黒いのは本体だけ。

九十九がつぶれかけたと思ったら今度はSeagate。


1月 21st, 2009

Posted In: ハードウェア

タグ: , ,

Leave a Comment

« 前ページへ