2012年1月3日火曜日

dnsmasq の設定

ローカルネットワーク内のホスト名を引くための、DNSプロキシとして dnsmasq を設定する。

dnsmasq をインストール
$ sudo aptitude install dnsmasq

設定ファイルを修正
$ sudo vi /etc/dnsmasq.conf

local=/localnet/
no-dhcp-interface=eth0
cache-size=500

保存して終了

このマシンの DNS 設定に dnsmasq を加える
$ sudo vi /etc/dhcp3/dhclient.conf

prepend domain-name-servers 127.0.0.1

保存して終了
上記設定を行うと、/etc/resolv.conf が自動生成されるときに、nameserver 127.0.0.1 が追加される。

hosts にローカルネットワークのマシンを定義
$ sudo vi /etc/hosts

127.0.0.1 localhost pc1
192.168.1.101 pc1
192.168.1.102 pc2

保存して終了

dnsmasq を起動
$ sudo /etc/init.d/dnsmasq restart

ネットワーク(eth0)を再起動
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up

他の PC から ping ができたら完了。

Ubuntu で RAID10 の故障ハードディスクを取替え

RAID 復旧作業の備忘録

以前、RAID 復旧作業で、HDD のパーティションを切ることができず、ドライブ丸ごと RAID に突っ込んだ苦い失敗を、ここで挽回する。

今回、2度目の HDD 故障となり、HDD を Amazon でポチることにした。しかし容量が 2T のものしかなかったので、現在の 1.5T 構成だと、500GB 無駄になることになる。
さすがに、500GB 無駄になるのは、甚だ遺憾なので、真面目に対処することにした。

前回の失敗を振り返ると、、「GUI での設定方法がよく分かっていなかった」ことに尽きる。

そこらへんを重点的に攻略していこうと思ったが、やはり GUI では、思ったように設定できないようだ。

2011年12月30日金曜日

サウンド設定パネルを開くコマンド

C:\Windows\System32\rundll32.exe Shell32.dll,Control_RunDLL mmsys.cpl,,0
本当は、自動で、再生デバイスの規定値を変更したかったのだが、断念。

2011年9月11日日曜日

/boot が一杯になったら

/boot 領域が古いカーネルで一杯になった。
こういう場合は、古いカーネルを削除する必要がある。

とりあえず /boot ディレクトリをのぞいてみる。
$ ls /boot
System.map-2.6.31-20-generic
System.map-2.6.32-23-generic
System.map-2.6.32-24-generic
System.map-2.6.32-25-generic
System.map-2.6.32-30-generic
abi-2.6.31-20-generic
abi-2.6.32-23-generic
abi-2.6.32-24-generic
abi-2.6.32-25-generic
abi-2.6.32-30-generic
config-2.6.31-20-generic
config-2.6.32-23-generic
config-2.6.32-24-generic
config-2.6.32-25-generic
config-2.6.32-30-generic
grub
initrd.img-2.6.31-20-generic
initrd.img-2.6.32-23-generic
initrd.img-2.6.32-24-generic
initrd.img-2.6.32-25-generic
initrd.img-2.6.32-30-generic
lost+found
memtest86+.bin
vmcoreinfo-2.6.31-20-generic
vmcoreinfo-2.6.32-23-generic
vmcoreinfo-2.6.32-24-generic
vmcoreinfo-2.6.32-25-generic
vmcoreinfo-2.6.32-30-generic
vmlinuz-2.6.31-20-generic
vmlinuz-2.6.32-23-generic
vmlinuz-2.6.32-24-generic
vmlinuz-2.6.32-25-generic
vmlinuz-2.6.32-30-generic


うわぁ~ ギョウサンおるのぉ~

インストールされているカーネルを調べる
$ dpkg -l | grep linux-image
rc  linux-image-2.6.31-14-generic  2.6.31-14.48  Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.31-20-generic  2.6.31-20.58  Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.32-23-generic  2.6.32-23.37  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-24-generic  2.6.32-24.43  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-25-generic  2.6.32-25.45  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-30-generic  2.6.32-30.59  Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic            2.6.32.30.36  Generic Linux kernel image

直近の2つ以外を削除することにする。
$ sudo apt-get remove --purge linux-image-2.6.31-14-generic linux-image-2.6.31-20-generic linux-image-2.6.32-23-generic linux-image-2.6.32-24-generic

