D Blog

「ちょっと、気になる~」をメモ。

KURO-BOX/T4 FIT Imageまとめ

2009-09-30 | Memo


Western Digital WD5000AAJS
が安く売っていたので買ってきた。
で、初めて



KURO-BOX/T4
を普通にセットアップしてみる。
なぜか認識を2度、チェックサムの計算を1度失敗し、インストーラーを再起動したが、インストール終了。

この状態から、システムクロックを修正した FIT Image を作る場合、USBルート対応の FIT Image を作る場合の手順をまとめる。

1. 事前準備
1.1 apt-get のアクセス先を国内に変更
# mv /etc/apt/sources.list /etc/apt/sources.list-
# cp /etc/apt/sources.list- /etc/apt/sources.list
# vi /etc/apt/sources.list
(変更点)
# diff -u /etc/apt/sources.list- /etc/apt/sources.list
--- /etc/apt/sources.list-      2009-09-29 21:34:11.000000000 +0900
+++ /etc/apt/sources.list       2009-09-29 21:25:36.000000000 +0900
@@ -1,8 +1,8 @@
 #
 # deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official powerpc CD Binary-1 20090413-04:29]/ lenny main

-deb http://ftp.debian.org/debian/ lenny main
-deb-src http://ftp.debian.org/debian/ lenny main
+deb http://ftp.jp.debian.org/debian/ lenny main
+deb-src http://ftp.jp.debian.org/debian/ lenny main

 deb http://security.debian.org/ lenny/updates main
 deb-src http://security.debian.org/ lenny/updates main
1.2 最新の状態にアップデート
# apt-get update
# apt-get upgrade
1.3 必要ツールのインストール
あらかじめ bzip2, bison, flex, make, bc, initramfs-tools をインストールしておく。
依存関係により、gcc などもインストールされる。
# apt-get install bzip2 bison flex make bc initramfs-tools

2. FIT Image 作成準備
2.1 dtc のインストール
Debian/lenny のバイナリーはないのでソースから。
dtc のソースはカーネルの中にあり、カーネルをビルドれば scripts/dtc 以下に作成される。
しかし、カーネルをコンパイルする予定がない場合には、いろいろと面倒があるので、dtc のソースのみをダウンロードしてコンパイルし、PATHのとおった場所にコピーする。
# wget http://git.jdl.com/software/dtc-v1.2.0.tgz
# tar zxvf dtc-v1.2.0.tgz
# cd dtc-v1.2.0
# make
# cp dtc /usr/local/bin
# strip /usr/local/bin/dtc
2.2 U-Boot mkimage のインストール
Debian/lenny のバイナリーはあるが、FIT Image に対応してないためソースからインストールする。
バージョンは最新でもいいと思うが、KURO-BOX/T4にインストールされているものにあわせて 2009.06 を使う。
# wget ftp://ftp.denx.de/pub/u-boot/u-boot-2009.06.tar.bz2
# tar jxvf u-boot-2009.06.tar.bz2
# cd u-boot-2009.06
# make linkstation_HGLAN_config
# make tools
# cp tools/mkimage /usr/local/bin
3. サブイメージ取り出し
/boot/kuro_nas_t4.itb にある FIT Image から Kernel Image, RAMDisk Image, Flat Device Tree のサブイメージを取り出す。
mkimage -l で情報が得られるようになっていれば良いのだが、得られないのでブート時のログを使う。
通常のブートでは、RAMDisk Image を使用せずにブートしてしまい RAMDisk Image の情報が得られないので、U-Boot の画面で s を入力し対話モードに入り、以下のようにブートする。
BUFFALO>> run hdload
Loading sata 0:1:uImage.buffalo

5111200 bytes read
BUFFALO>> bootm ${ldaddr}
以下のようなログが得られ、EM-Modeで起動するはず。
## Booting kernel from FIT Image at 00500000 ...
   Using 'conf@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x005000e8
     Data Size:    1844364 Bytes =  1.8 MB
     Architecture: PowerPC
     OS:           Linux
     Load Address: 0x00000000
     Entry Point:  0x00000000
     Hash algo:    sha1
     Hash value:   845984557f1bab7570be096380a2cecbf3b09c25
   Verifying Hash Integrity ... sha1+ OK
