つれづれ日記 2003年6月

予定

毎日


2003年6月30日

22:47:06 # Life mhattaさんの文章はなかなかよいと思う. 私の実感と共通するものがある. 「堕落のために努力」というか,そういうことだろう. オープンソースの本当の意味というのは,ある程度経験をつまないとわからないのではないか? むしろ問題は経験をつむという過程ではなく,言葉を通してその意義が 伝わればよいのだが,という点. その手法を考えるのが必要なのかな. その経験をしてからライセンスを作成するのは遅いから,GPLとかいう「テンプレート」が あり,オープンソースというガイドラインがあるのだ,とも言える. しかし,その意味を説明して伝えることができることがこれからの課題か.

2003年6月29日

10:24:33 # Life 多分さまざまなパッケージのwoodyへのバックポート.頑張っている感じだな. しかしながらいろいろとpbuilder関連であったようだと覚えているものが googleで探しても見付からないのが困る.

12:39:05 # web maintenance 久しぶりにCSSをいじってみた. 色をごっそりと変更した. どうだろう.見やすくなっただろうか.

14:09:33 # Life むむ,ardour 0.9beta1 のtarballか. とうとうリリースする気になってきたか.

23:05:17 # Life Libretto L2 用の2.4.21用のパッチを作成した.

nagatoさんのページは面白い. 時系列に2.5.x系列のカーネルでlibrettoを使うことについて記録している.

2003年6月28日

10:12:05 # Life 昨日はjazzを聴いてつかれた.飲みすぎ.

11:25:02 # Life クラスタ喫茶のネタは面白すぎ. ネットカフェとかじゃなくて,PCクラスタを使って遊べるところ, しかも構築もできる. 結構機材費用とかがかかりそうだから,いかに入場料金に反映させずに頑張るか, というところか?

2003年6月26日

22:06:26 # Life fire projectのページが移動したらしいので, リンクを更新.

22:18:30 # Life Arnd Bergmann さんがdebian-develに書いた,なぜi386とi486版のC++バイナリを 共存させられないのか:

The API requires that access to atomic variables is truly atomic.

The i386 version uses a semaphore to synchronize the access to an atomic
variable, the i486+ version uses the lock prefix. When you mix these
two in one program, two threads might access the variable without
locking against each other because the code inside the semaphore
does not lock the memory bus.
	

結局の所,386のバスが16bit だったのが問題なのかな.

2003年6月25日

00:23:03 # Life ヨドバシカメラでHDDを15000円で買う. 現在のデータを救出. しかし,SMART情報を見ると,さっぱりダメな情報しか帰って来ない. そういうものなのかな?

20:27:58 # Life 無事にあたらしいディスクから起動するようになった. /sbin/grub/boot/grub/stage[12] のバージョンが違ったので,grub から setup しても うまく動かない,という現象に出会ったが,cp して解決.

20:53:47 # Life libpkg-guideのパッチ, debian-copyright.elのパッチ, pbuilderとlibcのアップグレードについてのメール.

2003年6月23日

00:33:00 # Life 某フォントの問題について,アクションをおこしている人達が居る. すばやいアクションは美しい.

21:52:45 # Life Qu Chenさんという誰だかよくわからない人からリンクの仕方について質問. よくわからないが,とりあえず真面目に返事を書いてみる.

2003年6月17日

22:53:43 # Life 一日の食費は800円以内.

23:32:48 # Life カーネルに対してのパッチを個人的に投げたら返事が帰って来た. のんびりした返答だなぁ..初かも. とりあえずUSB関連のことなら全部GregKHになげんとダメだよ. 2.4系列だけじゃなく2.5系列用にもパッチを書け,とのお達し.

2003年6月16日

20:15:50 # Life Zaurusにmp3をいれてみる.scpでコピー.

22:37:40 # Life user-mode-linux 2.4.20-6um を 2.4.21 で動かすとどうも遅い気がしてならない. なんでだろう.きのせいだろうか. bogomipsの計算が遅い気もする.

23:59:23 # Life jack-audio-development-kit status を確認. pd が古いのがダメなのか?

2003年6月15日

13:10:30 # Life とりあえず危険なセクタを回避したいので, ファイルをコピーして,コピーした部分を利用する.

15:05:48 # Life Linux-magazin.deの2003年5月号にすこしだけdshの記事がでていたようだ. dsh と sudo を使ってインストールしまくるぜ,みたいな話しか. ドイツ語過ぎてよくわからん.

16:24:50 # Life Linux kernel 2.4.21 が気が付いていたらでていたので,Zaurusパッチを当てて,処理する.

16:32:44 # Life mkisofs -v -r -D -o /var/tmp/dancer.iso /home/dancer/