パッケージ linux-image-2.6.31-14-generic はインストールされていないため、削除はできません
と文句を言われました・・・なんだべな?
と思ったら、 dpkg の一覧で、rc ってなっていて、調べてみると、削除済みで、設定だけが残っているものらしい。設定消すのどうやるの?わからんので放っておく。

その他のカーネルを削除すると、めでたく /boot の空き容量が増えましたとさ。

どうやら、最近は、/boot なんぞ作らなくていいらしい。RAID 上に OS をインストールする都合上、手動でパーティション作成をしたので、何にも考えずに /boot を作成していたよ・・・・


【2012/03/17】 残っている設定ファイルを、消す方法が分かった。
dpkg --purge コマンドで設定ファイルを削除できた。

まず、現状こんな感じ。

$ dpkg -l | grep linux-image
rc  linux-image-2.6.31-14-generic         2.6.31-14.48                                    Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.32-38-generic         2.6.32-38.83                                    Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic                   2.6.32.38.44                                    Generic Linux kernel image

設定ファイル(linux-image-2.6.31-14-generic)を削除してみる。

$ sudo dpkg --purge linux-image-2.6.31-14-generic
(データベースを読み込んでいます ... 現在 233343 個のファイルとディレクトリがインストールされています。)
linux-image-2.6.31-14-generic を削除しています ...
linux-image-2.6.31-14-generic の設定ファイルを削除しています ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-38-generic
Found initrd image: /boot/initrd.img-2.6.32-38-generic
Found memtest86+ image: /memtest86+.bin
done

で、こうなった。

$ dpkg -l | grep linux-image
ii  linux-image-2.6.32-38-generic         2.6.32-38.83                                    Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic                   2.6.32.38.44                                    Generic Linux kernel image

スッキリ!

2011年8月28日日曜日

VY1 のインストールに失敗する場合の対処法

VY1 のインストール中にエラーが出て、手間取っていたが、ようやく解決した。

インストールディスクの「setup.exe」を右クリックして、「管理者として実行」でインストールする。

以上!

VY2 は管理者として実行しなくても、インストールできた。何が違うんだべか?

2011年2月27日日曜日

ネットワークインターフェースの設定値

完全なプライベート備忘録
以下の設定だと、samba 経由で Windows と Ubuntu 間のファイルコピー速度が 60MB/s 程度出ている。winscp 経由だと数分の1程度しか速度がでない。
玄箱だと、どう設定しても 10~15MB/s しかでない。

【Ubuntu】
MTU:7158

【Windos Vista】
MTU:7154
DefaultSendWindow:(MTU-40)*46*4=1308976

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters
に REG_DWORD で作成


2012/07/07 追記


ルーターが、世代交代したせいか、samba での200MBを超えるファイルのコピーが、タイムアウトで失敗するようになってしまった。
MTU の設定値が変化しているようなので、再設定してみた。

【Ubuntu】
ping  -c 1 -M do -s 7130 Vista
MTU:7130

/etc/network/if-up.d/setmtu
#!/bin/sh
[ "$IFACE" != "lo" ] || exit 0
ifconfig $IFACE mtu 7130

【Windos Vista】
ping -f -n 1 -l 7126 Ubuntu
MTU:7126
DefaultSendWindow:(MTU-40)*46*4=1303824
netsh interface ipv4 set subinterface "ローカル エリア接続" mtu=7126 store=persistent


2011年2月26日土曜日

epgrec で録画ファイルのスプリットに失敗した場合の復旧方法

うちの epgrec 録画環境(Ubuntu)で、結構頻繁に録画後のスプリット処理が失敗していることがある。(サムネールが録画一覧画面に表示されない)
スプリットが失敗したファイルを、そのまま利用すれば問題ないのだが、手動でリカバリ作業をしたくなるときもある。その手順を備忘録として残しておく。

この作業を行うためには以下のような前提がある。
  • スクランブル解除処理は成功していること。(B-CASカードが抜けていた場合などには、対応できない)
  • 変換前のファイルが残っていること(あたりまえ)
    do-record.sh で、スプリット処理に失敗した場合には、変換前ファイルを削除しないようにした記憶がある。そもそも do-record.sh をどこまでオレオレ仕様に変更したか覚えてないので、最後に全部のせておく。

スプリット処理は、windows 上で行うこととする。録画環境では、TsSplitterLite を利用しているが、そもそも、TsSplitterLite での処理に失敗しているので、他のスプリット方法でないとならないため、そうしている。