## Loading init Ramdisk from FIT Image at 00500000 ...
   Using 'conf@1' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  initramfs
     Type:         RAMDisk Image
     Compression:  gzip compressed
     Data Start:   0x006c265c
     Data Size:    3261387 Bytes =  3.1 MB
     Architecture: PowerPC
     Hash algo:    sha1
     Hash value:   ad1da9a87f32964044244936156ea838dc9f9d5b
   Verifying Hash Integrity ... sha1+ OK
## Flattened Device Tree from FIT Image at 00500000
   Using 'conf@1' configuration
   Trying 'fdt@1' FDT blob subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x009deb0c
     Data Size:    3836 Bytes =  3.7 kB
     Architecture: PowerPC
     Hash algo:    sha1
     Hash value:   fba7f0b57375e53d725366543ce4c3c6e134bd89
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x9deb0c
   Uncompressing Kernel Image ... OK
   Loading Ramdisk to 07c0d000, end 07f293cb ... OK
   Loading Device Tree to 007fc000, end 007ffefb ... OK
ログをメモしたら、HDDモードで起動し直す。

3.1 Kernel Image の取り出し
FIT Image at 00500000, Data Start: 0x005000e8, Data Size: 1844364 とログに示されているので、
# dd if=/boot/kuro_nas_t4.itb of=vmlinuz bs=1 skip=`echo "ibase=16; 5000E8 - 500000" | bc` count=1844364
1844364+0 records in
1844364+0 records out
1844364 bytes (1.8 MB) copied, 133.157 s, 13.9 kB/s
異常に遅いので head/tail を使って抜き出したほうがいいかもしれない。

3.2 RAMDisk Image の取り出し
FIT Image at 00500000, Data Start: 0x006c265c, Data Size: 3261387 とログに示されているので、
# dd if=/boot/kuro_nas_t4.itb of=initrd.gz bs=1 skip=`echo "ibase=16; 6C265C - 500000" | bc` count=3261387
3261387+0 records in
3261387+0 records out
3261387 bytes (3.3 MB) copied, 234.427 s, 13.9 kB/s
3.3 Flat Device Tree の取り出し
FIT Image at 00500000, Data Start: 0x009deb0c, Data Size: 3836 とログに示されているので、
# dd if=/boot/kuro_nas_t4.itb of=kuro_nas_t4.dtb bs=1 skip=`echo "ibase=16; 9DEB0C - 500000" | bc` count=3836
3836+0 records in
3836+0 records out
3836 bytes (3.8 kB) copied, 0.271438 s, 14.1 kB/s
4. システムクロックの修正
/boot/kuro_nas_t4.itb にインストールされている FIT Image の Flat Device Tree サブイメージには誤りがあり、システムクロックが1時間に27秒ほどずれる現象が報告されている。
これを修正するためには、DTB(Device Tree Blob) から DTS(Device Tree Source) を復元・修正したのち DTB に戻し、FIT Image を作成すれば良い。

4.1 DTS の復元
# dtc -I dtb -O dts -o kuro_nas_t4.dts kuro_nas_t4.dtb
4.2 修正
timebase-frequency が 0x1f04000(32522240) になっているのを 32768000 に修正する。
# mv kuro_nas_t4.dts kuro_nas_t4.dts-
# cp kuro_nas_t4.dts- kuro_nas_t4.dts
# vi kuro_nas_t4.dts
(変更点)
# diff -u kuro_nas_t4.dts- kuro_nas_t4.dts
--- kuro_nas_t4.dts-    2009-09-30 20:33:59.000000000 +0900
+++ kuro_nas_t4.dts     2009-09-30 20:35:49.000000000 +0900
@@ -21,7 +21,7 @@
                        device_type = "cpu";
                        reg = <0x0>;
                        clock-frequency = <0xfdad680>;
