メッセージ。 - diary
2008-01-31
# pxa27x_udc
Titchyのサイトからダウンロードしてきたソースには、pxa27x_udcのコードが入っていないみたい。パッチをあてなきゃだめっぽいぞ。
パッチhttp://pdaxrom.svn.sourceforge.net/viewvc/*checkout*/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch?revision=210
情報源
【ZERO3】リザぽん化プロジェクト 002【Linux】
http://pc11.2ch.net/test/read.cgi/linux/1185862665/101-200
110 :login:Penguin:2007/08/04(土) 22:36:11 ID:l7zCdX5Y
>>80 開発乙
なるほど、幾つか物はあるのか... > USB
とりあえず漏れも調べた範囲で見つかったのを貼っとくお
ttp://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel26/drivers/usb/gadget/pxa27x_udc.c
handhelds.org の pxa27x_udc driver. 現時点で最終更新は 2007/7/11
ttp://lists-archives.org/linux-kernel/13188261-pxa27x-udc-driver.html
LKML に 2007/6/8 に流れた Rodolfo Giometti による 2.6.22-rc3 へのパッチ。
ttp://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2006-September/035833.html
linux-arm-kernel@lists.arm.linux.org.uk に流れた 2006/9 の pxa27x_udc の現状について
ttp://www.rpsys.net/openzaurus/patches/archive/usb_pxa27x_udc-r0.patch
2005/12 月の openzaurus の pxa27x_udc patch
kernel patch が公開されたらこの辺をハックしてみたいにゃー
143 :login:Penguin:2007/08/07(火) 23:08:48 ID:dKJ9qwit
>>140 サンクス。こいつだな。
ttp://pdaxrom.svn.sourceforge.net/viewvc/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch
中身はざっと見た限りでは、 >>110 の OpenZaurus のやつを更新したやつか。
いくつかの関数定義が変わっているのと、RNDIS 回りで関数が一つ追加されている。
パッチの日付は2006/12/16
パッチhttp://pdaxrom.svn.sourceforge.net/viewvc/*checkout*/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch?revision=210
情報源
【ZERO3】リザぽん化プロジェクト 002【Linux】
http://pc11.2ch.net/test/read.cgi/linux/1185862665/101-200
110 :login:Penguin:2007/08/04(土) 22:36:11 ID:l7zCdX5Y
>>80 開発乙
なるほど、幾つか物はあるのか... > USB
とりあえず漏れも調べた範囲で見つかったのを貼っとくお
ttp://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel26/drivers/usb/gadget/pxa27x_udc.c
handhelds.org の pxa27x_udc driver. 現時点で最終更新は 2007/7/11
ttp://lists-archives.org/linux-kernel/13188261-pxa27x-udc-driver.html
LKML に 2007/6/8 に流れた Rodolfo Giometti による 2.6.22-rc3 へのパッチ。
ttp://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2006-September/035833.html
linux-arm-kernel@lists.arm.linux.org.uk に流れた 2006/9 の pxa27x_udc の現状について
ttp://www.rpsys.net/openzaurus/patches/archive/usb_pxa27x_udc-r0.patch
2005/12 月の openzaurus の pxa27x_udc patch
kernel patch が公開されたらこの辺をハックしてみたいにゃー
143 :login:Penguin:2007/08/07(火) 23:08:48 ID:dKJ9qwit
>>140 サンクス。こいつだな。
ttp://pdaxrom.svn.sourceforge.net/viewvc/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch
中身はざっと見た限りでは、 >>110 の OpenZaurus のやつを更新したやつか。
いくつかの関数定義が変わっているのと、RNDIS 回りで関数が一つ追加されている。
パッチの日付は2006/12/16
# Titchy Linuxで母艦とUSB接続
書き忘れていたのだけど、Titchy Linux用にカーネルをコンパイルしなおしてみると、母艦とUSB接続ができなくなっていたのだった。g_etherというモジュールをロードしてifconfigをすればつながるはず(元々のTitchy Linuxインストール状態では母艦とつながった実績がある)なので、これについてもカーネルのパラメータを調整する必要があるっぽい。で、今調べているのだけど。とりいそぎ有用そうなリンクが見つかったのでメモ。
まず、/var/log/messageに出るエラーメッセージは以下。
Jan 31 01:29:40 honoka kernel: ether gadget: using random self ethernet address
Jan 31 01:29:40 honoka kernel: ether gadget: using random host ethernet address
Jan 31 01:29:40 honoka kernel: usb0: Ethernet Gadget, version: May Day 2005
Jan 31 01:29:40 honoka kernel: usb0: using dummy_udc, OUT ep-b IN ep-a STATUS ep-c
Jan 31 01:29:40 honoka kernel: usb0: MAC 2e:48:aa:45:97:79
Jan 31 01:29:40 honoka kernel: usb0: HOST MAC 9e:65:cd:67:a2:d4
Jan 31 01:29:40 honoka kernel: usb0: RNDIS ready
Jan 31 01:29:40 honoka kernel: usb 1-1: new high speed USB device using dummy_hc
d and address 3
Jan 31 01:29:41 honoka kernel: usb 1-1: rejected 2 configurations due to insuffi
cient available bus power
Jan 31 01:29:41 honoka kernel: usb 1-1: no configuration chosen from 2 choices
Jan 31 01:29:41 honoka kernel: usb 1-1: 100mA is over 8mA budget for port 1!
Jan 31 01:29:41 honoka kernel: hub 1-0:1.0: 92mA over power budget!
「configurations due to insufficient available bus power」というキーワードをベースに調べてみて見つかったリンク。これはすごい。
Re: [linux-usb-devel] ethernet gadget problem
http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg51030.html
OESF Forums [Powered by Invision Power Board]
http://www.oesf.org/forum/index.php?act=Print&client=printer&f=155&t=24589
上記1つ目のリンクによると、Zaurusに搭載されているCPU(XScale PXA 272だっけかな?)用にパラメータを設定して、pxa2xx_udc.koというモジュールを作ってはどう?(そしてg_etherの前にロードしてみよ)ということらしい。たしかに、Titchyで配布しているzaurus-hardare-support.debには、pxa27x_udc.koというモジュールが含まれている。(ちょっとファイル名が違うけどこれだろう。)そしておいらがコンパイルしたカーネルにはこのモジュールができていない! くわっ!
以下はg_etherにかんする基本的な情報。
Titchy Linux/Tips - Wiki
http://wiki.neilandtheresa.co.uk/Titchy_Linux/Tips
一般的なペーストビン - 無題 - ポスト番号 319910
http://ja.pastebin.ca/319910
まず、/var/log/messageに出るエラーメッセージは以下。
Jan 31 01:29:40 honoka kernel: ether gadget: using random self ethernet address
Jan 31 01:29:40 honoka kernel: ether gadget: using random host ethernet address
Jan 31 01:29:40 honoka kernel: usb0: Ethernet Gadget, version: May Day 2005
Jan 31 01:29:40 honoka kernel: usb0: using dummy_udc, OUT ep-b IN ep-a STATUS ep-c
Jan 31 01:29:40 honoka kernel: usb0: MAC 2e:48:aa:45:97:79
Jan 31 01:29:40 honoka kernel: usb0: HOST MAC 9e:65:cd:67:a2:d4
Jan 31 01:29:40 honoka kernel: usb0: RNDIS ready
Jan 31 01:29:40 honoka kernel: usb 1-1: new high speed USB device using dummy_hc
d and address 3
Jan 31 01:29:41 honoka kernel: usb 1-1: rejected 2 configurations due to insuffi
cient available bus power
Jan 31 01:29:41 honoka kernel: usb 1-1: no configuration chosen from 2 choices
Jan 31 01:29:41 honoka kernel: usb 1-1: 100mA is over 8mA budget for port 1!
Jan 31 01:29:41 honoka kernel: hub 1-0:1.0: 92mA over power budget!
「configurations due to insufficient available bus power」というキーワードをベースに調べてみて見つかったリンク。これはすごい。
Re: [linux-usb-devel] ethernet gadget problem
http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg51030.html
OESF Forums [Powered by Invision Power Board]
http://www.oesf.org/forum/index.php?act=Print&client=printer&f=155&t=24589
上記1つ目のリンクによると、Zaurusに搭載されているCPU(XScale PXA 272だっけかな?)用にパラメータを設定して、pxa2xx_udc.koというモジュールを作ってはどう?(そしてg_etherの前にロードしてみよ)ということらしい。たしかに、Titchyで配布しているzaurus-hardare-support.debには、pxa27x_udc.koというモジュールが含まれている。(ちょっとファイル名が違うけどこれだろう。)そしておいらがコンパイルしたカーネルにはこのモジュールができていない! くわっ!
以下はg_etherにかんする基本的な情報。
Titchy Linux/Tips - Wiki
http://wiki.neilandtheresa.co.uk/Titchy_Linux/Tips
一般的なペーストビン - 無題 - ポスト番号 319910
http://ja.pastebin.ca/319910
2008-01-30
# TitchyでAIR-EDGE動くようになった!
カーネルを何度かコンパイルしているうちに、AX420Nが動くようになった!
カーネルパラメータをいろいろいじったけど、結局のところ原因はカーネルパラメータではないような気がする。「unknown symbol」というエラーメッセージからPCMCIA関連を調べてみて、System.mapファイルが/boot/にインストールされていなかったことが原因なんじゃないかなぁと予想中。今動いているカーネルのソースを夜にでもサーバーに置くこと。>自分
カーネルパラメータをいろいろいじったけど、結局のところ原因はカーネルパラメータではないような気がする。「unknown symbol」というエラーメッセージからPCMCIA関連を調べてみて、System.mapファイルが/boot/にインストールされていなかったことが原因なんじゃないかなぁと予想中。今動いているカーネルのソースを夜にでもサーバーに置くこと。>自分
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