メッセージ。 - diary
2008-01-28
# Titchy Linuxインストールのその後
前回の続きということで。ARM用のクロスコンパイル環境は整った。さて、いざLinux 2.6.20をコンパイルだーと思ってコンパイルしたら、けっこうあっさり通った。Titchy Linuxのサイトで配布されているカーネルソースを持ってきて、configを.configにmv。例のマイクロドライブ換装のパッチをあててコンパイルするだけ。パッチの内容はだいたい以下。
drivers/ide/legacy/ide-cs.c
PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
+ PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS16GCF133", 0x709b1bf1, 0xf54a91c8),
PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
TRANSCENDの16GBのCFを載せたので、TS16GCF133の行を追加した。
んでまぁ、このカーネルをSDカードにコピーしてブートしてインストールするところまでいったんだけど、その後でうまくいってない現在。いくつか問題があって、
(1)タッチスクリーンで右クリックできない。いろいろ調べてるんだけどよく分からないんだよなぁ。そもそもxorg.confが/etcの下に存在しなくって、どうなってるのか調べ中。ts.confのほうが原因かもなぁと思ったけど、こっちにはとくに設定項目がないみたい。そもそもタップはできるけど右クリックができないというのは、tslibの問題じゃなさそうだし。
(2)CFカードのPHSが動かない。標準カーネルのときから出ていた状況。カーネルパラメータをいじれば動くようになるのかもしれないけど未着手。これが動かないと、電車の中での遊びに制限が大きく、ストレスが強い。
(3)uxtermで日本語が表示されない。xfceのメニューは日本語ビットマップフォントで表示されるようになったんだけどなぁ。どうしてだろう。調査中。
(4)音がならない。Linux 2.6で音をならせるよう、デバイスドライバが必要なんだけど、Titchy Linuxではzaurus-soundhack.debというパッケージにそれが入っている。新しいカーネルと整合性が取るためにこれのソースが必要なんだけど、ちょっとまだ見つからない。
drivers/ide/legacy/ide-cs.c
PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
+ PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS16GCF133", 0x709b1bf1, 0xf54a91c8),
PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
TRANSCENDの16GBのCFを載せたので、TS16GCF133の行を追加した。
んでまぁ、このカーネルをSDカードにコピーしてブートしてインストールするところまでいったんだけど、その後でうまくいってない現在。いくつか問題があって、
(1)タッチスクリーンで右クリックできない。いろいろ調べてるんだけどよく分からないんだよなぁ。そもそもxorg.confが/etcの下に存在しなくって、どうなってるのか調べ中。ts.confのほうが原因かもなぁと思ったけど、こっちにはとくに設定項目がないみたい。そもそもタップはできるけど右クリックができないというのは、tslibの問題じゃなさそうだし。
(2)CFカードのPHSが動かない。標準カーネルのときから出ていた状況。カーネルパラメータをいじれば動くようになるのかもしれないけど未着手。これが動かないと、電車の中での遊びに制限が大きく、ストレスが強い。
(3)uxtermで日本語が表示されない。xfceのメニューは日本語ビットマップフォントで表示されるようになったんだけどなぁ。どうしてだろう。調査中。
(4)音がならない。Linux 2.6で音をならせるよう、デバイスドライバが必要なんだけど、Titchy Linuxではzaurus-soundhack.debというパッケージにそれが入っている。新しいカーネルと整合性が取るためにこれのソースが必要なんだけど、ちょっとまだ見つからない。
2008-01-23
# ARM用クロスコンパイル環境の構築
いやー。クロスコンパイル環境の構築、けっこう大変だった。
ネットとかに情報が少なくて、ちょっとした間違いで進まないところがたくさんあったので、試行錯誤してうまくいったパスをメモしてみる。
参考になったリンク
クロスコンパイル/kuro-box
http://www.ki.nu/software/cross-compile/kuro-box.html
ARM gcc バッドノウハウ集: EABI と legacy ABI
http://jr0bak.homelinux.net/~imai/linux/arm_gcc_badknowhow/arm_gcc_badknowhow-8.html
ネットとかに情報が少なくて、ちょっとした間違いで進まないところがたくさんあったので、試行錯誤してうまくいったパスをメモしてみる。
- 基本的に、http://www.mit.msn.to/zaurus/gcc3.html を参考に作業を進める。ドキュメンテーションがしっかりしていて分かりやすいから。
- linux-headers-arm-sa1100-2.4.6-3.i386.rpmとglibc-arm-2.2.2-0.i386.rpmをインストールするところは同じ。上記のファイルをダウンロードした後、debianの場合はalien *.rpmとしてrpmをdebに変換し、dpkg -i *.debとする。
- 次に、インストール先を/usr/local以下に変更する。sudo mv /opt/Embedix/tools/arm-linux /usr/local/arm/実行。
- binutilsのコンパイルは書いてあるとおりでオーケー。ただし、rootユーザーになってコマンドを実行する必要があるっぽい。make installだけsudoで実行しようとすると失敗したような気がする。これはgccのコンパイル工程だっけか。
- 上記ドキュメントとは違って今回はTitchy用なので、Linux 2.6.20をコンパイルする。
- GCCのコンパイル工程もほとんど同じだけど、注意点が4つ。
- 注意点1:コンパイル時の追加パスについて。上記ドキュメントでは「export PATH=/usr/local/arm:$PATH」と書かれているけど、ここは「export PATH=/usr/local/arm/bin:$PATH」が正しいはず。あとbinutilsと同じようにroot権限でコマンドを実行する必要がある。
- 注意点2:環境変数を2つ設定する。「export ARCH=arm; export CROSS_COMPILE=arm-linux-」
- 注意点3:Linux 2.6.20をARM用にコンパイルするには、GCC 4系統を使用する必要がある。というか、正確にいうとARMはABI(Application Binary Interface)を切り替えられるようになっていて、EABIを使うかLegacy ABIを使うかでGCC 4必須かどうかが変わってくる。Titchyの場合はEABIを使っているようだったので、今回はGCC 4をインストールした。
- 注意点4:手元の環境では、実際にgcc 4をmakeしようとすると、「sigthread.h:36: error: storage class specified for parameter `type name'」などといったエラーメッセージが出た。pthreads関連のヘッダファイルの内容に不整合があるっぽい。ということで、ヘッダファイル2個所を変更した。/usr/local/arm/arm-linux/include/bits/sigthread.hと/usr/local/arm/arm-linux/include/pthread.h。変更内容は下記参考になったリンクの「クロスコンパイル/kuro-box」を参照。
参考になったリンク
クロスコンパイル/kuro-box
http://www.ki.nu/software/cross-compile/kuro-box.html
ARM gcc バッドノウハウ集: EABI と legacy ABI
http://jr0bak.homelinux.net/~imai/linux/arm_gcc_badknowhow/arm_gcc_badknowhow-8.html
2008-01-22
# 「プログラミングGauche」出版記念 第2回gauche.night
gauche.night:プレスリリース
http://practical-scheme.net/wiliki/wiliki.cgi?gauche.night%3a%e3%83%97%e3%83%ac%e3%82%b9%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9
すばらしい! 今度こそ、ぜひぜひぜひぜひ、参加したいです。
http://practical-scheme.net/wiliki/wiliki.cgi?gauche.night%3a%e3%83%97%e3%83%ac%e3%82%b9%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9
すばらしい! 今度こそ、ぜひぜひぜひぜひ、参加したいです。
# Zaurus SL-C3000系のマイクロドライブを換装
Zaurus SL-C3000のOSを入れ替えちゃえ!と思い立って、どうせなら内蔵のマイクロドライブをCF(コンパクトフラッシュ)に換装したくなった。最近CFが安いみたいで16GBが1万7千円ぐらいだから。それで先週末に秋葉原に行ってCFを買ってきて、さっそくZaurusの箱を開けて換装してみた。けっこうドキドキしながら作業したけど、一応作業は成功。フレキシブルケールのコネクタを一部破損して涙目になったけど、致命傷ではなかったみたい(結果論からいえば、マイクロドライブを交換するのにフレキシブルケーブルは外す必要がなかったし、小さすぎて自分には外すことができそうになかった)。あと、銅箔をハンダごてで溶かして外すところが1個所あって、そこをミスしてしまったので銅箔が一部切断されてしまっている。ただ、銅箔が切断された状態でZaurusは一応起動して各デバイスを認識もしている模様。あとでハンダ付けして詳しく動作確認すること。>自分。
それで今は、一応ハードウェア的には換装が成功してるっぽいのだけどOSがCFを認識しなくって、Titchyの再インストールができていない状態。CFの16GBをLinuxカーネルが認識しないのだけど、これはide-cs.cの中にmanfidが直接書き込まれていて、最近のデバイスに追従していないため。Titchyをインストールするには、たぶんide-cs.cにパッチをあててカーネルをコンパイルしなおす必要がある。で、いまはクロスコンパイル環境を整えているところ。
いろいろ参考になったリンク
SL-C3000分解
http://www.ayati.com/kobako/c3bara.htm
Linuxザウルス開発メモ/ハードウェア/C3000HDD換装 - Walrus, Visit.
http://digit.que.ne.jp/visit/index.cgi?Linux%A5%B6%A5%A6%A5%EB%A5%B9%B3%AB%C8%AF%A5%E1%A5%E2%2F%A5%CF%A1%BC%A5%C9%A5%A6%A5%A7%A5%A2%2FC3000HDD%B4%B9%C1%F5
Titchy On Internal 16gb Cf Microdrive Replacement (3200) - OESF Forums
http://www.oesf.org/forum/index.php?showtopic=24944
Sharp PDA SL シリーズのページ
http://www.h5.dion.ne.jp/~rimemoon/zaurus/memo_010.htm
クロスコンパイラとして GCC 3.X を使用する
http://www.mit.msn.to/zaurus/gcc3.html
たたかうデジタリアン - XScale なコードを吐くコンパイラを手に入れる
http://www.t12.jp/~ryuta/rwiki/rw-cgi.rb?cmd=view;name=XScale+%A4%CA%A5%B3%A1%BC%A5%C9%A4%F2%C5%C7%A4%AF%A5%B3%A5%F3%A5%D1%A5%A4%A5%E9%A4%F2%BC%EA%A4%CB%C6%FE%A4%EC%A4%EB
それで今は、一応ハードウェア的には換装が成功してるっぽいのだけどOSがCFを認識しなくって、Titchyの再インストールができていない状態。CFの16GBをLinuxカーネルが認識しないのだけど、これはide-cs.cの中にmanfidが直接書き込まれていて、最近のデバイスに追従していないため。Titchyをインストールするには、たぶんide-cs.cにパッチをあててカーネルをコンパイルしなおす必要がある。で、いまはクロスコンパイル環境を整えているところ。
いろいろ参考になったリンク
SL-C3000分解
http://www.ayati.com/kobako/c3bara.htm
Linuxザウルス開発メモ/ハードウェア/C3000HDD換装 - Walrus, Visit.
http://digit.que.ne.jp/visit/index.cgi?Linux%A5%B6%A5%A6%A5%EB%A5%B9%B3%AB%C8%AF%A5%E1%A5%E2%2F%A5%CF%A1%BC%A5%C9%A5%A6%A5%A7%A5%A2%2FC3000HDD%B4%B9%C1%F5
Titchy On Internal 16gb Cf Microdrive Replacement (3200) - OESF Forums
http://www.oesf.org/forum/index.php?showtopic=24944
Sharp PDA SL シリーズのページ
http://www.h5.dion.ne.jp/~rimemoon/zaurus/memo_010.htm
クロスコンパイラとして GCC 3.X を使用する
http://www.mit.msn.to/zaurus/gcc3.html
たたかうデジタリアン - XScale なコードを吐くコンパイラを手に入れる
http://www.t12.jp/~ryuta/rwiki/rw-cgi.rb?cmd=view;name=XScale+%A4%CA%A5%B3%A1%BC%A5%C9%A4%F2%C5%C7%A4%AF%A5%B3%A5%F3%A5%D1%A5%A4%A5%E9%A4%F2%BC%EA%A4%CB%C6%FE%A4%EC%A4%EB
2008-01-18
# Zaurus SL-C3000系にインストールできるDebian GNU/Linux
ここ数日、Zaurus SL-C3000系にインストールできるDebian GNU/Linux「Titchy」のインストールを試みています。インストールプロセスはまだ不安定で、何回か試行錯誤が必要なようだけど、ネイティブDebian GNU/LinuxがZaurusに入れられるのはすごく魅力的。まだ実用環境を作ることができていないのだけど、いまのところ分かっていることをメモ。
- CFタイプのAIR-ADGEカード(AX420N)が使えない。Unknown symbol serial8250_unregister_portと出るので、serial_csのinsmodで失敗しているっぽい。要調査
- CFタイプの有線LANカードが使える(Buffaloの10Mbpsのやつ。LPC-CF-CLT。使えるというか、インストールに必要)
- SDカードにインストーラファイルを入れなければいけない(CFに入れるとダメ)
- ZaurusのUSBポートを使って母艦と「ネットワーク接続」ができる。実用に足るレベルで(追記:Linuxの母艦につなぐといいんだけど、Windowsの母艦につなぐとNG。ドライバを認識できないと出る)。「ストレージ接続」はまだダメみたい
- インストールプロセスの途中で、locale関係の不具合が発生する場合がある。これを避けるため、englishでインストールすると良い
- インストール時だけ、rootのパスワードはアルファベットのみにしたほうがよい。キーマップが変で記号の入力が難しいため
- 英語で面倒だけど本家のページ(http://wiki.neilandtheresa.co.uk/Titchy_Linux)はちゃんと読むべき。必要な情報が書いてある。
- Xを起動すると初回はマウスポインタをキャリプレーションする。ただ、自分はこのキャリブレーションに2回失敗して、キャリブレーションをやりなおしたいのだけどどうすれば良いか分からず困った。キャリブレーションをやり直すには、/etc/ts.confを一度削除すればよい。(Touch Screen conf)
- 右クリックはシフトキーを押しながら画面をタップ
- 一般ユーザーではstartxできない。要追加調査
とりあえずここまで。
- CFタイプのAIR-ADGEカード(AX420N)が使えない。Unknown symbol serial8250_unregister_portと出るので、serial_csのinsmodで失敗しているっぽい。要調査
- CFタイプの有線LANカードが使える(Buffaloの10Mbpsのやつ。LPC-CF-CLT。使えるというか、インストールに必要)
- SDカードにインストーラファイルを入れなければいけない(CFに入れるとダメ)
- ZaurusのUSBポートを使って母艦と「ネットワーク接続」ができる。実用に足るレベルで(追記:Linuxの母艦につなぐといいんだけど、Windowsの母艦につなぐとNG。ドライバを認識できないと出る)。「ストレージ接続」はまだダメみたい
- インストールプロセスの途中で、locale関係の不具合が発生する場合がある。これを避けるため、englishでインストールすると良い
- インストール時だけ、rootのパスワードはアルファベットのみにしたほうがよい。キーマップが変で記号の入力が難しいため
- 英語で面倒だけど本家のページ(http://wiki.neilandtheresa.co.uk/Titchy_Linux)はちゃんと読むべき。必要な情報が書いてある。
- Xを起動すると初回はマウスポインタをキャリプレーションする。ただ、自分はこのキャリブレーションに2回失敗して、キャリブレーションをやりなおしたいのだけどどうすれば良いか分からず困った。キャリブレーションをやり直すには、/etc/ts.confを一度削除すればよい。(Touch Screen conf)
- 右クリックはシフトキーを押しながら画面をタップ
- 一般ユーザーではstartxできない。要追加調査
とりあえずここまで。
# 明言だw すばらしい。
はてなブックマーク - hamasta's bookmark 〜はてなの付加価値の本丸はブックマーク〜 / 2008年01月15日
http://b.hatena.ne.jp/hamasta/20080115#bookmark-7089320
http://b.hatena.ne.jp/hamasta/20080115#bookmark-7089320
ブックマーク、言及、それは自分の参照カウンタが1増えること、参照カウンタがゼロにならなければ、自分というオブジェクトは存在し続けることができる。自分が自分を好きならば、参照カウンタはゼロにならないよ!
2008-01-10
# momoka.cgiを仕様変更したい
momoka.cgiを仕様変更したいとずっと思っているのだけど、いまいち踏ん切りがつかない。去年は「dmf」というユーザー登録型のシステムなんかを作ってみたけど、心理的コストが大きくて乗り換えに失敗した。どうしようなぁ。
ところで(てくるで)、momoka.cgiの特徴の1つは、データがS式の形で保存されていることだ。通常のWebインターフェースで日々の更新やコメント投稿などができる以外に、裏口としてS式を直接編集する機能が、(管理者に対して)提供されている。
なぜこうなっているかというと、一言でいうならスパム対策のためにこうなっている。スパムコメントなどが投稿されたときに、そういった投稿自体が存在しなかったかのごとく、データをメタに編集する仕組みが必要だと考えたので、上記の仕様を採用した。
言うなればS式編集は、管理者がなんでもできるバックドア。で、実際にスパムが多い(少なくともゼロではない)現状において、この機能は大変重宝したといってよいだろう。とりあえずここまで。
ところで(てくるで)、momoka.cgiの特徴の1つは、データがS式の形で保存されていることだ。通常のWebインターフェースで日々の更新やコメント投稿などができる以外に、裏口としてS式を直接編集する機能が、(管理者に対して)提供されている。
なぜこうなっているかというと、一言でいうならスパム対策のためにこうなっている。スパムコメントなどが投稿されたときに、そういった投稿自体が存在しなかったかのごとく、データをメタに編集する仕組みが必要だと考えたので、上記の仕様を採用した。
言うなればS式編集は、管理者がなんでもできるバックドア。で、実際にスパムが多い(少なくともゼロではない)現状において、この機能は大変重宝したといってよいだろう。とりあえずここまで。
# 古代ローマと民主主義
年始に古代ローマを扱ったドキュメンタリのテレビ番組を見たんだけど、あれは面白かったなぁ。塩野七生さん監修のやつ。
あれを見て思ったのは、なんと古い昔から、幾世代にも渡って民主主義を手作りしてきたのかということ。番組中何人もの偉人が紹介されていたけど、そこに紹介されなかった人や、名前しか出てこなかった人の時代にも、幾星霜の人々が民主主義の文化を育んでいることを思って感慨深いものを感じた。
そしてそう感じることで一方、古代ローマ以外の文化圏に、民主主義を安易に導入することに合理性はあるのか?と訝しくもなった。民主主義は、古代ローマという千年の帝国をもってしてローマとその周辺地域に哲学的レベルで政治文化という花を根付かせた。それをよそに植え替えることは、けっこう難しいんじゃなかろうか。またそれが正しいことなのかも分からない。
あれを見て思ったのは、なんと古い昔から、幾世代にも渡って民主主義を手作りしてきたのかということ。番組中何人もの偉人が紹介されていたけど、そこに紹介されなかった人や、名前しか出てこなかった人の時代にも、幾星霜の人々が民主主義の文化を育んでいることを思って感慨深いものを感じた。
そしてそう感じることで一方、古代ローマ以外の文化圏に、民主主義を安易に導入することに合理性はあるのか?と訝しくもなった。民主主義は、古代ローマという千年の帝国をもってしてローマとその周辺地域に哲学的レベルで政治文化という花を根付かせた。それをよそに植え替えることは、けっこう難しいんじゃなかろうか。またそれが正しいことなのかも分からない。