-                       timebase-frequency = <0x1f04000>;
+                       timebase-frequency = <32768000>;
                        bus-frequency = <0x0>;
                        i-cache-size = <0x4000>;
                        d-cache-size = <0x4000>;
4.3 DTB 作成
3.3 で取り出した kuro_nas_t4.dtb は上書きする。
# dtc -I dts -O dtb -o kuro_nas_t4.dtb kuro_nas_t4.dts
4.4 FIT Image の作成
KURO-BOX/T4 用 .its ファイル(こちらにて用意した物)をダウンロード、解凍。
# wget http://www.geocities.jp/aesthetic_music/kurobox-t4/kurobox-t4.its.gz
# gzip -d kurobox-t4.its.gz
FIT Image を作成する。
# mkimage -f kurobox-t4.its kuro_nas_t4.itb
4.5 インストール
# mv /boot/kuro_nas_t4.itb /boot/kuro_nas_t4.itb.orig
# cp kuro_nas_t4.itb /boot
5. USBルート対応
initrd.gz を「ほぼ」Debian/lenny 標準にすることにより、USBルート対応にする。
ここでいう USBルートとは、カーネル(FIT Image)はHDDに置いたままブートし、ルートファイルシステムをUSBメモリーなどの上に置くことを意味している。

5.1 mkinitramfs の修正
Debian/lenny 標準の initrd.gz は modules.dep を含まないが、含まれるようにするため /usr/sbin/mkinitramfs に変更を加える。
# mv /usr/sbin/mkinitramfs /usr/sbin/mkinitramfs-
# cp /usr/sbin/mkinitramfs- /usr/sbin/mkinitramfs
# vi /usr/sbin/mkinitramfs
(変更点)
# diff -u /usr/sbin/mkinitramfs- /usr/sbin/mkinitramfs
--- /usr/sbin/mkinitramfs-      2009-01-07 23:14:31.000000000 +0900
+++ /usr/sbin/mkinitramfs       2009-09-17 23:48:32.000000000 +0900
@@ -212,6 +212,7 @@
        auto_add_modules
        ;;
 esac
+depmod -a -b "${DESTDIR}"

 # Have to do each file, because cpio --dereference doesn't recurse down
 # symlinks.
5.2 「ほぼ」Debian/lenny 標準の initrd.gz の作成
3.2 で取り出した initrd.gz は上書きする。
# mkinitramfs -o initrd.gz
5.3 FIT Image の作成
# mkimage -f kurobox-t4.its kuro_nas_t4.itb
5.4 インストール
# mv /boot/kuro_nas_t4.itb /boot/kuro_nas_t4.itb.system-clock-fix
# cp kuro_nas_t4.itb /boot
5.5 確認
3. でやったのと同じように起動した時、
BUFFALO>> run hdload
Loading sata 0:1:uImage.buffalo

4476060 bytes read
BUFFALO>> bootm ${ldaddr}
EM-Mode ではなく、HDDモードで起動すればOK。

USBルートの作成方法のまとめは、またの機会にさせていただく。

Bluetooth (3)

2009-09-29 | Memo
Bluetooth マウス

エレコム M-BT3BRBK

のマウスポインタの動きが悪いのは、センサとマウスパッド代わりに使っている紙との相性?のせいだった。このマウスのセンサ、相手をかなり選ぶ。
現在唯一まともな動きをするのはダンボール。
もう少し見た目が良いもので動きがまともなものはないか捜索中。
レーザーマウスにしておけば良かったと少し後悔。

NDAS

2009-09-29 | Memo
DIGITAL COWBOY DC-MC35UL3



の NAS 機能として使われている NDAS って何?
ということで調べてみた。

ハードディスクケースとして売られている物としては、Sarotech SR-UST-NDS という製品が現行機種らしい。

それ以外だとBUFFALOの古い製品 HD-HBGLU2 と IO-DATA の古い製品 HDH-UL があったらしい。

