ブートログをとる

そういえばブートログってどこにあるんだろうと思って探したらなかった。ちなみにこの場合のブートログってこういうやつ。

 * Checking all filesystems ...
gen_boot: clean, 44/52208 files, 23507/208812 blocks                 [ ok ]
 * Mounting local filesystems ...                                    [ ok ]
 * Mounting USB device filesystem (usbfs) ...                        [ ok ]
 * Activating (possible) swap ...                                    [ ok ]
 * Setting up dm-crypt mappings ...                                  [ ok ]
 * Setting system clock using the hardware clock [Local Time] ...    [ ok ]
 * Configuring kernel parameters ...                                 [ ok ]
 * Cleaning /var/lock, /var/run ...                                  [ ok ]

ググってみると他のディストリでは普通に取得できるけど、 Gentoo ではちょっと面倒くさいとか書いてる。もう少し調べてみるとこんな記事に行き着いた。


この記事の中段やや下のほうにこんなのがある。

5. Tips and tricks


ブートメッセージのログを取る

ということでやってみた。


/etc/conf.d/rc を編集

RC_BOOTLOG="yes"


app-admin/showconsole を入れる

$ sudo emerge -v showconsole


再起動してみる

$ sudo reboot


すると、再起動後からは /var/log/boot.msg なるファイルが出来ている。中身は確かにブートログだけど、想定したものよりだいぶ簡略化されているような…ま、いっか。

なお、 /etc/conf.d/rc の中のコメント文を読む限り、「ブートスプラッシュを使っているとうまくとれないかも」みたいなことが書いてある。また、 baselayout のバージョンによってもダメらしいし、 openrc を使っているとこれまた方法は変わってくるようだ。…何のことだかよくわかんないけどw

そういや、 openrc ってのは sabayon で使ってた気がする。

'/dev/mapper/control' already exists

先ほどの件。何でブートログをとりたかったのかというと、こんなエラーが出たからでした。

'/dev/mapper/control' already exists, link to '/dev/mapper/control' will not overwrite

実はせっかくブートログをとってみてもこのエラーはログには載ってなくて。なので上に書いてあるのはだいたいこんなもんだったろうというものです。とにかく出るようになったきっかけは emerge world してから。そういえば udev のバージョンあがってたし device-mapper も上がってた気がする。ついでにカーネルも入れ換えたなぁ。

ぐぐってみたら、何か同じようなのは他の人も出てるらしい…英語だけど。


ちらっと読んでみた限り、とりあえず自分の環境がおかしいというわけではなさそうで安心。どうやら気にしなくてもよさそうなエラー文という雰囲気でもありますが、エラーが出るのはやっぱり気持ち悪いという場合にはこんな感じにするといいみたい。

$ sudo nano -w /etc/udev/rules.d/64-device-mapper.rules

3行目の

KERNEL=="device-mapper", SYMLINK+="mapper/control"

これを

KERNEL=="device-mapper", NAME="mapper/control"

こんな感じに。まぁいま無理に手を入れなくてもそのうち修正されるんでしょう。

パッケージ固有のカーネルモジュールをオートビルドする

パッケージによってはカーネルモジュールをカーネルソースとは別に作成するものがあります。たとえば virtualbox とか。 virtualbox では vboxdrv とか vboxnetflt とかのモジュールを作って使いますよね。パッケージのソースだけではなくカーネルソースも元にパッケージ固有のモジュールを組み立てるやつです。

そんなパッケージ固有のカーネルモジュールは、カーネルのバージョンを変えたらその都度リビルドする必要があります。カーネルをバージョンアップしたあとなどに vboxdrv の読み込みに失敗しましたというようなメッセージが出たら、モジュールのリビルドが必要な可能性大です。

ただ、カーネルのバージョンを変えたときに実際にはどのパッケージをリビルドすればいいのか。これはわかりにくいのも確かです。そんなときに役立つパッケージがこれ。

sys-kernel/module-rebuild
A utility to rebuild any kernel modules which you have installed


名前も効果もそのまんまです。


インストール

$ sudo emerge -v module-rebuild

普通にマージするだけ。

リストアップする

$ sudo module-rebuild list

∗∗ Packages which I will emerge are:
	=app-emulation/virtualbox-modules-3.1.4
	=x11-drivers/ati-drivers-10.2