17:58:43 # Life blosxomか. Freeなblog. 結構期待.

22:24:53 # Life Installing, Running and Maintaining Large Linux Clusters at CERNとかいうペーパーがあったので読んでみる. うーん.あんまり大した印象も無い.

2003年6月14日

07:41:15 # Life とうとうきた. 最近変だと思ったが,カーネルから: hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error } hda: drive_cmd: error=0x04 { DriveStatusError }

2003年6月11日

23:43:58 # Life なるほど,ぐたくさんもとうとうご結婚ですか.(事実誤認)

2003年6月10日

07:57:22 # Life 2.4.21-rc7にZaurus C700 対応パッチをフォワードポート

--- linux-2.4.21-rc7/drivers/usb/usbnet.c.old	2003-06-10 07:54:23.000000000 +0900
+++ linux-2.4.21-rc7/drivers/usb/usbnet.c	2003-06-10 07:55:27.000000000 +0900
@@ -1426,6 +1426,16 @@
 	.in = 1, .out = 2,
 	.epsize = 64,
 };
+static const struct driver_info	zaurus_slc700_info = {
+	/* Japanese B500 ~= US SL-5600 */
+	.description =	"Sharp Zaurus SL-C700",
+	.flags =	FLAG_FRAMING_Z,
+	.check_connect = always_connected,
+	.tx_fixup = 	zaurus_tx_fixup,
+
+	.in = 1, .out = 2,
+	.epsize = 64,
+};
 
 // SL-5600 and C-700 are PXA based; should resemble A300
 
@@ -2402,6 +2412,15 @@
 	.bInterfaceSubClass	= 0x0a,
 	.bInterfaceProtocol	= 0x00,
 	.driver_info =  (unsigned long) &zaurus_slb500_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE, 
+	.idVendor		= 0x04DD,
+	.idProduct		= 0x8007,
+	.bInterfaceClass	= 0x02,
+	.bInterfaceSubClass	= 0x0a,
+	.bInterfaceProtocol	= 0x00,
+	.driver_info =  (unsigned long) &zaurus_slc700_info,
 },
 #endif
 
	

20:36:15 # Life ふう,朝netfort.gr.jpがおちていてびっくりした. なんか工事だったらしい. コンシューマ向けの回線は平日に工事をするのか... たしかに日曜にされたら泣きそうだな.

23:33:09 # Today's hack update-clusterのmanページの日本語訳を作成. どうやらなんとかなりそうな感じがしてきた.

23:52:07 # Life all-local というMakefile.amターゲットがあるのを知る. あと,${man_MANS}: all-local みたいにして複数ターゲットの依存関係を表現できるっぽいことも. でも,GNU makeの拡張っぽくないかなぁ...

GNU make のマニュアルはどのように読んでも他のMakeとの互換性についてはよくわからない のがこまりどころだ. Cとちがい,結構他のMakeはかなり制限が強かったりするので, GNU Make対応で最初書いたプログラムを SunOSとかAIXとかでコンパイルできるようにするのが微妙に面倒.

2003年6月9日

20:11:38 # Life DSA, kernel 2.4.18 のセキュリティーフィックスのパッケージが出た. なんというか,凄い力作だとしか言いようが無い.

21:48:08 # Life gauche のregexpの動作を確認してみる.ふむ. かっこをエスケープしなくてもそれなりにうごいている.