USB-SATA変換チップのように、NDAS-IDE変換のようなチップが用意されていて、それを使うというソリューションだったらしい。
Windowsドライバが、Vistaの時にOSに取り込まれでもしていれば流行る可能性はあったかもしれないが、流行ることなく実質終わってしまった規格?
DC-MC35UL3 は SATA 対応で NDAS 対応ということで NDAS-SATA変換チップも存在するのかと思ったが、NDAS が遅いということがいわれていることから想像すると NDAS-IDE に IDE-SATA 変換を付けて対応してるのかな?

どちらにしても、あまり関わり合いを持ちたくない規格ですな。

Bluetooth (2)

2009-09-28 | Memo
前回書いた、Bluetooth マウス

エレコム M-BT3BRBK

Bluetooth USB アダプタ AD-BTA2 を付けた Windows2000 PC で使ってみる。
Windows2000 なので OS のサポートはなく、東芝の Bluetooth スタックを使うことになる。
ペアリングは問題ないが、マウスポインタの動きにディレーがあって気持ち悪い。
マウスのせいなのか、Bluetooth スタックのせいなのか?

Bluetooth (1)

2009-09-27 | Memo
Bluetooth マウス

エレコム M-BT3BRBK

を買ってみた。
まずは、

Dell Inspiron Mini 12 ベーシックパッケージ(Ubuntu対応)
Dell Inspiron Mini 12 ベーシックパッケージ(Ubuntu対応)


に接続してみる。
セットアップ開始。





ここまでは特に問題無し。



ずいぶん時間がかかるなあと思ったらペアリング失敗。



こうなってしまうと、マウスの電源をつけていなくても2番目のダイアログのように認識された状態を示し、3番目のダイアログを示すことなく4番目のダイアログになってしまい、ペアリングをやり直してくれない。
こちら↓
http://www.gentoo.org/doc/ja/bluetooth-guide.xml
を参考にしてコマンドラインでいじってみるが、Ubuntu と違うのかドキュメントが古いのか違っている部分が多くて役立たない部分が多い。
/var/lib/bluetooth 以下を削除すればペアリングをやり直してくれそうな気もするが、これで使う予定ではなかったのでやめて次へ。

HS-DHGL / KURO-BOX/T4 (3)

2009-09-26 | Memo
KURO-BOX/T4

KURO-BOX/T4 を使って、


HS-DHGL をいじる。

気のせいかもしれないが、xfs を ext3 に変えてジャーナリングの頻度が減った気がする。ジャーナリング時のアクセスの激しさは変わらないと思うが、2.5"HDD の静かさのおかげで耳を近づけない限りアクセス音は聞こえるレベルではない。
これ以上の対策はカーネルをいじらないと。。。シリアルコンソールを用意しないときびしいなあ。。。用意できる間ではこのまま使ってみよう。


HS-DHGL / KURO-BOX/T4 (2)

2009-09-25 | Memo
KURO-BOX/T4

KURO-BOX/T4 を使って、


HS-DHGL をいじる。

xfs をやめて ext3 にしてみる。
前回と同じようにHDD2台をつないで、

# mke2fs -j /dev/sdb2
# mke2fs -j /dev/sdb6
# mount -t xfs /dev/sda2 /mnt/src
# mount -t ext3 /dev/sdb2 /mnt/dst
今回は、tar を使ってコピーしてみる。
# cd /mnt/src
# tar cf - . | (cd ../dst; tar xf -)
# cd ..
# vi dst/etc/fstab
xfs を ext3 に直す必要があると思って覗いたがオートマウントになっていて記述はなかった。
# umount /mnt/src
# umount /mnt/dst
# mount -t xfs /dev/sda6 /mnt/src
# mount -t ext3 /dev/sdb6 /mnt/dst
# cd /mnt/src
# tar cf - . | (cd ../dst; tar xf -)
# cd ..
# umount /mnt/src
# umount /mnt/dst
今回の所要時間は前回の半分位。
ファイルシステムの違いは、おそらく誤差の範囲。よって、この差は cpio と tar の違いで生まれたと思うが、それでも遅い。
HS-DHGL に HDD を戻して起動してみる。起動は問題無し。アクセス音は?
ジャーナリングが始まらない?
今までのような激しいディスクアクセスはしていないように思うが、元々静かなドライブなので、違いが分かりにくい。3.5"HDD で、もう1度やってみるか。。。

