昨日の深夜 2時に帰ってきて、今日の 10時に学校の事務に行かなきゃならん、ということで、じゃあ寝ないで起きてれば良いんだ!と頑張ってみたものの、結局寝てしまい遅刻しました。
事務の人がご機嫌斜めでした。ご迷惑をおかけしました。
そのあと車組の名古屋みやげを研究室に置いて、即帰りました。
家ではうとうとしながらコンピュータいじってたんですけど、段々チャットに答えるスピードが遅くなってきて、だめだこりゃってことで、本格的に寝ました。
大事なのは起きたら午後 10時30分だったってことだよ。ありえねえ。
寝過ぎで背中痛いけどまた寝ることにするよ。
最近ヒット数が異常に伸びているのは Yahoo! のクローラが一日に 400回以上見にくるためです。
それ以外は特に変化無いので、Yahoo! がこのサイトをクロールしきったら、ヒット数の推移も元に戻ると思います。
今まであまり考えずに xvncviewer を使ってたんですが、hdk 氏の日記を見て他のもあるんだっけと思ってちょいと調べてみた。
どれが良いかとかは、hdk 氏の 11/30 の日記を見ていただくとしましょう。
vncviewer は Debian だと 3種類ある(後述)みたいです。パッケージ名は xtightvncviewer, xvncviewer, xvnc4viewer です。
しかしターミナルで xvncviewer と打つと xtightvncviewer が起動したり、xvnc4viewer が起動したりします。見た感じ、最後に入れたパッケージによって上書きされてしまう(※)ようです。
上書きされてしまうかわいそうな xvncviewer はどうやって起動するの?って話になりますが、xrealvncviewer という名前でもインストールされていますので大丈夫です。
xvncviewer が何を指すかわからなくてややこしいので、以降は xtightvncviewer, xrealvncviewer, xvnc4viewer と呼ぶことにします。
※なんで上書きされるのかなあと思って、update-alternatives --config xvncviewer ってやったけど、んなもんねーよ、って言われた(´・ω・`)。謎です。
(12/3 追記)
hdk 氏の指摘により無事 alternatives を更新できたわけです。
そこで気になるのは alternatives の名前(vncviewer)と /etc/alternatives/ の中のシンボリックリンクの名前(xvncviewer)の関係です。こいつらに何か法則性があるのでしょうか?
man update-alternatives を見ると /var/lib/dpkg/alternatives/ に管理情報があるよ、って思い切り書いてあります。読んでみるもんですね。
このディレクトリには alternatives の名前が付いたファイルが入っています。中身の意味は man 参照。
ちなみにそんなの見なくても update-alternatives --all とすると、全ての alternatives に対して候補の決定ができます。
手持ちの環境で各 VNC viewer のバージョンを表示させてみました。
まずは私が常用している xtightvncviewer です。
$ xtightvncviewer -help TightVNC viewer version 1.2.9
次に元祖 vncviewer である xrealvncviewer です。
$ xrealvncviewer VNC viewer version 3.3.7 - built Sep 25 2004 21:08:37 Copyright (C) 2002-2003 RealVNC Ltd. Copyright (C) 1994-2000 AT&T Laboratories Cambridge. See http://www.realvnc.com for information on VNC.
最後に hdk 氏おすすめの xvnc4viewer です。
$ xvnc4viewer -help VNC viewer for X version 4.0 - built Jan 22 2005 17:15:00 Copyright (C) 2002-2004 RealVNC Ltd. See http://www.realvnc.com for information on VNC.
Namazu で過去日記が検索できるようになりました。
他にも過去から未来へ向かって表示する機能を実装しました。
過去の日記を見るときに日付順に表示して欲しいなあ。なんて要望(あるのかどうか知りませんけど)にお応えします。
日付順か、逆順かという引数が URL に追加されたので、日記の URL が従来と異なる形式になりました。これによりまた Yahoo! が絨毯爆撃してくるでしょう…。
加えて /diaries/static/ 配下(12/13 訂正:ミラーする際の不都合があったので /static/ 配下に移動しました)に static な html を生成しました。Namazu のインデックス作成にはこれらのファイルを使っています。と言っても Wget で取ってくるだけの雑な実装。
静的 html を生成するスクリプトを実行するのは一ヶ月に一回だから…てきとーでいいのさ。
閏年とは関係ない、閏秒ってのがあります。原子時計の 1秒(セシウム原子が励起する電磁波の周波数から求める)と地球の 1秒(自転から求める)が同じ長さではないため、差を修正するためにどちらかを 1秒遅らせるという行為です。
これをやらないと、(原子時計の時間に基づいている)時計では昼なのに、地球は夜なんてことが起こってしまうからです。
この説明を見たとき 1秒遅らせると書いてあるのでてっきり、58, 59, 0, 1, ... となる時間を、58, 59, 60, 0, 1, ... とすると思っていました。でも時報サービスではそんな格好悪いことしないんですな。
以下、NTT 東日本のサイトから引用。
過去における時報サービスの「うるう秒」の調整方法は、指定時刻の 100秒前から秒音を 100分の 1秒ずつ長くし、時刻を 1秒遅らせて調整してきました。「うるう秒」の調 整は、1972年 7月 1日に第 1回の調整を行い、現在まで 22回実施しています。(最近では 1999年 1月 1日に実施)
こんな巧みに遅れさせているとは知らなかった。ずっと時報を聞いていても、人間はまず気づかないでしょうね。
出勤の印鑑を押しに行くのを忘れたあげく、間違って押したら事務に「きちんと押しに来ないからこうなるんだよ、ボケが!」って怒られた。
事務から雷が落ちる前に Kわきさんが連絡くれたくらいだし、Hらまさんだっけ?かなりお怒りモードだったのだなあ。
でもまあ理不尽な人ではなく仕事に真面目な感じで、こっちはちゃんとやってるのにふざけるなよ、ってな怒り方でしたので、素直に謝ってきました。
ここ最近、ナイスな軽量ノートがぞくぞく出てきたのでご紹介。
Panasonic の Let's Note W5 は、やはり抜群のバッテリー駆動時間が売りでしょう。1スピンドルタイプの T5、W5/T5 より一回り小さい R5 というタイプもあります。
ただ Let's Note シリーズ全般に言えるのですが、キーボードのキーが変な形(横長の長方形)なのが嫌ですね。それさえなければ良いノートなんですがね。
Sony の VAIO type G は 1スピンドルにすればなんと 900g を切る超軽量設計が魅力的(2スピンドルにもできる)です。Vista を載せるとしたらグラフィックがややパワー不足かもしれないけど、ノートだからどうでも良いね。
個人的にはデコボコしていないデザインに惹かれます。それでいて強度があるというのだから驚きですね。
NEC の新型 VersaPro UltraLite は今までの軽さそのままに 2スピンドル、Core Duo 採用とかなりパワーアップしています。
ただファンが付いてしまったため、うるさそうなのが難点です。それ以外は文句なし。
卒業したら研究室のノートは返すことになるので、その前に買いたいなあ。
さてどれがいいでしょうね…?
大下さんちに以前使っていた無線 LAN アクセスポイントを設置しました。こたつでネット環境、への第一歩です。
しかし大下邸にはノート PC がないので、入学時に買った重い A4 ノート PC を置いといた。今までのルータの設定を引き継ぎ、ノートの Knoppix から接続を確認して設定終了。
ルータは何度かリセットしないと設定が反映されなかったり、同じ設定なのに繋がったり繋がらなかったりと、変な感じになっていた。やはりどこか壊れているのかもしれない。
しかし Knoppix をそのまま使うわけにも行かないし、OS は何を入れようか。とりあえず以前使ってた Windows 2000 でいいか。
貨物車の代表的な形状として「ミニバン」と「ステーションワゴン」と「ワンボックス」の三つがあります。
ワンボックスはボンネットのない長方形の車なのでわかりやすいとしても、ミニバンとステーションワゴンの違いって何?
てなことを新型の CM を見る度に思っていたのですが、この度疑問が氷解しました。
両者に共通しているのはボンネットがあって、居住空間(あるいは荷物スペース)が続いていることです。そのためどちらも形は極めて似ています。
しかし実にシンプルで決定的な違いがありました。
言われてみるとそうです。気づかなかったな。
それ以外は特に決まりはなさそうですが、他にもご存じの方は教えてくださいませ。
ドコモの三菱製携帯で充電池が爆発したみたいですが、ソニーの PC で大きく騒がれたおかげか、ばれてからごねずにすぐ回収しましたね。
ニュースに寄れば原因は電池パックに衝撃を与えたためです。内部の絶縁シートが破損してショートし、異常発熱して爆発するのだとか。
記事には餅みたいになった電池パックの写真だけが載っていましたが、電池パックだけではイマイチ説得力に欠けます。ぜひその電池パックが入っていた携帯も載せて欲しかったです。
例えば、本体が綺麗なら、電池が異常に脆くて壊れた(欠陥)と言えるし、逆に本体がボロボロなら、頻繁に落としたり投げ飛ばしたりして(※)壊れただけで、自業自得と言えるでしょう。
三菱が回収に乗り切ったってことは、前者である可能性が高いだろう、とは推測できますけどね。
何社もマスコミがあってたくさん記者が居るんだから、携帯本体も載せればもっとインパクトあるぜ!ってことくらい気づくだろうに。なぜにどうでも良いことしか書かないのか…。
それはさておき、この事件を受けて三洋は耐衝撃対策として、
「リチウムイオン電池の新製品。1m の高さから大理石の床に落としても壊れません!さらに耐荷重 100kgf です!」
なんて製品を出したら面白いんじゃないかなあ。
なに、どこかで見たような宣伝文句だって?気のせい気のせい。
(※)携帯電話の説明書には「過度な衝撃を加えないでください、電池が損傷し破裂の危険性があります。」という注意書きがある。
雨降ってたから引き籠もってたけど、家が寒くて不快です。昼なのに室温 10度って何さ。温度計が死んでるのか?
起きたら髪にエキサイティングな寝癖が付いていたが、面倒くさいからそのまま買い物に行った。
今日、変なハガキが発掘されました。開けてみたら明日の茨城県議会議員選挙のハガキじゃないか。もう無くなったもんだと思ってたんですが、見つかりました。
明日はついでに床屋行かないと、もーボサボサさ。
人間はペットを飼いますが、人間以外の動物はペットを飼わないのでしょうか?
組み合わせで「人 - 犬」と表すとすると、例えば「熊 - 犬」とかさ。
問題を考えるに当たって、まずペットとは何か?を定義しましょう。飼う理由は、癒される、言うこと聞く、など無数にあります。共通して言えるのは「近くに居てためになる」ってことです。
それは「共生」でしょうか?
共生の例としては、アリとアブラムシなんてのが挙げられるのですが、ペットとは呼びません。ペットと言うと片方が絶対的な支配者であるように感じます。
では「寄生」でしょうか?
寄生とは片方が利益を得るのみ、もう一方は害を受けるのみ(宿主)という関係を指すので、それは言い過ぎです。
つまりどっちでもありません。てけとーにまとめるとこんな感じ。
(いらっしゃーい)共生 -- ペット -- 寄生(うぜえ)
♪なくてもいいけど、少しはあったほうが…そんなの微妙すぎ〜♪(わかる人はわかる表現)
さて、生きるか死ぬかのシビアな環境を考えると、ペットより共生する生物の方が Win-Win の関係を築けるため圧倒的に有利です。またペットは寄生に徹しておらず簡単に排除されるため、排除してもすがりついてくる寄生する生物に対して、生存能力が劣ります。
まとめるとペットはどちらと比べても生存に関して有利な点がない半端な存在です。
生存競争という観点ではペットという関係は非効率的で不利であり、シビアな自然界ではそんな関係は排除され、存在し得ないんです。
熊が犬を飼わないのはそういう理由ですね。お互いに良いことがあまりないんです。
ペットとは、生きるのにあくせくしなくなった人間の象徴なのでしょう。
以上、根拠無しの妄想のため、それっぽく見えれば成功。
セイコーマートの焼きうどんが好きで結構買って食べてるんですが、材料に「豚うで肉」って書いてあって、うで?なんじゃそれ?って思った。
調べてみると「良く運動する部位なので、脂肪分が少なくヘルシー」とのこと。要は安くて固い肉ね。わかったナリ。
うで肉の情報を探していたら豚の腕の骨とうで肉を分離する専用の機械なんかも見つかった。
肩甲骨は手でやっても面倒くさそうな形しているのできっと需要があるんだろう。
RSS の更新日時を出すようにしました。といっても、先頭の dc:date だけです。記事の更新日時は、記事に示した日付の正午に固定しました。
やろうと思えば mixi のように過去のエントリは書けない腐れ仕様にして、記事を作成した時刻を出せます。でも不便だし細かい時刻を出したところでさほど意味を感じないので割愛です。
RSS の日時なんざどうでも良くて、実は HEAD に Last-Modified を出力しようと企んでる途中なわけですよ。
何のためかと言うとアンテナに優しいサイトを目指すためです。
身近には hdk 氏の Asahina antenna in Univ. of Tsukuba(ばなな(※))があります。
って、このサイト入ってないんだけどね。
確か最初に入れないでくれーって言った記憶がある。なんでだっけなあ…?Last-Modified 出すようになったら入れてもらおうかな。と都合の良いことを考え中。
それはさておき hdk 氏にアンテナってどうやって更新をチェックするのか聞いてみたら、基本的には HEAD らしいです。ということは HEAD でだんまりなページはやりづらい(「ばなな」は他の方法でも取るので平気?)でしょうね。
あと Content-Length も出そうと思っています。けど、計算間違って変なことになりそうです。
そういやアンテナは RSS リーダーに押されているのか、あまり見なくなりました。これもご時世か。
(※)今は「つくばさん」です。タイトルに注目。
hdk 氏とファイル名に Unicode の制御文字を入れて遊んでいたら、案外面白い絵が撮れました。貼ろうと思ったんですが、既に hdk 氏のページにあるので割愛です。
ステータスバー、ウインドウのタイトル、パスを表示している部分など全て同様におかしくなります。
ちなみにコマンドプロンプトなどから触れなくなります(Tab で補完するとなぜか使える)が、ショートファイルネームを使って叩けば平気みたいね。
エクスプローラでは長いファイル名は折り返されて表示されます。その処理が原因なのか Unicode の制御文字が入っていると表示がおかしくなります。
徹夜したら次の日は眠いのは当たり前なんですけど、だんだん耐久力がなくなっているらしくて、最近は意識が飛ぶように眠くなります。
シス情セミナーでも寝てたし、研究室でも寝ていた。いかんな。
今日、9F の研究室ではクリックスというゲームが大流行です。自分もやってみたんですが、シンプルながらなかなか面白いです。暇つぶしに最適。
ちょっと操作しづらいのが難点です。しかも一番基本である、数字の増減がわかりづらいから困る。一回間違うと戻せないからさらに困る。
今日もやってみたんですけど Lv.74(36万点)でした。30万点超えた辺りから、5秒悩んだら終了してしまう。この段階での操作ミスは死を意味します。
アイテムの存在を今日知ったので使ってみたんですが、序盤はブロックシャッフルが効きますね。
後半はブロックをメチャクチャにされるとかえってわからなくなって死んだので、連鎖が起きるまでランダム消しを連打するか、あるいは操作ミスならヒビ直し -> タイム回復のコンボかな?どちらにせよアイテムはすぐ無くなるので、さほど点数は伸びませんでした…。
昨日紹介したクリックスを提供している @games ですが、IE じゃないとゲームのページにたどり着けない変な仕組みになっています。
ゲームの置いてあるページに直に飛ぶと行けるんですけどね…。
@games のゲームが置いてあるページは、以下のように直に打てば IE 以外の人でもいける。
http://www.atgames.jp/atgames/html/game/flash/0000.html
最後の 4桁の数字.html となっている部分を変えるとゲームが切り替わる。
今のところ 17種類あるみたい。
番号 | ゲーム名 | 備考 |
---|---|---|
0001 | ウォーターボム | ひたすらかわす |
0002 | キュートショット | ゴルフみたいなゲーム |
0003 | チューチューパニック | |
0004 | アクアミッション | イライラ棒 |
0005 | アニマルクエスト | |
0006 | 消毒ナースナオミちゃん | 連打系 |
0007 | スーパーリフティング | |
0008 | 土用丑 | |
0009 | CLICK'S | |
0010 | アイサツワールド | タイピングゲーム |
0011 | ぷちぷち | さめがめ |
0012 | 電算マニア | 暗算ゲーム |
0013 | フルーツショップ | |
0014 | フォレストストーリー | |_| の形に繋げない。バグ? |
0015 | セルフィスタジアム | いわゆる野球盤 |
0016 | ポイ | |
0017 | ナンバリング | 数独 |
しかし 0000 や 0018 以上にするとサーブレットがエラーで落ちるってのはどうなんだ。
Error processing the templateと出る。しかし Not found ではないらしい。
研究上の用入りで glibc 含むあまたのライブラリに変なオプション付けてクロスコンパイルしなきゃならなくて、とってもめんどくさいです。やる気出ません。
とりあえずクロスコンパイル環境を構築するために作業しています。
作業の途中で、Debian パッケージのすごさを垣間見ました。
# su # apt-get build-dep gcc-3.3 # exit $ apt-get -b source gcc-3.3
ってやるだけで、パッケージからソース解凍して、Debian 用のパッチ当てて、ビルドするところまで出来ます。いやー、すげーわ。
プログラマ寄りの視点から見ると、なんでそこまでやるかね?って感じです。
利用者から見ると、楽すぎて涙がちょちょ切れます。ありがたいです。
同じ要領でクロスコンパイル環境も構築できないかなあ。
まあ Debian ならやっちゃってそうな気もしますけどね、私が無知なためわかりません。地味にやります。
昨日の日記の繰り返しになりますが、私がやりたいのは、変なオプション付けて glibc をビルドすることです。
いきなりやると大抵うまくいかないので、初めに何も付けずにビルドしました。簡単な修正が必要ですが、特に問題なく成功しました。
あとはオプション変えるだけだと思ったら、やっぱダメでした。下のメッセージのように、最適化を外すなって怒られます。
$ make (...snip...) /tmp/build/glibc-2.3.2/config.h:3:3: #error "glibc cannot be compiled without optimization"
そういえば以前、hdk 氏より「Linux カーネル(12/18 訂正:カーネル -> Linux カーネル)は最適化を off にするとコンパイルできない」と教えてもらたっけなあ。
今日になって同じような現象に出会うとは、夢にも思いませんでしたよ。
まず apt-get source glibc として、取ってきた glibc_2.3.2.ds1.orig.tar.gz を展開すると、glibc-2.3.2.tar.bz2 と glibc-linuxthreads-2.3.2.tar.bz2 が出てくるので、それらを展開します。
そして、Zaurus Cross さんにある glibc-2.3.2 向けのバグフィクスパッチを当てます。
こういう素晴らしいお仕事してくれる方がいるから、ほんと助かります…。
# ソース取ってくる
$ apt-get source glibc
$ tar -xzvf glibc_2.3.2.ds1.orig.tar.gz
# 展開、linuxthreads アドオンだっけ?それも展開
$ tar -xjvf glibc-2.3.2.tar.bz2
$ cd glibc-2.3.2
$ cp ../glibc-linuxthreads-2.3.2.tar.bz2 ./
$ tar -xjvf glibc-linuxthreads-2.3.2.tar.bz2
# パッチ当て
$ patch -p1 < glibc-2.3.2-arm.patch
# さらに修正必要、修正内容については後ろの方に載ってます
(修正)
# ビルド用のディレクトリに移動
$ cd ../
$ mkdir build
$ cd build
# こんふぃぎゃー
# カーネルヘッダは適したものを使ってください
$ ../glibc-2.3.2/configure --prefix=/home/username/usr/local/arm --target=arm-linux \
--enable-shared --enable-add-ons --enable-kernel=2.4.x \
--host=arm-linux --with-headers=/home/username/usr/src/linux-2.4.x/include
# ビルド、インストール
$ make
$ make install
ちなみに glibc のコンパイルも含めて、Zaurus Cross さんが超くわしいので、そちら見た方がためになります。
コンパイル通らないと困るので晒しておきます。
初めは glibc-2.3.2/include/libc-symbols.h の @nobits を削ってたんですが、ググったら %nobits にすればいいよ、ってのがあったので直しました。
--- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.orig 2003-02-21 07:22:24.000000000 +0900
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2006-12-17 23:21:42.000000000 +0900
@@ -47,6 +47,8 @@
#include <asm/page.h>
#include <sys/sysctl.h>
+#include <linux/input.h>
+
#define PATH_ARM_SYSTYPE "/etc/arm_systype"
#define PATH_CPUINFO "/proc/cpuinfo"
--- glibc-2.3.2/include/libc-symbols.h.orig 2003-01-04 08:21:03.000000000 +0900
+++ glibc-2.3.2/include/libc-symbols.h 2006-12-17 23:21:01.000000000 +0900
@@ -247,7 +247,7 @@
__attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \r = msg;
# define libc_freeres_ptr(decl) \r- __make_section_unallocated ("__libc_freeres_ptrs, "aw", @nobits") \r+ __make_section_unallocated ("__libc_freeres_ptrs, "aw", %nobits") \r decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
# define __libc_freeres_fn_section \r __attribute__ ((section ("__libc_freeres_fn")))
glibc は最適化を外すとコンパイルできないことを昨日お伝えしました。
これじゃあるオプション(-fno-omit-frame-pointer:フレームポインタの省略を行わない)つけたいのにできないよ、って思ったんですが、試しに -O2 --fno-omit-frame-pointer って同時に指定したらコンパイルできました。
でも確か -O1 くらいの最適化をかけると、アーキテクチャによってはフレームポインタが省略されるはずです。それを考えると -O2 と -fno-omit-frame-pointer は矛盾した指定に思えますが…?
gcc が、オプションを見ているふりをしている可能性も疑って、生成された libc-2.3.2.so を逆アセンブルして確認しましたが、フレームポインタの省略はないようです。
というわけで、最適化とこのオプションは排他ではないことがわかりました。うーん、便利ナリ。
-f なんちゃらのオプションってビットフラグみたいな感じなのでしょうか。-O1 とか -O2 ってのは、それらをまとめて立てたり倒したりするだけかな。
とりあえず glibc はうまくいきました。割とすんなりできたのは、glibc がクロスコンパイルのことを考えて作られているからでしょう。
ところが、みんながみんなクロスコンパイルが容易にできるわけじゃないんですよね。
ncurses は automake/autoconf 使ってる(ほんとか?)っぽいのに target=arm-linux って指定しても完全に無視だった。他のライブラリはまだ試してないけど、ずっとこんな調子だったら泣けてしまうよ。
あと、以前からつまづいていたのは、Linux kernel 2.4 での make menuconfig ですね。make config はできるから、そっちでやりゃいいんですけど、さすがに menuconfig すらできないのは悲しすぎです。
ARCH=arm
CROSS_COMPILE=arm-linux-
まず、以上の変数を指定して、make menuconfig すると、こんな事言われます。
$ make menuconfig Menuconfig has encountered a possible error in one of the kernel's configuration files and is unable to continue. Here is the error report: Q> scripts/Menuconfig: line 831: MCmenu0: command not found Please report this to the maintainer <mec@shout.net>. You may also send a problem report to <linux-kernel@vger.kernel.org>. Please indicate the kernel version you are trying to configure and which menu you were trying to enter when this error occurred. make: *** [menuconfig] 1
MCmenu0 ってファイルが悪いそうですが、このファイルは自動的に生成される上に、クリーンナップでご丁寧にも消されるので残ってません。というわけで scripts/Menuconfig を追って調べたら、arch/arm/config.in で、drivers/ssi/Config.in というファイルを指定しているところが怪しそう。
わざわざコメントで、ssi だよ、scsi のスペルエラーじゃないよ!なんて書いてありますが、現在のカーネルだとそもそも drivers/ssi/Config.in と言うファイルがありません。昔はあったのでしょうね。
そのせいで if ブロックの中が空のシェルスクリプトが生成され、sh が怒っていたのです。
下のような感じでコメントアウトすると良いみたいです。
$ diff -u linux-2.4.33.5/arch/arm/config.in.orig linux-2.4.33.5/arch/arm/config.in
--- linux-2.4.33.5/arch/arm/config.in.orig 2006-12-15 01:29:03.000000000 +0900
+++ linux-2.4.33.5/arch/arm/config.in 2006-12-19 03:33:31.000000000 +0900
@@ -599,10 +599,10 @@
fi
endmenu
-if [ "$CONFIG_ARCH_CLPS711X" = "y" ]; then
- # This is _meant_ to be ssi _not_ scsi. It is not a spelling error.
- source drivers/ssi/Config.in
-fi
+#if [ "$CONFIG_ARCH_CLPS711X" = "y" ]; then
+# # This is _meant_ to be ssi _not_ scsi. It is not a spelling error.
+# source drivers/ssi/Config.in
+#fi
source drivers/ieee1394/Config.in
って書いた後で、既に指摘されていたことがわかったりすると、ほんとガッカリだよ(´・ω・`)ネー。
しかし、私には make の出すエラーメッセージと arch/arm/config.in がおかしい、って事はパッと結びつかなくて、検索もできませんでしたよ…。宇宙人ですか?この人は。
ちなみに、arm 以外にも影響あるっぽいので、カーネルクロスコンパイルしちゃうぜ、って奇特な方は参考にどうぞ。
まあ、俺の思いつく事なんてたいがい、どっかのすげー人がやったことの二番煎じなのさ。それならそれでいいのだ。
クロスコンパイルが楽そうな Linux kernel ですが、2.4.33.5 がコンパイルできない。
$ make bzImage (...snip...) make[1]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers' make -C block make[2]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers/block' make all_targets make[3]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers/block' arm-linux-gcc-3.4.4 -D__KERNEL__ -I/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/include \ -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing \ -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 \ -march=armv4 -mtune=arm9tdmi -malignment-traps -msoft-float -Uarm \ -nostdinc -iwithprefix include -DKBUILD_BASENAME=blkpg -c -o blkpg.o blkpg.c blkpg.c: In function `blk_ioctl': blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber list blkpg.c:252: 前のエラーにより混乱していますので、脱出します (...snip...)
put_user と、u64 の組み合わせがまずいのか、put_user を使っている各所でこのエラーが出ます。
if (cmd == BLKGETSIZE)
return put_user((unsigned long)ullval, (unsigned long *)arg);
else
return put_user(ullval << 9, (u64 *)arg);
gcc-3.3.5 がダメなのかと思って、gcc-3.4.4 でコンパイルしてみた(3.4 では-mshort-load-bytes を -malignment-traps に変えないと別のエラーになる)ものの、やはり同じ。いっそ立ち戻って 2.95 とか、新しい 4 系でやるべきでしょうか。
つーか、ARM 用のカーネルって世の中にいっぱいあると思うんだが、誰がどうやってコンパイルしてるんだよ?
ちなみに gcc に文句を言われる put_user は以下のようなマクロです。行末の継続記号は省いています。
こんなに長いのにマクロなのは inline 展開に比べて何か良いことがあるからでしょう。たぶん。
#define put_user(x,p) (
{
const register typeof(*(p)) __r1 asm("r1") = (x);
const register typeof(*(p)) *__p asm("r0") = (p);
register int __e asm("r0");
switch (sizeof(*(p))) {
case 1:
__put_user_x(__r1, __p, __e, 1, "r2", "lr");
break;
case 2:
__put_user_x(__r1, __p, __e, 2, "r2", "lr");
break;
case 4:
__put_user_x(__r1, __p, __e, 4, "r2", "lr");
break;
case 8:
__put_user_x(__r1, __p, __e, 8, "ip", "lr");
break;
default:
__e = __put_user_bad();
break;
}
__e;
})
#define __put_user_x(__r1,__p,__e,__s,__i...)
__asm__ __volatile__ (
"bl __put_user_" #__s
: "=&r" (__e)
: "0" (__p), "r" (__r1)
: __i
)
put_user が呼んでいる __put_user_x の前半を見ると、サイズ(1, 2, 4, 8)に応じて __put_user_1 とか __put_user_2 などを呼ぶ(bl はブランチ命令)関数みたいです。
gcc のインラインアセンブラが理解できないので、後半がイマイチわからないんですが…。誰か読めませんか?これ。
どうでもいいけど、これ見ていたら、gcc ってマクロの引数を可変にできることに気づきました。
gcc 専用のコードになってしまうのが難点だけど、メチャクチャ便利だな。
ドコモとのミーティングをなぜか明日だと思っていてすっぽかしてしまった。やってしまった。
さらに今日、停電になるのを忘れていて、リモートからの作業中にマシンが落ちた。
研究室に行って、電源投入してきた。
昨日、今日と研究室に行ったせいか、のどが痛い。研究室は暖かくて良いんですけど、猛烈にのどと目が痛くなる。
hdk 氏にそれは登校拒否だって言われた。否定できないよ、うわぁぁヽ(`Д´)ノぁぁーん!
Thunderbird 様にバージョンアップしたから入れ替えろや、ゴルァ!って脅され、言われるがままに入れ替えたら起動しなくなりました。
A previous install did not complete correctly. Finishing install.
何度起動しても、これが出るばかり。
そこで私の取った手順は、まず設定ファイルをバックアップして、Thunderbird のバイナリがあるディレクトリを葬ってから再インストールしました。起動を確認したら、一旦終了させて、バックアップから設定を書き戻してやります。これで元通りです。
で、結局この現象はなんだったのか調べたら、mozdev.org の FAQ に書いてありました。それによれば Thunderbird のインストールディレクトリにある xpicleanup.dat を消せばいいらしいです。
FAQ は親切で結構ですが、エラーメッセージは典型的な意味不明のダメメッセージですね。まあ、人のこと言えませんけどね。
コメントで \ を打つと出力される文がおかしくなっていたので、直しました。
偶然早起きしたので、たまには早目に研究室に行くか、って思って行ったら、ちょうどゼミの時間だったらしい。知らなかった。これが三文の得という奴か。
ブラウザを SeaMonkey 1.1b にアップデートしました。サムネイル機能が良い感じです。
あと個人的にはブックマークメニューで右クリックすると、編集メニューが出るようになったのが、かなり Good です。
Visual Studio 2005 SP1 が出ていたので適用しました。なんと 441MB もあるんですね。ほとんど入れ替えてるんじゃないか?ってくらいの容量です。
ノート PC にインストールしたら、HDD が遅すぎなせいか 2時間もかかりました。
一番腹立ったのは「残り時間 0秒」って出てから、10分以上待たされたことですね…。嘘もいいところだ。
東京の TV 番組をネット経由で視聴できるサービスまねき TV が勝訴したそうです。
おわ、いつのまにネット配信 OK になった??って一瞬びっくりしたんですが、違いました。まぎらわしい書き方すると誤解を招きますよ朝日新聞さん。
要は「自分で買った」ソニーのロケーションフリーテレビの片割れ(ベースステーションの方)を、まねき TV のビルに置くだけです。東京に借りた部屋にロケーションフリーのベースステーション置いて、実家からアクセスするのとなんら変わりません。
マスゴミ各社は、ネット配信によって今まで築いてきた電波の牙城が崩れる、と恐れるあまり、反応過剰になってるんでしょうか。
それよりこの投げやりなサービス、別の点の方が気になります。
NHK の料金はどうなるの?って話です。規約には会社では払わねーから、お前ら勝手に払え、って書いてあります。
NHK って会社と世帯間で契約するものだった気がするんですが、規約にある書き方だと、家族がばらばらに住んでいる場合は、地元 NHK と契約するときと同じように、各世帯で払うのかな?その辺工夫できたらもっと良さそうなのになあ。
日付的には昨日ですが、時間的には今日なのでこっちに書きます。
再就職の決まった(?)じょーを迎えて北脇邸で飲み会をしました。
ストーブが壊れているとかで寒い寒い。つくばの夜ってなんでこんな冷えるんですかね。家の中が寒いのはうちも同じですけどね…。
じょーからドイツワインのうんちくが聞けてためになった。じょーいわく、フランスは産地しか書いて無くて素人には理解不能ですが、ドイツワインはラベルに情報が書いてあって、分類も割とすっきりしているからわかりやすいみたいです。
加藤先生のお宅での歓迎会、兼クリスマスパーティに参加しました。
毎年そうなんだけど、料理うめー!!種類が豊富すぎて全部食えんかったのが残念です。
福島からはるばる小磯氏も来てくれてすげーと思った。
解散後、加藤先生のお宅の前で縄跳びしたんですが、先生の娘さんが超うまかった。それだけでなく加藤先生も二重跳びを軽くこなしていました。縄跳び得意なんでしょうかね?
Cybex STEP で卓球しました。2時間くらいやったら足が痛くなってきたので、カラオケ組と合流して、4時間遊びきりました。
11人という大人数で押しかけて、カード作るとか作らないとか、お買い得なパック料金を使う使わない、をごちゃごちゃに混ぜて注文したのがまず間違いの始まりでした。
遊ぶ物を変更するときは伝票をカウンターに持って行くんですが、誰か言いに行かなかったみたいで、伝票が余ってしまいました。そのせいで店の人がかなり混乱していました。
20分くらいすったもんだしたあげく、我々に「パックのお客様は何人でしたか?」とか聞いたりと、かなり混乱していたようです。最後はめんどくさくなったのか、会計金額だけ合ってる内容めちゃくちゃな伝票を切って解決(?)していました。いい加減な人だなw
大下さんからマフラーと手袋をいただきました。
手袋はちょうど買おうと思っていたところだったので非常にありがたいです。
あとはコートだな。
久々に爆笑した。
カウンタの集計機能で、ブラウザなどが渡してくる User-Agent の値を「ブラウザ」って呼んだり「エージェント」って呼んだり、表記が適当なまま放置しておりました。
何を今更って感じですが、今日 hdk 氏にツッコまれて思い出したので、直しときました。
修正の内容ですが、サイトを見に来るのはブラウザばかりではないなと思ったので、エージェントって方に統一しておきました。
雨強すぎる。なんで今日だけ?出かける気が失せるよ。
研究室では冬休みとかそんなのは関係ありません。今日は今年最後のゼミがありました。
雨さえ、この雨さえなければ清々しく参加できるのにねえ。
いけじ達と小の村にご飯食べに行きました。
途中で眠くなって寝てしまった。すんません。やっぱ徹夜は良くないね。
北海道に帰省しました。16:00 の便(13:40 の TX に乗らないと厳しい)なのに、起きたのは 13:00でした。しかもご飯が保温にしっぱなし、台所には洗い物が残ってる。
さすがに 2週間放置したら絶対カビ生えて液化する!って思ったので、超スピードで洗ってダッシュで出かけました。
で、アパートの駐輪場に下りたら、ぬおぉぉおお、自転車がねえー!
…って、昨日いけじに送ってもらったので自転車は研究棟だった。仕方ないから平砂のバス停まで歩きました。
飛行機には間に合いました。
とにかくバタバタしすぎな一日でした。
なぜか深夜アニメで武装練金やってるよ。ムーンフェイスなつかしー!
コートと、こっちで着る服と、靴を買いました。
ついにダッフルとお別れです。
家族で映画「大奥」を見に行きました。
妹曰く、ドラマは、世継ぎ争いに端を発した女同士のどろどろした争いが面白かったとのことです。
しかし映画は妙に色恋沙汰を強調しすぎて、全然面白くなかったです。せっかくの超豪華キャストが…泣いてますよ。
ドラマ(今日放送していたスペシャルのこと)の方も見たのですが、何これ、びっくりするほど面白くねえ。最後のほうなんか完全に映画の番宣への繋ぎじゃん。
よっぽどのものでない限り駄作なんて思わないのですが、これは駄作だ!
映画、ドラマ(映画の番宣)の順で見てしまったのも大失敗でした。ただでさえつまらないのにもう最悪です。
高校時代のクラスメートが一同に集まる同窓会がありました。
30人近く集まったのが驚愕だったのに、二次会に一次会の参加者がほぼ全員来るという奇跡。幹事の T氏と T氏の力ですね。
同窓会では、卒業以来会ってない懐かしい面々がたくさん。
三次会の途中で終電が行っちゃったので、そのあとは友達の家になだれ込んで朝まで話し込みました。
話しているうちに高校時代の記憶が結構よみがえりました。
あんなに楽しかったのに全然覚えてなくてショックでしたが、良く考えたらもう 6年も前なんですね。詳細に覚えてないのも当然のことです。
まじめに通ってたつもりだったんですけど、話しているうちに色々思い出しました。学生って先生をかなりなめてた気がします。
つまらん授業で寝るためのクッション買って持ってくるとか、廊下でテニス(体育館あるのに)とか先生からしたら相当むかつくだろうなあ。
さすがに不良校じゃないし、僕らも馬鹿じゃなかったので、法に触れるような愚かなこと(窓割ったり(器物破損)車壊したり)はなかったけどね…。
ならぬ寝大晦日です。
昨日、朝まで起きていたので今日は爆睡していました。
深夜12時前後から、ドコモは 3時間、KDDI は 5時間、SBM は 3時間程度、発信規制がかかるそうですが、うちの街はたぶん繁華街の範疇に入っていないので、電話もメールも普通に使えました…。
嬉しいような悲しいような。
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2021.
Powered by PHP 5.2.17.
using GD bundled (2.0.34 compatible)(png support.)