gosh> (define m (#/(hoge)f(uga)/ "hogefuga"))
m
gosh> (m 0)
"hogefuga"
gosh> (m 1)
"hoge"
gosh> (m 2)
"uga"
	

21:57:52 # Life LL Saturdayか. あんまり普段からlightweightなツールは使っていない (というか,sh と C でいろいろまわしている) ので8月までにrubyでプログラムがかけるようになるのを目標にするか?

22:53:33 # Today's hack shadowソースパッケージを見て, mandir=@mandir@/ja と設定したら, man_MANSでも日本語のマニュアルページが普通にインストールできるということを知る. そうか,すばらしい.

2003年6月8日

08:00:30 # Life 氷山の一角は1/6くらいでしょ? というColin Watsonの発言.いいねぇ.

09:15:44 # Life CygwinにはNISがないっぽい. getnetgrent等の関数が存在していない.

17:34:02 # Life smartmontoolsというパッケージがあるのでインストール. HDDのSMART情報を取得してくれるらしい.

22:56:41 # Life dsh が MacOS Xでコンパイルできるようになったらしい. SunOSとCygwinでもコンパイルできるようになっているはず.

2003年6月7日

00:46:53 # Life まつもとさんの日記をみて思う OSDに合致するライセンスは複数ある. しかし,GPLを選択したのは,GPLのコードから導出したものはGPLである必要があるため. 自分が自由な時間で作成したコードはGPLにしておいたら,自分が不自由な時間にいじっても, GPLのままで居られる. また,GPLであることが不都合だと思ったら,自分のコードは 自分でいつでもGPL以外のライセンスに 変更できる. おかげで,自分をGPLに縛る事ができ,不自由な時間に作成したコードも 自由な時間にハックすることができるような結果になった.

02:21:25 # Life dshの問題を発見し,解決. 新しいバージョンをリリース.

12:09:28 # Life Zaurusにログインして,dshをコンパイルしてみる. なんか/tmp/local にインストールとかふざけたことをしてみる. LD_LIBRARY_PATH="/tmp/local/lib" CXXFLAGS="-I/tmp/local/include/ -O2 -Wall -g " CFLAGS="-I/tmp/local/include/ -O2 -Wall -g " LDFLAGS="-L/tmp/local/lib" ./configure -prefix=/tmp/local 結構遅い../configureが遅い. NFSのsyncオプションだからかな,と思い asyncにしたらはやくなるかと試す. 毎回syncしなくなるので激烈に速くなった.意外と ディスクの遅さのほうがCPUの遅さやネットワーク経由であること より響いている感じがする. 時間を計測してみた.若干な違い.

async:
real    2m34.050s
user    1m14.710s
sys     0m41.430s

sync:
real    2m58.892s
user    1m14.860s
sys     0m42.640s

	

19:24:23 # Life gaimのja.poを更新.0.64対応. ちょっとWindowsプログラマーたちの追加がださいなぁ. i18nのことなんて意識の端にものぼっていない若い子供たちがやっているのだろうけど. 世界はアメリカではないんだよ,と教えてあげたい.

2003年6月5日

00:01:58 # Life zaurus作業.自分がする必要がある作業をメモ:

master$ tcpproxy 8089 ftp.jp.debian.org 80
master# ifup usb0
master$ ssh -l root zaurus
zaurus# swapon /mnt/card/swap
zaurus# mkdir /tmp/nfs
zaurus# mount -t nfs 192.168.129.1:/var/zaurus/native /tmp/nfs
zaurus# mount -t proc proc tmp/nfs/proc
zaurus# chroot tmp/nfs/ bin/bash
# /etc/init.d/nfs-common start
	

自分の環境ではここまでしたらaptとかが動くようになる(というか,そうなるようにした). gccとかをインストールしたら/homeをNFS共有してみるとおもしろいかも. むしろsshを動かすのが再優先か?

00:23:23 # Today's hack プロセスの終了コードを取得する方法

#include <unistd.h>
#include <stdio.h>
#include <sys/wait.h>
waitpid(-1, &i, 0);
printf ("%i\n", WEXITSTATUS(i));
	

01:00:36 # Life doc++ の日本語訳を更新. ついでに翻訳可能な文字列を追加.

07:42:09 # Life zaurus NFS chroot にbuild-essentialが入った. /homeでも共有するかなぁ..

22:00:08 # Today's hack dshをほげる. 終了コードに意味をもたせたかったので, 持たせてみる. 本当はこれを設定可能にしたい. このような終了コードの扱い方をする,みたいにしたい.

2003年6月4日

00:43:46 # Life debootstrapが動くまで適当になんとかして,後をdebootstrapにまかせてみた. baseシステムでdebootstrapが動くのに足りないのは「ar」だけ. とりあえず,busyboxをとってきてarが動くようにした.

そうするとどうやらなんとかうごいているみたい???

23:03:20 # Life OSDに合致しないライセンス

23:04:52 # Life c10k problem 10000クライアントに及ぶ場合のサーバの書き方. いきなりスレッドを複数つかってblocking callを使うのは効率悪いよ(って僕が よく書くコードはこんな感じのような)と書いてある. aio_writeとかを使うのが良い感じらしい.

2003年6月3日

06:47:07 # Life zaurusほげ. まず,SDにswapを作成してみた.

bash-2.05# dd if=/dev/zero of=swap bs=1024 count=$((32*1024))
32768+0 records in
32768+0 records out
bash-2.05# mkswap /mnt/card/swap
Setting up swapspace version 0, size = 33550336 bytes
bash-2.05# swapon /mnt/card/swap
	

あとi386マシンからdebootstrapすると debを全部展開して,chrootでプログラムを実行しはじめるところで 止まるので,そのイメージをnfs mount. postinstは全く実行されていないがそれなりに使えるイメージが出来上がる.

ぱっと思い付く問題点は:

bin/bash-2.05b# awk
bin/bash: awk: command not found
bin/bash-2.05b# mawk
bin/bash-2.05b# dpkg -l
bin/bash-2.05b#
	

うげ.dpkgが何も出力してくれない. とりあえずbaseは77MB. dpkgを動かすにはrpc.statdが必要なようだ. ということで,どうするか. nfs-common debをばらしてインストールかな.

06:58:10 # Life /etc/init.d/nfs-common startしたら, libwrap.soが無いと怒られたので,/var/cache/apt/archives から展開. んでもってまず試験的にdpkg -i dpkg*.deb,としてみる.

22:22:05 # Life 朝から断続的に頑張っているのだが, dpkgがどうもこういうエラーを出す.

	dpkg: unable to lock dpkg status database: No locks available
	

rpc.statdが動いているときと動いていないときでは違うタイミングでエラーがでるので, 違う問題のようだ. さて,なんでだろう. NFSでdpkgって動いたっけ.

23:09:23 # Life debootstrapのdebをとってきて, debootstrap --arch arm sid / という感じで インストールしてみる.失敗したらアウト,かな.

2003年6月2日

22:07:41 # Life LinuxZaurusのCPUを差し替えたり, メモリを128MBにしてみたり,とかいうことを考えている人がいるらしい. 感服

22:52:46 # Life とりあえず適当にZaurusには sshをcvsをインストール.これで何かができるものだと考える.

NFSマウントするためにARMのsidのファイルシステムをi386マシンに構築してみる. debootstrap --arch arm sid . でよいのだろうか. まだまだ時間はかかる感じ. というか,無理か?

2003年6月1日

00:07:31 # Life usbdnetを使うべく,カーネル2.4.21-pre6を調査. どうやら,2.4.20には入っていなかったzaurus対応のusbnetコードが 入っているようだ. drivers/usb/usbnet.cを読む. A300とB500という文字は書いてあるが,C700の文字が無い. 大丈夫か?とりあえず,コンパイルしてみてから調査か.

Config.inを見ると,どうやらEXPERIMENTALと書いてあるようなので, make menuconfigで,Prompt for development and/or incomplete code/drivers をオンにして,USB-to-USB Networking cables を選択してみる.

lm-sensorsのコードが古くてコンパイルできなくなっている. アップグレードするのが面倒なのでコンパイルが通らないところをパッチ. gcc 3.3でちゃんとALSAもコンパイルできているっぽい.

01:30:51 # Today's hack usb.c: USB device 6 (vend/prod 0x4dd/0x8007) is not claimed by any active driver. とか言われるので,書き換えてみる.とりあえず同時期に出たB500と同じだろう,と予想を つけて書き換える.これだけではC700がB500だというメッセージが出るのでださいので 多少変更してみたり.

--- linux-2.4.21-pre6/drivers/usb/usbnet.c~     2003-05-31 23:22:39.000000000 +0900
+++ linux-2.4.21-pre6/drivers/usb/usbnet.c      2003-06-01 01:37:58.000000000 +0900
@@ -1417,7 +1417,9 @@
        .epsize = 64,
 };
 static const struct driver_info        zaurus_slb500_info = {
-       /* Japanese B500 ~= US SL-5600 */
+       /* Japanese B500 ~= US SL-5600
+          and C700, possibly.  -- dancerj
+        */
        .description =  "Sharp Zaurus SL-B500",
        .flags =        FLAG_FRAMING_Z,
        .check_connect = always_connected,
@@ -2402,6 +2404,16 @@
        .bInterfaceSubClass     = 0x0a,
        .bInterfaceProtocol     = 0x00,
        .driver_info =  (unsigned long) &zaurus_slb500_info,
+}, {
+       .match_flags    =   USB_DEVICE_ID_MATCH_INT_INFO
+                         | USB_DEVICE_ID_MATCH_DEVICE,
+       .idVendor               = 0x04DD,
+       .idProduct              = 0x8007, /* C700 -- dancerj */
+       .bInterfaceClass        = 0x02,
+       .bInterfaceSubClass     = 0x0a,
+       .bInterfaceProtocol     = 0x00,
+       .driver_info =  (unsigned long) &zaurus_slb500_info,
+},
 },
 #endif
  
	

googleで検索すると他の人々の作業結果がみれて良い感じ. ネットワークでつながったので,さぁどうするか. nmapで調べるとsunrpcとnetbios-ssnだけが開いているらしい. で,nautilus で smb:// を開いてみると, WORKGROUPにZaurusというのがあり, そのなかにhomeというshareがあった. ふむ.結構便利かも. SDカードドライブの代替として使えなくもない程度か?

12:56:12 # Life デジカメから128MBのSDをとりだして,C700に接続. emacsとrubyをインストールしてみる.これでrubyがもげもげできるのだろうか.


Junichi Uekawa

$Id: 200306.html.ja,v 1.48 2005/02/03 01:55:24 dancer Exp $