HS-DHGL / KURO-BOX/T4 (1)

2009-09-24 | Memo
KURO-BOX/T4

KURO-BOX/T4 を使って、


HS-DHGL をいじる。

3.5" → 2.5" 変換マウンタをどうするか悩んでいた HS-DHGL。マウンタを買って使えなかったという最悪の結果にならないようにと、分解して内部構造を確認する。



なんと2.5"HDD取り付け用の穴があいている。
そうと分かれば作業開始。
2台のHDDを KURO-BOX/T4 に接続し、USBをルートファイルシステムにしてブート。
以下の手順で丸ごとコピー。

# mkdir /mnt/src
# mkdir /mnt/dst
# sfdisk /dev/sdb
(/dev/sda とほぼ同じ容量になるようにパーティションを作成)
# apt-get install xfsprog
# mke2fs -j /dev/sdb1
# mkfs.xfs /dev/sdb2
# mkswap /dev/sdb5
# mkfs.xfs /dev/sdb6
# mount -t ext3 /dev/sda1 /mnt/src
# mount -t ext3 /dev/sdb1 /mnt/dst
# cd /mnt/src
# find . | cpio -o | (cd /mnt/dst; cpio -i -m)
# cd ..
# umount /mnt/src
# umount /mnt/dst
# mount -t xfs /dev/sda2 /mnt/src
# mount -t xfs /dev/sdb2 /mnt/dst
# cd /mnt/src
# find . | cpio -o | (cd /mnt/dst; cpio -i -m)
# cd ..
# umount /mnt/src
# umount /mnt/dst
# mount -t xfs /dev/sda6 /mnt/src
# mount -t xfs /dev/sdb6 /mnt/dst
# cd /mnt/src
# find . | cpio -o | (cd /mnt/dst; cpio -i -m)
# cd ..
# umount /mnt/src
# umount /mnt/dst
/dev/sda6 から /dev/sdb6 へのコピー、容量は50GBしかなかったのに3時間以上かかった。計算すると 2MB/sec。なにそれ?
それはそれで大問題だが、それ以上に気になったのは3.5"のドライブがコピーしている間でも、うるさくなかったこと。
2.5"ドライブにした HS-DHGL は静かなのは静か。しかし、耳を近づけて音を聞くとハードディスクの耐久テストをしてるのかのように激しくアクセスしていることが分かる。
ジャーナリングでディスクアクセスが続く現象はPC Linux でも、あったのは知っているが、HS-DHGLのディスクアクセス制御はひどすぎる。これではハードディスクがかわいそう。
何か対策がないか見ることにしよう。

KURO-BOX/T4 (25)

2009-09-18 | Memo
KURO-BOX/T4

KURO-BOX/T4 のモニターに当選。
モニターレポートは、少しまとめた形にするとして、ここでは、ダラダラと書こうと思う。

modprobe: FATAL: Could not load /lib/modules/2.6.30.1-BUFFALO-svn1376/modules.dep: No such file or directory
というエラーは、HotPlug対応のドライバーがロードされるときカーネルへのイベントが発生し、modprobe が呼ばれることにより出ることが分かった。
玄箱T4のカーネルは、カーネル内部に取り込んでいるHotPlug対応のドライバーがあるが、Debianの initrd 内には modules.dep がなく、init スクリプトにより呼ばれる depmod により初めて作成されるため、エラーとなる。
ドキュメントは見つけられなかったが、DebianにはHotPlug対応のドライバーは必ずカーネルモジュールにするというようなルールがあるのかもしれない。
対策はいろいろ考えられると思うが、modules.dep はあらかじめ作成しておくべきと考え、/usr/sbin/mkinitramfs の 215 行目に depmod を次のように追加。
KURO-NAS-T4:~# diff -u /usr/sbin/mkinitramfs- /usr/sbin/mkinitramfs
--- /usr/sbin/mkinitramfs-      2009-01-07 23:14:31.000000000 +0900
+++ /usr/sbin/mkinitramfs       2009-09-17 23:48:32.000000000 +0900
@@ -212,6 +212,7 @@
        auto_add_modules
        ;;
 esac
