GOM Playerを再生すると黒い画面のままが表示されるようになった

GOMは実にいいと評判なのに画面が黒いままで音しかでない。
まったく再生できないというわけでもなく。
動画を再生できる別のプレイヤーで再生中に動画をGOMで再生するとちゃんと表示されるという奇妙な現象に悩まされていました。

今日、何気なくGOM Wizardを立ち上げ高品質モードにしてみたら

なんと普通に再生できるようになりました。
あとで一般モードにしてみたらやっぱり再生できません。
もう一台のPCでは一般モードで普通に再生できるのに。

玄箱HG(Debian-Sarge)にTrueCryptをインストールする(インストール後が中途半端)

debianにはTrueCryptパッケージがない。
ubuntuにはあるのに。

  • インストールしたもの
    • TrueCrypt4.2a
    • Kernel-2.6.19
    • aptitude install gcc make wget build-essensial nucrses-dev dmsetup(ほかにも入れたかもしれない)
#本家カーネルソース
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.19-rc4.tar.bz2
#玄箱HG用のパッチ
wget http://www.genbako.com/kurobox-sources-2.6.19.patch
#TrueCrypt4.2a
wget http://www.truecrypt.org/downloads/truecrypt-4.2a-source-code.tar.gz

パッチの先頭に

diff -Nur linux-2.6.19-rc4.org/arch/ppc/Kconfig linux-2.6.19-rc4/arch/ppc/Kconfig

とあったのでlinux-2.6.19-rc4をダウンロードした。

mv ./linux-2.6.19-rc4.tar.bz2 /usr/src/
mv ./kurobox-sources-2.6.19.patch /usr/src/

tar jxfv linux-2.6.19-rc4.tar.bz2
ln -s linux-2.6.19-rc4 linux
cd linux

patch -Np1 < ../kurobox-sources-2.6.19.patch
cp config_kuroboxhg .config
make menuconfig

Device Drivers --->
 Multi-device support (RAID and LVM) --->
  [*]Multi-device support (RAID and LVM)
  < > RAID support (NEW)
  <*> Device mapper support

export ARCH=ppc
make oldconfig
make vmlinux
objcopy -O binary vmlinux /boot/vmlinux.bin
cp System.map /boot/
make modules
make modules_install
reboot

再起動したら画面にカーネルのバージョンが表示されてるはず
確かめる場合は

cat /proc/version
Linux version 2.6.19-rc4-kuroboxHG (root@KURO-BOX) (gcc バージョン 3.3.5 (Debian 1:3.3.5-13)) #1 Fri Dec 1 11:11:12 JST 2006

uname -r
2.6.19-rc4-kuroboxHG

どちらかコマンドを打てばわかる。

tar zxfv truecrypt-4.2a-source-code.tar.gz
cd truecrypt-4.2a/Linux/

ここでこのまま./build.shと実行すると

#Error
Preparing kernel build system in /usr/src/linux-2.6.18... .config:128:warning: trying to assign nonexistent symbol LINKSTATION
.config:142:warning: trying to assign nonexistent symbol KUROBOX
.config:143:warning: trying to assign nonexistent symbol KUROBOXHG
make[2]: *** [silentoldconfig] エラー 1
make[1]: *** [silentoldconfig] エラー 2
make: *** [include/config/auto.conf] エラー 2

エラー出てしまうのでパッチを当てなければいけない。

http://fjacobsen002.fj.funpic.de/archived/kernel_cfgs/patches/Dm-target.c_2.6.18+2.6.19rc2.diff

--- Dm-target.c.orig 2006-06-28 12:36:28.000000000 +0200
+++ Dm-target.c 2006-10-23 00:05:33.000000000 +0200
@@ -29,6 +29,7 @@
int trace_level = 0;

#define MSG_PREFIX "truecrypt: "
+#define DM_MSG_PREFIX MSG_PREFIX
#define error(fmt, args...) printk(KERN_ERR MSG_PREFIX fmt, ## args)
#define trace(level, fmt, args...) level <= trace_level && printk(KERN_DEBUG MSG_PREFIX fmt, ## args)
#define dbg(fmt, args...) printk(KERN_DEBUG MSG_PREFIX fmt, ## args)
@@ -124,8 +125,13 @@
if (p)
return p;

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+ trace (3, "congestion_wait\n");
+ congestion_wait (direction, HZ / 50);
+#else
trace (3, "blk_congestion_wait\n");
blk_congestion_wait (direction, HZ / 50);
+#endif
}
}

@@ -496,8 +502,13 @@
trace (3, "bio_alloc (%hd)\n", bio_segments (bio));
while (!(bion = bio_alloc (GFP_NOIO | __GFP_NOMEMALLOC, bio_segments (bio))))
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+ trace (3, "congestion_wait\n");
+ congestion_wait (bio_data_dir (bio), HZ / 50);
+#else
trace (3, "blk_congestion_wait\n");
blk_congestion_wait (bio_data_dir (bio), HZ / 50);
+#endif
}

bion->bi_bdev = tc->dev->bdev;

パッチは貼ったやつだとタブなどが省略されてしまってるのでリンク先をコピペしたほうがいいです。
パッチの文字コードutf-8だとうまくいかない

patch -Np1 < Dm-target.c_2.6.18+2.6.19rc2.patch
missing header for unified diff at line 4 of patch
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
                                                  • -
diff -uN Kernel/Dm-target.c.orig Kernel/Dm-target.c
--- Dm-target.c.orig 2006-06-28 12:36:28.000000000 +0200
+++ Dm-target.c 2006-10-23 00:05:33.000000000 +0200
                                                  • -
File to patch: Kernel/Dm-target.c

今、思うと-p1オプションはいらないです。

./build.sh
./install.sh

インストール完了。
ボリューム作ってマウントしようとすると

truecrypt --type normal --size 100M -c volume.tc
省略
truescript ./volume.tc /mnt/tc
mount: wrong fs type, bad option, bad superblock on /dev/mapper/truecrypt0,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

truecrypt: Mount failed
dmesg | tail
FAT: bogus number of FAT structure
VFS: Can't find a valid FAT filesystem on dev dm-0.
<--いまここ

共有フォルダに入れてwindowsのTrueCryptでマウントして見るとフォーマットされてなかった。
windows側でフォーマットするとdebian側でもマウントできるようになった。
が、しかしdebian側にマウントしても見えない書き込めない/(^o^)\
もういいや疲れた。
ボリューム作る作業をメインPCでやりたくないので玄箱でやらせることはできるわけだから目標達成ってことにする。
気になったらまた調べる。