22:47:06 # Life mhattaさんの文章はなかなかよいと思う. 私の実感と共通するものがある. 「堕落のために努力」というか,そういうことだろう. オープンソースの本当の意味というのは,ある程度経験をつまないとわからないのではないか? むしろ問題は経験をつむという過程ではなく,言葉を通してその意義が 伝わればよいのだが,という点. その手法を考えるのが必要なのかな. その経験をしてからライセンスを作成するのは遅いから,GPLとかいう「テンプレート」が あり,オープンソースというガイドラインがあるのだ,とも言える. しかし,その意味を説明して伝えることができることがこれからの課題か.
10:24:33 # Life 多分さまざまなパッケージのwoodyへのバックポート.頑張っている感じだな. しかしながらいろいろとpbuilder関連であったようだと覚えているものが googleで探しても見付からないのが困る.
12:39:05 # web maintenance 久しぶりにCSSをいじってみた. 色をごっそりと変更した. どうだろう.見やすくなっただろうか.
14:09:33 # Life むむ,ardour 0.9beta1 のtarballか. とうとうリリースする気になってきたか.
10:12:05 # Life 昨日はjazzを聴いてつかれた.飲みすぎ.
11:25:02 # Life クラスタ喫茶のネタは面白すぎ. ネットカフェとかじゃなくて,PCクラスタを使って遊べるところ, しかも構築もできる. 結構機材費用とかがかかりそうだから,いかに入場料金に反映させずに頑張るか, というところか?
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 だったのが問題なのかな.
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のアップグレードについてのメール.
00:33:00 # Life 某フォントの問題について,アクションをおこしている人達が居る. すばやいアクションは美しい.
21:52:45 # Life Qu Chenさんという誰だかよくわからない人からリンクの仕方について質問. よくわからないが,とりあえず真面目に返事を書いてみる.
22:53:43 # Life 一日の食費は800円以内.
23:32:48 # Life カーネルに対してのパッチを個人的に投げたら返事が帰って来た. のんびりした返答だなぁ..初かも. とりあえずUSB関連のことなら全部GregKHになげんとダメだよ. 2.4系列だけじゃなく2.5系列用にもパッチを書け,とのお達し.
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 が古いのがダメなのか?
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とかいうペーパーがあったので読んでみる. うーん.あんまり大した印象も無い.
07:41:15 # Life とうとうきた. 最近変だと思ったが,カーネルから: hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error } hda: drive_cmd: error=0x04 { DriveStatusError }
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とかでコンパイルできるようにするのが微妙に面倒.
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でも日本語のマニュアルページが普通にインストールできるということを知る. そうか,すばらしい.
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でもコンパイルできるようになっているはず.
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のことなんて意識の端にものぼっていない若い子供たちがやっているのだろうけど. 世界はアメリカではないんだよ,と教えてあげたい.
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をほげる. 終了コードに意味をもたせたかったので, 持たせてみる. 本当はこれを設定可能にしたい. このような終了コードの扱い方をする,みたいにしたい.
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とかを使うのが良い感じらしい.
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 / という感じで インストールしてみる.失敗したらアウト,かな.
22:07:41 # Life LinuxZaurusのCPUを差し替えたり, メモリを128MBにしてみたり,とかいうことを考えている人がいるらしい. 感服
22:52:46 # Life とりあえず適当にZaurusには sshをcvsをインストール.これで何かができるものだと考える.
NFSマウントするためにARMのsidのファイルシステムをi386マシンに構築してみる. debootstrap --arch arm sid . でよいのだろうか. まだまだ時間はかかる感じ. というか,無理か?
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がもげもげできるのだろうか.
$Id: 200306.html.ja,v 1.48 2005/02/03 01:55:24 dancer Exp $