+depmod -a -b "${DESTDIR}"

 # Have to do each file, because cpio --dereference doesn't recurse down
 # symlinks.
この mkinitramfs で initrd.gz、カーネルイメージを作り直し、エラーはなくすことができた。

今回はここまで。

メディアプレーヤー

2009-09-16 | Memo
昨日見つけた、QNAP NMP-1000 (NMP-1000JP)

を「LinkTheater + 玄箱」と書いたが、ネットワーククライアント機能はないので、そう書くのは違うだろう、と思い直した。
NAS / ネットワークメディアプレーヤーのページにこの製品を追加しようと調べていると、外付けHDDケースに分類されるメディアプレーヤー製品がまだまだあることを知った。


DIGITAL COWBOY DC-MCNP1



DIGITAL COWBOY DC-MC35UL3


以上2つは、NMP-1000に近いがNAS機能は弱い。
ネットワーク機能なしだと、


サンコー 3.5” HDD MEDIA PLAYER 2 (HDPLAY60)



サンコー HDD MEDIA PLAYER 4 (HDPLAY50)


AAC未対応なのでまったく興味はないが、激安、怪しげ。

KURO-BOX/T4 (24)

2009-09-14 | Memo
KURO-BOX/T4

KURO-BOX/T4 のモニターに当選。
モニターレポートは、少しまとめた形にするとして、ここでは、ダラダラと書こうと思う。

fsckを失敗するのは /etc/fstab を編集していないためだった。/boot 用および swap 用のパーティションは用意していないのでエントリーの行を消した。
/dev/sda1 のような記述だとハードディスクをつないだ台数により変わってしまうので、/ 用のパーティションの記述を

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext3 0 1
のように変更。
uuid は
$ vol_id --uuid /dev/sda1
または
$ ls -l /dev/disk/by-uuid
のようにして調べる。
modprobe: FATAL: Could not load /lib/modules/2.6.30.1-BUFFALO-svn1376/modules.dep: No such file or directory
というエラーが2回出るのは変わっていない。initrd に depmod は入っている。これを呼ばずに modporbe を呼んでるとしか思えないのだが、そうだとしたらなぜDebianでは大丈夫なのか?
相変わらず分からない。

今回はここまで。

KURO-BOX/T4 (23)

2009-09-12 | Memo
KURO-BOX/T4

KURO-BOX/T4 のモニターに当選。
モニターレポートは、少しまとめた形にするとして、ここでは、ダラダラと書こうと思う。

なぜ、OCHI, EHCI が入っていない?

カーネルのソースをダウンロードして、中をのぞいてみる。
arch/powerpc/configs/kuro_nas_t4_defconfig を見ると、

CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
モジュールではなく、カーネルの内部に取り込まれている。
わかった。カーネルイメージに取り込んでいる vmlinuz がFLASHから取り出したもので、HDD用のイメージから取り出していないからだ。
で、作り直してブートOK。
ipv6: Unknown symbol .... というエラーもなくなった。

せっかくカーネルのソースをダウンロードしたので、Debian化ビルドしてみる。
$ sudo apt-get install kernel-package
$ make-kpkg --help
This program should be run in a linux kernel source top level directory.
/usr/share/doc/kernel-package/Problems.gz contains a list of known problems.