まずは、スプリット処理に失敗したファイルを windows 上にコピーする。ファイルは、/var/www/epgrec/video にあるはず。ファイル名は、ブラウザから epgrec の録画済一覧から該当ファイルをクリックして、ダウンロードされたファイル名を参照すると分かる。
今回は GR22_20110211015500_20110211022500_tss.ts_tmp.ts ファイルを処理する。

windows でのスプリット処理には、TsSplitter を利用する。
DTV関連ツール」サイトで、左の「メニュー」から「DTV アップローダ」を選択。
表示された右ページ上段の「過去ログ検索」リンクをクリック。
過去ログ検索画面で、「検索文字列」に”TsSplitter”と入力し、「Search/Return」ボタンを押す。
日付が”2009年07/17(金)21:17”のファイル名”up0140.zip”をダウンロードする。
少々古いが、現時点のうちの環境(windows vista 64bit SP2)でも、問題なく動作する。
ひょっとしたら、最新版がどこかにあるのかもしれない。


インストーラは無いので、up0140.zip を適当なディレクトリに解凍したら、インストール完了。

TsSplitterGUI.exe を起動する。


設定は、「HD映像を残す」だけにチェックを入れている。
好みに合わせて設定するヨロシ。

変換ファイルにスプリット処理をしたいファイルを選択して、「変換」ボタンを押すだけ。

変換後のファイルを所定のファイル名に変更する(うちの場合は、GR22_20110211015500_20110211022500_tss.ts とか)
変換後のファイルを、/var/www/epgrec/video ディレクトリにコピーする。
ファイルの所有ユーザとグループを、他の録画済みファイルと合わせておくことを忘れずに。

 次に、サムネールを作成する。
ここからは、Ubuntu 上で作業を行う。

ffmpeg -i /var/www/epgrec/video/GR22_20110211015500_20110211022500_tss.ts -r 1 -s 160x90 -ss 130 -vframes 1 -f image2 /var/www/epgrec/thumbs/GR22_20110211015500_20110211022500_tss.ts.jpg

のようにする。ファイル名は、適宜変更すること。-ss オプションで、開始から何秒後の画面をサムネールにするのかを指定している。
実行すると数秒(結構時間がかかる)でサムネール作成完了する。
作成後のサムネールの所有ユーザとグループを変更しておくこと。


付録
[ do-record.sh ] オレオレ仕様版
#!/bin/bash
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"

RECORDER=/usr/local/bin/recpt1
SPLIT=/usr/local/bin/tssplitter_lite
OUTPUT_TMP=${OUTPUT}_tmp.ts

if [ ${MODE} == 0 ]; then
    $RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} == 1 ]; then
    $RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT_TMP} >/dev/null
    if [ ${TYPE} == "BS" ]; then
        $SPLIT ${OUTPUT_TMP} ${OUTPUT} ${CHANNELL}
    elif [ ${TYPE} == "GR" ]; then
        if [ ${CHANNEL} == "27" ]; then
            # NHK
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1024
        elif [ ${CHANNEL} == "26" ]; then
            # 教育
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1032
        elif [ ${CHANNEL} == "25" ]; then
            # 日本テレビ
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1040
        elif [ ${CHANNEL} == "22" ]; then
            # TBS
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1048
        elif [ ${CHANNEL} == "21" ]; then
            # フジテレビ
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1056
        elif [ ${CHANNEL} == "24" ]; then
            # テレビ朝日
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1064
        elif [ ${CHANNEL} == "23" ]; then
            # テレビ東京
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1072
        elif [ ${CHANNEL} == "20" ]; then
            # Tokyo MX TV
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 23608
        elif [ ${CHANNEL} == "18" ]; then
            # テレビ神奈川
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 24632
        elif [ ${CHANNEL} == "32" ]; then
            # テレ玉
            $SPLIT ${OUTPUT_TMP} ${OUTPUT} 29752
        elif [ ${CHANNEL} == "28" ]; then
            # 放送大学
            # なぜか Segmentation fault が発生するので分割しない
            # $SPLIT ${OUTPUT_TMP} ${OUTPUT} 1088
            mv ${OUTPUT_TMP} ${OUTPUT}
            exit
        else
            exit
        fi
        if [ $? == 0 ]; then
            rm ${OUTPUT_TMP}
        fi
    fi
fi