list オプションをつけるとリストアップしてくれます。 list であっても実行には root 権限が必要です。

実際にリビルドする

$ sudo module-rebuild rebuild

rebuild オプションをつけるとコンパイルを行います。実際には emerge (というか ebuild) が走ります。

字幕つきのmp4やmkvをつくる

滅多にやらないから忘れそうなので、メモっておきます。

TS から字幕を抽出する。

Caption2Ass を使う。 Caption2Ass_mod1 (改造版) でも可。

プログラム バージョン ファイル名
Caption2Ass_mod1 人柱版V0.2.9 up0264.zip
Caption.dll 改造版0.1.1.4 up0064.zip
Caption2Ass 081221 up0877.zip


すべて「 http://2sen.dip.jp/dtv/ 」のアップローダにあります。アップローダは「 Friio 」だったり「 DTV 」だったり他の場所だったりしますが、過去ログ検索を活用すれば問題なっしん。

Caption2Ass の場合

Caption2Ass解凍しこんな感じで実行する。オリジナル版の Caption2Ass を使う場合、 Caption.dll は同梱。

> Caption2Ass1.exe -format srt %インプットのTS%

format オプションは出力ファイルのフォーマットに関するもの。 ass/srt の2つが指定できる。今回は SRT フォーマットを使用することとする。

Caption2Ass_mod1 の場合

Caption2Ass_mod1 を解凍、同じディレクトリに Caption.dll を置く。 Gaiji ディレクトリも同場所に。

> Caption2Ass_mod1.exe -format srt %インプットのTS%

format オプションは ass/srt/taw の3つが指定できる。 taw は TMPEG 用。


ときどき大きく時間情報がずれたものができあがるが、その場合 -forcepcr オプションを付けると幸せになれる。

> Caption2Ass_mod1.exe -format srt -forcepcr %インプットのTS%

CMカット -トリミング- とかしたいとき

その後にCM カット等トリミングを行った場合、カットした分だけ字幕ファイルと時間がずれていく。字幕ファイルは TS からカットしないで吐き出しているのでこの場合当然である。正常に表示させるには同期情報を更新しなくてはならないので、そのためのソフトを使う。

プログラム バージョン ファイル名
SrtSync 0.1.9 up0267.zip
AviSynth でトリミングした場合

AviSynth スクリプトファイル『 avs 』で Trim() でトリミングした場合はこんな感じ。

> SrtSync -utf8 -trim %トリミングしたAVS% %インプットのSRT%


ただし、 Trim の書式は「 Trim 」と1文字目が大文字であること、また複数範囲をつなげる場合は「 ++ 」で接続されている必要がある。以下のような感じ。

Trim(839,5633)++Trim(8780,21366)++Trim(24065,50137)

VirtualDub でトリミングした場合

VirtualDub の処理設定ファイル『 vcf 』でトリミングしている場合。

> SrtSync -utf8 -vcf %トリミングしたAVS% %インプットのSRT%

私はコレを使ってる。
AviUtl を使う場合のやり方もあるが、私自身 AviUtl でカットすることがないので知る気はない。

mux する

mp4 の場合、普通に add するだけ。 字幕ファイル (SRT) は UTF-8 で書かれている必要有。 SrtSync で utf8 オプションを指定していれば UTF-8 で出力されているはずである。

> mp4box -add %SRTファイル% %MP4ファイル%


mkv の場合も普通にくっつけるだけ。 mkvtoolnix 入れて mmg.exe を使えば簡単。 mkv の場合字幕ファイルの文字コードは任意だけど、マージするときに文字コードを指定してあげないと化けてしまうことに注意。

再生する

MPC-HC で再生する場合

  • Haali Splitter なら、右クリ→フィルタ→(ファイル名)→字幕トラック あたりを有効に
  • MPC-HC 内蔵フィルタなら、右クリ→字幕 あたりを有効に


VLC で再生する場合

  • ツール→設定→字幕とOSD
  • あとは ビデオ→字幕トラック あたりを有効に


もっと難しいのかなぁと思ったけど、やってみると案外簡単。作成自体は外字の文字化けと若干の時間のズレに気をつければほぼ問題なくできる。それよりも問題なのは再生環境の方。特に mp4 の場合、うまく字幕を表示させるのは結構大変。ほとんどおまけ程度の認識でいた方がいいかもしれない。