usage: make-kpkg [options] target [target ...]
  where options are:
 --help                This message.
 --revision number     The debian revision number. ([a-zA-Z.~+0-9]) (Must
                         have digit)
 --append-to-version foo
 --append_to_version foo an additional kernel sub-version. ([-a-z.+0-9])
                         Does not require editing the kernel Makefile
                         over rides env var APPEND_TO_VERSION.
                         requires a make-kpkg clean
 --added-modules foo
 --added_modules foo   Comma/space separated list of add on modules
                       affected by the modules_<blah> targets
 --added-patches bar
 --added_patches bar   Comma/space separated list of patches applicable
                        when patch_the_kernel is turned on
 --arch     foo        architecture
 --cross-compile
 --cross_compile       target string
 --subarch  bar        Set the subarch for the image being compiled
                        (have to be on a compatible machine).
 --arch-in-name
 --arch_in_name        embed the subarch in the image package name
 --stem     foo        Call the packages foo-* instead of kernel-*
 --initrd              Create a image package suitable for initrd.
 --mkimage  foo        Command to generate the initrd image.
 --pgpsign  name       An ID used to sign the changes file using pgp.
 --config target       Change the type of configure done from the  default
                       oldconfig.
 --targets             Lists the known targets.
 --noexec              Pass a -n option to the make process
 --verbose             Pass a V=1 option to the make process
 --zimage              Create a kernel using zImage rather than bzImage
 --bzimage             Create a kernel using bzImage (in case the site
                       wide default is zimage, as set in
                       /etc/kernel-pkg.conf)
 --rootcmd method      A command that provides a means of gaining
                       superuser access (for example, `sudo' or
                       `fakeroot') as needed by dpkg-buildpackages'
                       -r option.
 --us                  This option is passed to dpkg-buildpackage, and
                       directs that package not to sign the
                       source. This is only relevant for the
                       buildpackage target.
 --uc                  This option is passed to dpkg-buildpackage, and
                       directs that package not to sign the
                       changelog. This is only relevant for the
                       buildpackage target.

Use one of --zimage or --bzimage, or none, but not both.

Option Format: The options may be shortened to the smallest unique
string, and may be entered with either a - or a -- prefix, and you may
use a space between an option string and a value. Please refer to man
Getopt::Long for details on how the options may be entered.

Version: $Revision: 1.94 $ 
Manoj Srivastava <srivasta@debian.org>
$ make-kpkg --target
 Known Targets are:
===============================================================================
|     Targets                      |   Automatically builds                   |
===============================================================================
|  clean                           |                                          |
|  buildpackage                    | Builds the whole package                 |
|* binary                          | Builds kernel_{source,headers,image,doc} |
|*      binary-indep               |                                          |
|            kernel_source         |                                          |
|            kernel_doc            |                                          |
|            kernel_manual         |                                          |
|*      binary-arch                |                                          |
|            kernel_headers        |                                          |
|            kernel_image          | Builds build                             |
|                           build  |                                          |
| modules                          |                                          |
| modules_image                    |                                          |
| modules_config                   |                                          |
| modules_clean                    |                                          |
| configure                        | If you wish to edit files                |
|                           debian | generated by make config                 |
| debian                           | Creates ./debian dir, and                |
|                                  | optionally patches the source            |
===============================================================================
 *: make-kpkg needs to be run as root (or fakeroot), --rootcmd will not work
See /usr/share/kernel-package/rules for details.
$ cp arch/powerpc/configs/kuro_nas_t4_defconfig .config
$ make-kpkg --rootcmd fakeroot --arch powerpc binary modules
exec make -f /usr/share/kernel-package/ruleset/minimal.mk debian ROOT_CMD=fakeroot 
/usr/share/kernel-package/ruleset/misc/version_vars.mk:159: *** Error. The Kernel Release version 2.6.30.1-BUFFALO VERSION=[2], PATCHLEVEL=[6], SUBLEVEL=[30], EXTRAVERSION=[.1-BUFFALO], iatv=[], LOCALVERSION=[], UTS_RELEASE_VERSION=[], KERNELRELEASE=[]. is not all lowercase. Since the version ends up in the package name of the kernel image package, this is a Debian policy violation, and the packaging system shall refuse to package the image. .  中止.
Failed to create a ./debian directory: No such file or directory at /usr/bin/make-kpkg line 1048.
Debian ではバージョンはすべて小文字でないといけないらしい。Makefile の
EXTRAVERSION = .1-BUFFALO
EXTRAVERSION = .1-buffalo
に変更して再度。
なぜか途中でパーミッションエラー。結局、
$ sudo make-kpkg --arch powerpc binary modules
でビルド。
Atom 1.6GHzで約4時間。ビルド開始は 14:03 頃。
$ ll ../*.deb
-rw-r--r-- 1 root root  7366404 2009-09-12 18:04 ../linux-doc-2.6.30.1-buffalo_2.6.30.1-buffalo-10.00.Custom_all.deb
-rw-r--r-- 1 root root  5769574 2009-09-12 14:43 ../linux-headers-2.6.30.1-buffalo_2.6.30.1-buffalo-10.00.Custom_powerpc.deb
-rw-r--r-- 1 root root  4195574 2009-09-12 14:44 ../linux-image-2.6.30.1-buffalo_2.6.30.1-buffalo-10.00.Custom_powerpc.deb
-rw-r--r-- 1 root root  1987072 2009-09-12 18:04 ../linux-manual-2.6.30.1-buffalo_2.6.30.1-buffalo-10.00.Custom_all.deb
-rw-r--r-- 1 root root 60626402 2009-09-12 18:03 ../linux-source-2.6.30.1-buffalo_2.6.30.1-buffalo-10.00.Custom_all.deb
binary を指定すれば、modules は指定の必要はないようだ。all.deb となっているファイルはビルドする必要はないので
$ sudo make-kpkg binary-arch
とすれば約40分で済む計算。

今回はここまで。

KURO-BOX/T4 (22)

2009-09-12 | Memo
KURO-BOX/T4

KURO-BOX/T4 のモニターに当選。
モニターレポートは、少しまとめた形にするとして、ここでは、ダラダラと書こうと思う。

前回、/etc/initramfs-tools/modules に追加して、初めて モジュールファイルが追加されたと書いたが、今回試してみると書かなくても入っている。
しかも、書いても書かなくても、入るモジュールの内容が変わらない。
前回書いた内容はなんだったんだろう。。。

modules.dep については検索して、depmod というコマンドから作られることがわかった。
これが入ってないのか?

# gzip -dc initrd.gz | cpio -t | grep depmod
sbin/depmod
11005 blocks
入ってる。
エラー後のBusyBoxで確かめる。
(initramfs) ls /lib/modules/2.6.30.1-BUFFALO-svn1376
kernel               modules.ieee1394map  modules.pcimap
modules.alias        modules.inputmap     modules.seriomap
modules.ccwmap       modules.isapnpmap    modules.symbols
modules.dep          modules.ofmap        modules.usbmap
あるぞ?
(initramfs) udevadm trigger
としても、USBの反応はなし。
(initramfs) cat /lib/modules/2.6.30.1-BUFFALO-svn1376/modules.dep
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/lib/crc-itu-t.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/lib/crc16.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/drivers/scsi/scsi_wait_scan.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/drivers/scsi/sr_mod.ko: /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/drivers/cdrom/cdrom.ko
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/drivers/cdrom/cdrom.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/drivers/usb/storage/usb-storage.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/xfs/xfs.ko: /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/exportfs/exportfs.ko
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/exportfs/exportfs.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/udf/udf.ko: /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/nls/nls_base.ko /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/lib/crc-itu-t.ko
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/nls/nls_base.ko:
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/isofs/isofs.ko: /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/nls/nls_base.ko
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/ext4/ext4.ko: /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/jbd2/jbd2.ko /lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/lib/crc16.ko
/lib/modules/2.6.30.1-BUFFALO-svn1376/kernel/fs/jbd2/jbd2.ko:
OHCI, EHCIがないせいか。。。
/etc/initramfs-tools/modules を変更しても initrd に入る内容が変わらないと確かめた時点で OHCI, ECHI が入ってないことに気がつけって!

再起動して、どうして OCHI, ECHI が入らないのか探る。
えっ、ルートディスクにない!!!
いつ消えた?
CD-ROMのルートディスクアーカイブファイルを見直す。
ない!!!!!
なんなんだ、このルートディスクアーカイブファイルは?

あっ、NFLの開幕戦が始まってしまった。

今回はここまで。