今日は寝る.
*Plastic Quad Flat Packeage
ADM5120Pのピン配列が書かれたデータシートが無い.
データシートに殆どの仕様が書かれているのだけど,
ピン配列はBGAパッケージのADM5120だけで,PQFPのデータが無い.
仕方ないから,誰かにメールで聞いてみようかと思っていたら,
BR6104Kというルータの基盤の写真を発見.
写ってます.USB用と思われるパターンが…(部品は載ってないですが).
完全には分かりませんが,パターンは171〜175番ピンあたりに
伸びています.確かにそこには何も繋がっていない.
必要なのはクロック入力1本と,USBの信号線はポートが2つあるので4本.
かなり絞れました.
ちなみに,BR6104Kは私が弄っていたLinuxのソースをダウンロードしてきた
会社が出してる製品です.
…で,データシートでUSBを動かすために必要な周辺の回路を
調べようと思ったら……ピン番号載ってるし!!
今回はメーカーからダウンロードできる最新版ではなくて,
別のところに保存されていたものを開いたのです.
Rev1.14には書いてあるのに,最新のRev1.16では消えている.
なんで消すんだ.
とりあえず,48MHzのオシレータをどこかから持ってこないと.
部屋に落ちてないかなぁ….
あと,AMDじゃないフラッシュが乗ってる場合もあるみたい.
またカーネルが大きくなるなぁ.
とりあえず,ピン配列が分かったので,GPIOで外部回路を
制御して遊ぶかな….
余ってるのは4本か.LEDが繋がっているのも使っちゃえば,
16ビットは確保できるなぁ.
気のせいかもしれませんが,LinuxにしてからADM5120Pのチップが
熱くならなくなった気がするのですが,気のせいかな.
とりあえず,3日と5時間連続動作してます.
そろそろ,また弄りたいのですが…やっぱもう一つ欲しい.
とりあえず,昨日買ったInterfaceの11月号を読む.
ブートローダとか組み込みOSの話とか,ここ2週間で遊んだ内容ですね.
YAMONとかJTAGの話とかも出てくる.ちょっと遊んでみたいな.
MIPSってCPUアーキテクチャだけでなく,メモリマップとかも
ある程度規定してるんですね.
とりあえず,メモリが2箇所にマッピングされていた理由が分かった.
…ルータで遊ぶ前に勉強しとけよと言われそうですが.
あと,迷宮百年の睡魔も買ってきたので読み始める.
*本と中古のルータを買う
BBR-4MGをもう一台買おうかと思ったけど,CoregaのBAR SW-4Pが中古で1500円だったので,
そっちを買う.金属製のケースに入っていて見た目ではBBR-4MGより高級感あります.
帰って開けて見ると,CPUらしきチップはMSP2000.
後はAMDの1MBのフラッシュと,RAMは2MBx2=4MBかな?
型番の見た目だけで判断した値なので,気が向いたらちゃんと調べます.
あと,基板をみると,いかにもMiniPCIがオプションで付きます,みたいなパターン.
イーサネットは,CPUとは別に実装されてるのかな?
ヒートシンクが付いていて確認できませんが.
基板の端に,いかにもデバッグ用ですというパターンがあるので,
こいつから出てくるデータを見れば,何か出来そう.
これはJTAGとかいうものかな?普通のURATもついてそうですが….
一昔前のルータだけあって,メモリは少なめですね.
Linuxを動かすにはギリギリ…といったところでしょうか(動かす気なのか…).
個人的には,BBR-4MGの基板の方が好きだなぁ.使われてもいないパターンのせいで,
ごちゃごちゃしすぎている.
今日は眠いので,開けるだけで終わり.
なぜか夜中に呼ばれて,クレープを食べにTGCHに.
なんで午前1時過ぎにクレープ焼いてるんでしょうか…….
そのあと,明け方まで話をしているし.
IPAがToyocryptの解読に成功
したらしいですね.
高価な機材を使ったとはいえ,27分ですか……凄い.
読み進めてると,未踏ソフトウェアで光成滋生氏って…あの人ですよね?
MP3とか使う人の多くがお世話になったあの人です.
もうGoogleも7歳ですか.
いきなりケーキが出てきたので,今日って何の日だっけ?と思ってしまいました.
…同じようなことをどこかで書いたと思ったら3年前ですね.
*断片化
NTFSに同時に大きなファイルを書き込んでいると,断片化が凄いなぁ.
今後,ファイルサイズがどう変化するか予測して領域を確保するような
アルゴリズム入れてくれないものだろうか….
根本的な問題だけど,ファイルをストリームとして扱うのが気に喰わない.
ストリームとして扱えば,標準入出力やネットワークもファイルと同等に扱えて
便利なのだろうけど,GUIなOSだとあまり恩恵を授かれないのも事実.
やっぱ,ファイルはストリームじゃなくて領域でしょう.
Memory mapped fileが目的の機能なのかな….
*Linux on BBR-4MG
こっちで公開.
*そういえば
Wikipediaって結構便利だけど,どうも内容に偏りがある上,基本的なところで
怪しいことが書いてあることがかなりあります.
どうでも良いようなことをやたら詳しく書いてあったりして面白いのだけど….
今日気になったところだと,バスの解説が怪しい.
メモリやCPUを繋いでるのは外部バスで,内部バスって普通はプロセッサ内のバスのことを
言うと思うのだけど.
「コンピュータ」ってのがCPUのことで,
「外部機器」というのがメモリやI/Oを指しているのだとしたら間違ってないのか.
-
天気:晴れ>曇り
-
今日も昼過ぎまで寝る
-
IMEで日本語を変換するときは画面を見てなきゃいけないのが面倒くさい
-
BBR-4MG Linuxサーバ
最近,VAIOはLinuxをいじるためにFreeBSDで起動しているので,
Windows上での作業はデスクトップでやってるのですが….
VAIOの横にデスクトップのキーボードを並べて作業してると,
キーピッチが違うので物凄く打ち辛い.キー配置も違うし….
数十秒すれば慣れるのですが,慣れたと思ったらまた隣の
キーボードでキーを叩かなきゃならないので大変.
*Linux on BBR-4MG
とりあえず,安定して動いてるしやること無いので使えるコマンドを増やしておく.
mkdir,rmdir,ddを追加.
あと,Webサーバも入れてみる.
上のリンクからページが見れます.…前に作ったヤツを少し書き換えただけですが(^^;
データはtftpでRAMディスク上に転送してあるので,再起動すると消えますが.
CGIも使えるようになったので,アクセスログとかとってみたりする.
まだ結構余裕があるので,syslogとtelnetdくらいは入れようかな.
たぶん,暫くしたら消えます.というか,固定IPじゃないので
すぐアクセスできなくなるかもしれませんが.
(リンク消しました.とりあえず10/3時点でのIPは 220.9.80.88)
FreeBSDでmdconfigでRAMディスクを作ったり消したりしてると,
shutdown時にsyncerがいつまでたっても0を出力しなくて,
正常にumountできなくなるのは何がいけないんだろう….
ちゃんと調べてないので原因は他にあるかもしれないけど.
ところで,kswapdって必用なのかな.
不要なら消したいけど簡単に消せるものなのかなぁ.
今日は昼まで寝て,午後は昼寝.
起きたら外が暗いし…….
*Linux on BBR-4MG
Linux入れて使ってますが,特に問題ないみたいです.
むしろ,なぜかいきなり再起動したりして切断される
元のファームウェアより具合が良い.
Linuxのiptablesってチェインの途中にルールを入れたい時って,
それ以降を削除して追加しなおさないといけないのかな….
BSDのipfwに慣れてると,ちょっと分かりづらい.
でも,natもまとめて管理できるのは良いな.
ふと,initrd_read()関数を見たら,
initrd_endが極端に小さいときに,intがアンダーフローして,
leftが巨大な値になって終端チェックを回避できるっぽい.
さらに,initrd_startよりinitrd_endが小さければ
メモリを開放しない.
というわけで,initrd_endを0にセットしてみると,
他の部分を書き換えなくても起動するようになりました.
…こんな妙な方法で良いのかな?
今日は近くの神社のお祭りのようで外が賑やかです.
*Linux on BBR-4MG フラッシュメモリから起動
今日はフラッシュメモリからの起動に挑戦.
tftp経由で/dev/mtd〜に書き込み.
カーネルの本体は起動用のコードをバイナリエディタで付け加えて(ぇ?),
gzipで圧縮して,元のファームウェアに上書き.
決められたアドレスにカーネルを配置してジャンプさせるコードが必要なことに
気付いたけど,再起動するのが面倒だったので,Windows上で書くことに.
Windows上で動くMIPSアセンブラは無いのかと思って少し探したのですが,
見つからない.逆アセンブラはあるのに….
たった60バイトのプログラムですが,書くのに30分近くかかりました(笑).
__rd_startを参照している場所を探すと,
ポインタをグローバル変数のinitrd_startに代入している.
とりあえず,arch/mips/am5120/prom.cで
initrd_startとinitrd_endをフラッシュメモリ上のデータのアドレスに書き換え.
kernel/setup.cの中でメモリの範囲をチェックしているような….
実行してみるとやっぱり,「initrd extends beyond end of memory」とか言われました.
initrdのRAMディスクのイメージに任意のアドレスを指定する方法は
ないのかなぁ.ソースを読む限りカーネルの後ろの方に
何か書いておくと,そこの設定を読んでくれそうなのだけど.
どっちにしろ,RAMの範囲外にあるものは使えなさそうだけど….
というわけで,今度は,もっと後に呼ばれそうな
init/main.cの中に書いてみることにする.
今度は,展開できる…っと思ったら展開した直後にpage_alloc.cの中でエラー.
これも半ば予想通りだったので,rd.cの中で
メモリを開放しようとしてるところをフラッシュメモリからの
起動の時は呼ばないように.
これで起動できました.
……絶対に何かが違います.もっと普通の方法で解決したいのだけど….
とりあえず,再起動しても,ちゃんとLinuxが自動で起動します.
しばらく,怪しいながらもDHCPが動いていたのに,
なぜかまったくパケットが返ってこなくなってしまった.
何か消してはいけないものを消してしまったかな.
もしかして,動作にはCONFIG_UNIXが必要?
ドメインソケットを使ってるのかなぁ.
とりあえず有効にしたらまともに動いたけど,
今度はまたカーネルサイズがオーバー気味.
zipの圧縮率を上げたらギリギリ入りました.
ソース見て解決できそうだったらまた外してしまおう….
気が向いたらWebサーバでも動かすかなぁ.
ファイルシステムを別の領域に書き込むようにしたおかげで,
こっちはかなり余裕ができました.まだまだ入ります.
カーネルもモジュールを外に出して起動してから
組み込んだほうが良いかもしれない.
Linux上で作ったファイルは再起動すると消えるので
フラッシュメモリにバックアップする手段を考えたほうが良いかもしれない.
フラッシュメモリ上に適当な領域作っておいてマウントするればいいか….
ってなわけで,そろそろBBR-4MG改造週間は終わりです(一週間も使ってしまった…)
*めんどい
コンピュータで何かするときって,
6割の時間が人間とコンピュータのインターフェイスで消費されて,
3割がコンピュータの反応を待っている時間で,
実際に必要な時間って1割くらいだと思うのだけど.
10年くらいしたら改善されているかな.
*Linux on BBR-4MG NAT動いてます
NAT動きました.今はLinux経由でインターネットに繋いでいます.
ルータを再起動したりすると,もとのファームウェアに戻りますが….
BusyBoxを最新の1.01にする.
完全に同じオプションで無いので確かではないですが,
最新版の方がサイズが小さいですね.
まだ実際には転送してませんがtftpも動きそうです.
udhcpもbusyboxに組み込まれたものを使うことにする.
さらにカーネルモジュールを別に入れておく余裕はない気がするので,
insmodとかも消す.
これで,40KB以上サイズが小さくなりました.
圧縮した状態だと25KBくらいですが….
あと80KB小さくなればBBR-4MG用ファームウェアが作れるのだけど(笑).
やっぱり一度,シリアル経由でイメージを転送して,
Linuxからフラッシュメモリの使ってない領域にデータを書いて
次回からそっちを使って起動するようにするのが正攻法かな.
そうすれば,webサーバくらいは入れられるかもしれない.
dnrdってresolv.confを参照してくれないんだ.
IPを設定しなければいけないということは,
DHCPのスクリプトに書いておくのが良いかな.
そろそろ,NATを動かしてみようかと思って
パケットのフォワードはどうやるんだろうと思って調べると,
/proc/sys/net/ipv4/ip_forwardにって
CONFIG_SYSCTLなんかカーネルが大きくなるので入れてません.
ネットワークの設定変えるためだけに入れなければいけないの?
何処を見ても,sysctlするか,/proc/sys/net/ipv4/ip_forwardに
設定を書き込めと書いてある.
とりあえず,SYSCTLを有効にしてカーネルをコンパイル.
ちゃんとパケットを転送してるようです.
試しに,WANポートをインターネットに繋いで,
DHCPでIPを貰って,NATを設定.
ついでに,dnrdを起動.
普通にインターネットに繋がります….
でもカーネルサイズが25KB増加.あうぅ.
圧縮してもカーネルが512KBを超えている…これじゃBBR-4MGの
ブートローダから起動できない.
ってか,デフォルトでIP forwardingを有効にする
設定は無いんですか?
それかCONFIG_SYSCTが無くてもsysctl(3)が使えたりしないのかな….
よく分からないので,net/ipv4/devinit.cを書き換え.
これでカーネルサイズを維持できる.
それにしても,何でBBR-4MGはフラッシュメモリ領域のど真ん中に起動パラメータがあるかな….
使うときはそこを避けて使わないといけない….
製造番号だとかデフォルトMACアドレスとかの情報が書かれてるだけだから,
このデータは壊しても動いてくれると思うのですが….
アクセスしやすいようにMTDのパーティションで領域を分けておく.
Edimaxからダウンロードしたソースを使っているのだけど,
ずいぶんとメモリを贅沢に使う仕様ですね….
まぁ,こっちの製品はBBR-4MGの倍のメモリを積んでるのですが….
フラッシュにインストールできそうだし,そろそろ手順を公開して投げだすかも.
いい加減,疲れたし.
*キーボードのM
昨日からVAIOのMキーが調子悪い.
キーの上の端を押してキーが斜めに押されると反応しない.
キーの真ん中を叩けば反応してくれるから良いのだけど,
急いで打つときは,決まって上の方を叩いているので,
コンパイルエラー…と思ったらmがいくつも抜けてたり.
ちゃんと画面を見ながら書いてない証拠ですね.
一応視線はディスプレイの方を向いているはずなのですが…
文字を打っているときは何も見ていないのでしょうか.
キートップを外して掃除したら直るかな.
*NTFS
名前付きパイプあたりを拡張してユーザアプリケーションが
ファイルシステムを持ててディレクトリにマウントできれば
面白いのだけどなぁ.
NTFSにはそれに近い機能があったような気もするし,
OLEを使えば近いことができそうだけど.
NTFSの機能を積極的に使えば,ファイルの扱いが一新すると思うのだけど,
まったくそういったソフトが出てくる気配が無い.
そもそも,MicrosoftがNTFSの妙な機能を使ってないからなぁ.
まぁ,そんなもの使われたら他のファイルシステムと互換性が
無くなって気楽にWindows以外にファイルを持ち出せなくなりますが….
-
天気:曇り
-
スイッチドライバあたりを色々
-
日本応用磁気学学会のお弁当の余りを貰って食べる
夕方,Safiiから電話があって生協に学会の余りのお弁当を貰いに行く.
1つ余ったのでですが,成り行きで私が2つ食べれました.
お腹いっぱい.
デザートは缶詰のパイン.
*Linux on BBR-4MG
DHCPサーバはどうも怪しいなぁ.
IPを貰える時もあるけど,ipconfig /renewしてもくれない.
udhcpdの設定が間違っているんだろうか….
InfineonのデータシートにはADM5120Pの方の情報が足りないので,
久しぶりにADMTekのサイトを見に行こうとしたのですが,
ADMTekのサイトが無い.
InfineonってADMTekの新しい社名だったのか.
それとも買収されたのかな.
ADMTekのPDFも内容は同じだった….
PQFP版のピンの配列が載ってないのは仕様ですか?
どうもネットワークスイッチが怪しいと気付く.
全てのポートがeth0に繋がってただのハブになってそうな雰囲気.
とりあえず,データシートと基盤のパターンとソースコードを
見比べる.
admswconfigを入れて使おうと思ったけど使えない.
どうもioctlの結果が怪しい.
ソースを呼んでみると,何処にもそんなコマンドありません.
…もしかしたらと思って,2.6のカーネルのソースを
ダウンロードしてみるとこっちにはある.
とりあえず,頻繁に変更するものでもないし,
設定はハードコーディングで.
ついでに,MACアドレスをフラッシュメモリの
設定から読むようにする.
カーネルドライバは好き勝手なアドレスを読み書きできるので
なんだかうれしいですね.
って,なんかMACアドレスに妙に違うし…と思ったらこれはLAN側のMACアドレスだ.
BBR-4MGってデフォルトでは,保存されているのはLAN側のMACアドレスだけで,WAN側のは
そのアドレスに+1して作ってるみたいですね.
怪しかったのは,実際に基盤に実装されているポートと,
ドライバの初期化データが合っていなかったのが原因だった.
eth1にルータのWANポートを割り当ててDHCPでY!BBからIPをもらうところまで
いきました.
最初DHCPクライアントがおかしいと思ったら,
スクリプトがすごいことになってた.
とりあえず,その場で書き直し.
udhcpcのサンプルのスクリプトを使ってみたら,DNSも設定されて名前解決も出来ますね.
あと,CONFIG_PACKETが無効だとudhcpcは動かないのかな?
tftpを動かそうと思ってソースを追ってみたら…
何かが違う.明らかに普通のtftpクライアントでは無い.
多分,ファームウェアの更新用にカスタマイズしたものなんだろう.
オリジナルのソースを持ってきて上書きするか….
BBR-4MGにそのまま書き込めるファームウェアを作ってみようか….
試してみたらカーネル部分が圧縮して500KB強なので,
プログラム領域にギリギリ収まる.
Web用に使われてるデータ領域は256KBなのだけど,
ファイルシステムを圧縮したデータは360KB….
あと100KB減らせればOKなのだけど…これ以上は無理です.
むしろ,今のところ最低限のものしか入れてないので,
これにwebサーバ入れたりすると….
ダウンロードしたソースがルータ用に色々カスタマイズされててやりにくいので,
ユーザーランドくらいはオリジナルのものに置き換えた方が良いかなぁ.
BusyBoxも最新のにしてみたいし….
BusyBoxのサイトで調べたら,udhcpって最新のBusyBoxに入ってる.
これでまた容量を縮小できるかも.数KBだろうけど….
*Linux on BBR-4MG
今日はフラッシュメモリにMTDドライバでアクセスできるようになりました.
do_map_probe()でamd_flashにディバイスのアドレスを渡してやればOKだった.
Linuxいじっている人にとっては常識かもしれませんが…….
とりあえず,/dev/mtdを読むとフラッシュの内容が出てきます.
書き込みは怖いのでもう少ししてから試す予定.
今回は結局使わなかったけど,jedec_probe.cはlinux/init.hが
インクルードされてないせいでコンパイル通らなかった.
なんか,よくpanicすると思ったら,prom.cでRAMのサイズが16MBになってた.
BBR-4MGのRAMは8MBです.で,8MBに直して起動したら.
「Kernel panic: Out of memory and no killable processes...」
ふぐぅ.今までは運良く動いてたのかぁ.
RAMDISKをもっと小さくしよう.とりあえず3MBに.
ついでに,カーネルからも色々外す.
ちょっと不便になるくらいは我慢しよう.
/dev/ptsも無くていいか.
これでメモリには大分余裕ができたかな.
ファームウェアとしてフラッシュに書き込むには,
もっと小さくしないとなぁ.
BBR-4MGのブートローダを書き換えれば余裕で入るのだけど,
取り返しの付かないことになる可能性があるので躊躇してます.
なんで,2MBあるのに,プログラム用の領域が512Kなんだ….
Linuxカーネルを二つに切って,最初の部分だけロードさせて
カーネルの頭に後半を何処からかコピーするコードを入れてみようか.
標準のファームウェアもそろそろ無理をしているので,
フラッシュメモリのレイアウトを変更してくれたりしないかなぁ.
ファームウェアの互換性の問題で無理か….
(……いや,記憶が確かならブートローダもwebインターフェイスから
アップデートできそうなコードが入っていたぞ.これは気のせいかもしれないけど)
DHCPサーバも動かしてみる.
設定ファイルが無いといわれたので,cat,tail,headあたりを駆使して
その場で書いてみる.
…ってviあるじゃないか.普通に使えます.
DHCPサーバも動きました.
でもルータとしては動いてないので,あんまり意味は無い.
それよりもmkdirやchmodが無い状態だと結構つらい.
BusyBoxのコマンド増やすか….
次は,tftpを使えるようになれば良いかな.
Webサーバは転送するイメージのサイズの都合上,
tftpサーバ上にあるものをコピーして使うのが現実的かも.
起動時の操作がだんだん複雑に….
ソースを色々といじってておかしいと思ったら
…なんで初期化子付きで宣言した配列の要素の数がdefineされてるかな.
そんなにsizeof嫌いですか.
なんか,そこらじゅう弄っていると,何処を弄ったのか忘れそう.
個人的な作業でもソースファイルのバージョン管理が必要かも.
BBR-4MGはLinuxの走るネットワーク対応のマイコンボードとして遊ぶのが
正しい使い方です(嘘).
昼過ぎに起きてBBR-4MGを少し弄って,TGCHのところに.
前期の成績の発表.キャンパス情報システムで確認.
ソフトウェア工学だけ良だ….殆ど優は付けないといっていたから予想通りだけど.
毎回,締め切り当日にギリギリ仕様を満たすプログラムを提出してたのがいけなかったか.
今日はTGCH邸で焼肉.
*Linux on BBR-4MG
コンソールを開けないのは,/dev/consoleが無かったからだった.
何で作られないのかスクリプトを読んでみると,
mknodに-mオプションが指定されてる(ありがち).
mオプション消してchmodを追加.
というか,苦労している殆どの問題はLinuxとBSDの違いだったりして….
カーネルはこんな感じか.
今度はinsmodがエラー吐いてる….ってIPN2220AP.oて無線LAN用のモジュール?
取り合えず,起動しないように.
/etc/init.d/rcSを消したらエラーが出たので,空のスクリプトにしておく.
今度はエラーは出ないけど何も表示されない.
というわけで,さっきの/etc/init.d/rcSで/bin/ashを起動.
本当は別の所に書くのかも知れないけど,
私はLinux使いじゃないのでスクリプトの作法が全くわかりません.
とうとう,シェルが動きました.ここまで3日もかかった.
/procが空だったので,fstabを確認.
設定はされているところをみると,マウントされてないのかな.
というわけで,先ほどのスクリプトにmount -aを追加.
fstab見たらコンソールの設定もあったので,そっちを使うように.
ifconfigするとloしかない.ifconfig eth0 upしたら見えるようになって,
IPを設定したら外と通信できるのは確認しました.
フラッシュメモリを使えるように色々弄ったけど上手く動かない.
物理メモリ上にマップされてるから,最悪読むことはできるだろうけど,
書き込めないとなぁ.
意外と色々なことがあって面倒くさい.
組み込みLinuxだからと甘く見てたかな.
ところで,/devにネットワークインターフェイスが無いけど,
いいのかな?
最近,Linuxが少しずつ分かってきました.
やっぱりOSを手っ取り早く知るためにはソースを弄りながら動かして見るのが一番ですね.
大学の授業でTurboLinuxを使ったときは,結局よく分からなかったし.
シリアルポートでの転送中にデータが送れなくなって失敗することがあるのは,
私が作ったレベル変換回路がおかしいのかな.
2MB近いデータを転送するのに5分以上かかるので,途中で失敗するのは困る.
というか,シリアルポート経由でカーネルイメージを転送してデバッグって無理があるなぁ.
起動してからならtftpでデータ送れるのに.
作業の半分の時間は転送を待ってる時間な気が.
…帰ってきてからちょっと弄って起動したときのログ.
tftpは動きませんでした.メモリが足りないのかも.
pingは動きます.
今日は焼きプリンとアイス.
*Linux on BBR-4MG 起動はしました…
とりあえず,昨日の問題はやっぱり違うフラッシュメモリドライバが使われてたのが原因.
カーネルからドライバを外しておく.
BBR-4MGに載っているAM29LV160DBはAMDのドライバでいけそうなので後で試してみよう.
今度は,RAMDISKにイメージを展開するところでpanic.
内容は「Data bus error」.普段なら嫌だけど,見慣れた単語がなんだか嬉しい(ぇ).
圧縮されたイメージが正常じゃないのかなぁ.
FreeBSDで作ってるのでLinuxと何か違う可能性もある.
それとも,間違ったアドレスから展開しようとしているのだろうか.
ソースにデバッグ用のprintk()を入れてpanicする場所を探す.
やっぱりbzippa2の展開で刺さっている模様(そういえば,普段「刺さる」って表現見ないね).
イメージはカーネルに埋め込んだものをちゃんと展開している.
ただ,イメージの読み書きではなくて,展開自体で失敗している.
gzipを使うように変更しても症状は同じ.
これは,メモリ上のイメージが破壊されていると見るべきですね.
700KBくらいまでは正常に展開できているようなので,
圧縮したファイルシステムが700KB以下になるように色々消して挑戦.
…起動しました.
ただし,何も出来ません.
一応,最初に起動したときのログ.
デバッグ用のメッセージの消し忘れがある……気にしない.
makeしてるのがroot@vaioなのは仕様です.
(スクリプト中でmdconfigしてる関係上rootでやってました)
次は,コンソールを使えるようにするか.
ここまできたら,シェルが動いて自由にコマンド打てるところまですぐいけそう.
というか,ルータを弄っている間は,インターネットに繋がらないので不便.
もう一つ欲しい.
そもそも,これで動いても電源入れたら自動的に起動するようになるまではまだまだ.
最終目標はUSBで外付けHDDとかを繋いで本格的なサーバにすることかな
(USBポート無いけど,ハードウェアの問題はたぶんどうにかなるでしょう…).
LinkStationはちょっと高価で手が出ないから,これで出来れば嬉しいのだけど….
なんか,イメージの中に見覚えのある部分がかなり出てくるのだけど,
BBR-4MGのファームウェアって本当にGPLなコードを使ってないのかなぁ.
疑いすぎですか?
*そういえば
PETはプラスチックに含まれるんでしょうか.熱可塑性だし.
愛知万博の会場内に設置されてたゴミ箱の中国語の分類だと,
PETとプラスチックは区別されてなかった気がする.
よく覚えてませんが,プラスチックは可塑性の材料(塑料だっけか)で,ペットボトルは
それで作られた瓶といった字面だったような….
夜中は涼しくなって,大分マシになりましたが,夕方は暑いです.
*「無果汁」の真相
夕方,アイスを買いに行く.
明治の「スーパーカップ」のヨーグルト味ですが,
原材料名にオレンジ果汁とかレモン果汁と書かれているのに
種類別は「ラクトアイス 無果汁」.
果汁入ってるんじゃないんですか?
一緒に買った,バニラの方は原材料に果汁は入ってないのですが,
何処を見ても「無果汁」の表示はありません.
「無果汁」というのは,果汁が入ってないことを言うんじゃなかったのか….
まさか,間違いではないだろうと思って調べてみると.
果汁が5%未満の場合は,果汁の濃度を百分率で明記するか「無果汁」と
表示しなければならないということらしい.
つまり,この表示は間違いではなくて,正しいものだったんですね.
でも,ちゃんとパーセンテージ書いたほうが変な詮索されないで済むと思いますよ.
いや,私はこの表示が気にならなければバニラの方だけ買ってましたが…….
公正取引委員会の
「無果汁の清涼飲料水等についての表示」
あたりが根拠になっていそうです.
今回の件とは関係ありませんが,公正取引委員会のホームページ利用規約に
「公正取引委員会ホームページに掲載されている個々の情報は著作権の対象となっています」
とありますが,行政や地方公共団体が発行する告示,訓令,通達やそれに類するものは,
著作権の行使の対象外だったと思うのですが,どういうことでしょう.
というか,行政のホームページ自体「それに類するもの」に入れてしまいたい気もしますが.
文書は著作権の対象外でも,それが載っているHTMLに対しては著作権が行使できるということでしょうか.
*Linux on BBR-4MG
久しぶりにシリアルから繋いで遊んでみる.
エクスクラメーションを入力したら,「Administrator Mode」に入れることは最近分かったので,
メモリの内容をダンプしてみる.
ファームウェアをアップロードするフラッシュは,0xbfc00000から始まっていますが,
ダンプしたデータを見る限り0x9fc00000からのエリアに配置されてそうな雰囲気.
試しに,0x9fc00000をダンプしても同じ内容が得られた.
どういうわけか,SDRAMがあるはずの0x80000000あたりをダンプしようとしても,
指定したのと違うメモリにアクセスして固まってしまう.
Linux起動するか!っと思ったらディバイス認識中にフラッシュメモリあたりで,Kernel panic.
容量の違うROMとして認識してます.カーネルをmakeするときに設定しないと駄目なのかな.
今回はここまで.起動までもう少しかなぁ.
とりあえず,どうにかすればLinuxは動くであろうことがわかりました.
…とかやってたら,いきなりルータが止まる.
電源入れなおしても再起動しない.
基板を良く見ると,なぜかADM5120Pの足が濡れている.
手元には水滴が多量に付いたコップ….謎は解けた.
扇風機で暫く乾かしても起動しないし.
かなり焦りました.よく見ると水に電流が流れたらしき跡があったので,
歯ブラシでひたすらブラッシング.なんとか起動するようになりました.
やっぱり,水に濡れたくらいで諦めちゃいけませんね.
最後の一秒までロスタイムは続きます(?).
*HDDのバックアップ
久しぶりにHDDの内容をバックアップ.
バックアップしなければならないフォルダを圧縮してみると,合計で670MB.
そろそろ,CDに入りきらなくなる.
差分だけをバックアップすれば平気だけど,それも面倒くさい.
バックアップ先もそろそろDVDにするべきなのかな.
*GIFファイルフォーマットの勉強
iアプリにSD経由で任意のデータを渡すためにはやっぱり画像に埋め込むのが正攻法(?)っぽい.
というわけで,GIFのフォーマットの勉強.
コメントブロックにファイル名を入れて,
アプリケーション拡張ブロックにデータを格納するのが真っ当かな.
データをLZWで圧縮して画像ブロックに入れることも考えたけど,
画像はファイルのアイコンとかに使えたほうが便利な気がしたので却下.
画像をいじるわけじゃないのでLZWとかは今回はいらない.
特許も切れたことだし,何かやるかもしれないけど.
必用なものはそろったし,後はプログラム書くだけなのだけど,
PC側でGIFにデータを埋め込むプログラムは何で書くべきかなぁ.
GUIが欲しいからHSPで書くか,iアプリとソースを統一するためにJavaで書くか….
Perlで書けば自分が使ってる環境ならどれでも実行できるのだけど….
とりあえずHSPでいいか.
……ここまで書いておいて,まだプログラム書き始める気になりません.
誰か作ってください.
テキストエディタ以外にもテキストブラウザとか,ファイラーとか,色々.
スクラッチパッドを他のアプリケーションに渡せれば便利なんだけどなぁ.
むしろ,任意の形式のファイルにアクセスできるようにしてください….
ファイルにアクセスできると,色々やってファイルシステムを破損させて,
本来アクセスできないデータを取得しようとする可能性とかを考慮してるんでしょうか….
ストリーム上のjarイメージからファイルを取り出すメソッドがあるのだけど,
これってzipファイルが展開できるということだろうか….
ファイルの一覧を取得する手段が無いような気がしないでもないけど(自前でやるしかない?).
それと,VisualPresenterってFlashも再生できたりしないだろうか?しない気がする…….
無理すれば,そこそこ使えるので,夢は広がるばかりです.
でも,これだけのことが出来るハードウェアなのに,
なんでこんなに自由度の無いAPIを搭載してるんでしょう.
携帯電話はあくまで電話ということか.
確かに,これだけ厳重にやっておけば,携帯電話向けのウイルスやスパイウェアを
作る気がしなくなるかもしれません.
安全性より利便性を考慮した端末も出してくれないものだろうか.
*iアプリ
iアプリで,SHH505iSはKEY_CLEARに対応しているはずなのにイベントが取得できないと思ったら,
キーグループというのがあるんですね.
最初にPhoneSystem.setAttribute(PhoneSystem.DEV_KEYPAD, 1);としたらイベントが拾えました.
iアプリでテキストエディタでも作ろうかと思ったけど,ファイルが保存できないし.
ネットワーク上にしか保存できないというのもアレだし.
画像として保存するか….
JPEGは非可逆だから,GIFと思ったけどこっちはエンコードできないのか.
画像のバイナリイメージは扱えるので,コメント領域に書き込んでみるというのも手かな.
クリップボードって扱えたっけか….
*そうめん
TGCHのところにそうめんを食べに行く.
-
天気:晴れ
-
綿半で電子パーツを入れておくためのケースを買う
-
サークル棟からUSBシリアル変換ケーブルを持って帰る
*Flash
フリーのActionScriptコンパイラが存在するんですね.
暇があったら遊んでみよう.
ActionScriptはちょっと遊んだだけだったので,もういちど言語仕様を調べてみる.
っていうか,サンプルとかHow toじゃない言語の説明って殆ど無い…….
一応,まっとうなオブジェクト指向言語なんですね.クロージャとかもあるのか.
久しぶりに,Webサイトを巡回.
セキュリティホールmemoとか.
最近,Googleの検索結果のURLがリダイレクト用のアドレスになっているのには
気付いてましたが,なにやら色々と収集されて追跡されてるみたいですね.
そんなことよりも,Firefoxで特定形式のURLがステータスバーに表示されないのは,
いつになったら直るんでしょうか.
あんまり気付いている人いないの?
*ppencode
ppencode demo
これは凄い.
意味不明だ.
こういうことが出来るから,Perlから離れられないのかも.
*パソコン={Excel,Word}
最近は,ExcelやWordが使えることをパソコンが使えるというらしいですが,
それなら私はパソコンが使えるかどうか怪しいなぁ.
国土地理院のサイトに
地図閲覧サービスの立体視サービスが出来てますね.
とりあえず,愛知万博の復習.
自分が廻ったパビリオンの情報だけでも確認しておく.
なんだかWebページ上の情報量は意外と少ないですね.
記念に行ってみるのは良いですが,この時代に何かを得るために万博に行くのは
あり得ないと思います.それ以上の情報をWebから日常的に得られる時代ですし.
同じくらいお金をかけて,Web上でヴァーチャルな万博を開催したら
どれだけ凄いものが出来るでしょうか….
中は見ませんでしたがJR東海の超伝導リニア館にあったリニアって
本物だったんですね.
最高速度は581km/hってのは凄い.
乗ってみたいなぁ.
気になる問題は,これが実用化される時代に
そんなにコストをかけて人間を物理的に移動させる意味があるかということでしょうか.
*長野へ
京都へ戻るらしいMRIと別れて,長野へ帰る.
Safiiは途中のPAでバスに乗って東京へ.
帰ってすぐ寝る.
MRI家からMeshi家へ移動.
MRIの家のすぐ近くにある京大工学部の大学院の建物.
最近できたらしい.こんな環境で研究したいなぁ.
どこの大学院に行こう….院に行くかどうかは決めてませんが,
就職はあまりしたくないのでたぶん行くでしょう.
SZKを京都駅で下ろして名古屋へ.
今日のおやつは八つ橋.
*東山公園@名古屋
名古屋の東山動植物公園に寄る.
両生類のところにウーパールーパーはいませんでした.
マダガスカルレーザーオオトカゲ
もいませんでした.
スカイタワーにも登る.
5階は100mくらいの高さなのですが,4階は96mです.
2階は普通の高さ.
エレベータが止まらない3階には一体何があるんでしょうか.
最後に植物園…ってもう時間が無い.少し見ただけで終わり.
園内を走っているモノレールに乗ろうとしたら,ちょうど最終便が出たところ.
仕方なく歩いて戻る.
今日も疲れました….
*京都観光
岡山のSafii家を出て,京都のMRI邸に.
おやつはもみじ饅頭.
ついでに,京都観光.清水寺と新京極辺りをふらふらと.
5年前の修学旅行と同じような構図の写真を何枚か撮ってみる.
ぐでーっと猫.清水寺で.
このあと,998円もする抹茶しぐれを食べたり.
おいしかった.
MRIに新京極まで連れて行ってもらって一巡り.
前に来たときにカメのぬいぐるみを買った気がする店と,
暇つぶし用の本を買った書店の前も通る.
あと,本能寺にも行く.
そういえば,修学旅行で泊まったホテルがこの辺りにあるはずだなぁ.
京都っていいなぁ.
MRIの家に向かう.
坂を上った先のちょっと高いところでした.
途中,京大工学部の大学院の建物が綺麗でした.まだ作っている最中の建物もありましたが.
CanBeでシムアースとかやる.
Safiiが持ってきたフロッピーディスクが壊れ気味で起動しないので,
WindowsのMS-DOSモードから起動して実行.
コンベンショナルメモリが足りないので,CONFIG.SYSを設定したり.
なぜかマウスは動かない…マウスドライバ組み込まれてるはずなのに.
まぁいいか.
私がやったら,魚類や両生類や爬虫類をすっ飛ばして,鳥類が反映した挙句,
文明を持って,なぜか鳥のくせして飛行機を作り出しました.
普通にナノテクとか使い出して,最後は他の惑星に移住していきました.
そういうゲームなのか.
そういえば,竹内均監修なんですよね.
*岡山観光
瀬戸大橋まで行く.
周りを少し歩く.
橋のアンカーに扉があるのを見ると,中って入ってみたくなりませんか?
私はむしろ住んでみたい.
カニの入ったちくわを買って食べる.
倉敷のアイビースクエアへ.
今日もスターウォーズ鑑賞.
Safii邸へ.
*台風です
台風にも臆することなく,岡山へ.
台風で風が強い.
高速も途中から50km/h規制.
2回停電したり.
スターウォーズのビデオ見たり.
今日は万博.雨です.
雨でも10万人以上の人が来たみたいで,やっぱり人が多いです.
Meshiが3日に行ったときはこの2倍の人がいたみたいですが….
最初になんとなくドイツ館に行く.中に入れるまで1時間ちょっと並びました.
ジェットコースタみたいな変な乗り物が良かった.
乗り物から降りた後も,色々と展示物が並んでいる.
模型に使われてるモータがマクソン製だなぁとか.
次に,予約しておいたマンモスというかSONYのプロジェクター.
50mのスクリーンは中々の迫力で映像の内容も結構良かった.
3台のプロジェクターの映像の繋ぎ目がちょっと気になったけどこのくらいは仕方ないか.
端を重ねて継ぎ目を目立たなくする戦法なのかもしれないけど,それだと黒を写したときに
そこだけ明るく見えてしまう.
DoCoMoがやってた実際の映像とグラフィックを合成して見せる双眼鏡みたいなのも
あったけど,実際に覗いてみると微妙なところ.
せめて,手に持ってるサイズにして簡単に好きな方向に向けられたら使い物になるかもしれない.
そのあと,オセアニアや東南アジアの辺りを廻る.この辺は比較的空いていました.
ブルネイは置いてある物が微妙だったような….
シンガポールは妙な列に並んでしまって建物の中に入ってまで現地のスコールの体験とか
させられたり.傘を貸し出してたけど,そもそも今日は雨なので皆自前の傘.
モリゾーが運転するIMTSにも乗りました.遅いです.どのくらいまで出せるんでしょうか.
ハンドルが自動で動いているのは少し面白い.
分岐点にポイント切り換え機みたいなのがありますが,これって無くても走れるのかな?
接触している雰囲気は無いけど,距離を測っている可能性はあるかも.
分岐点でどちらへ曲るかは,何で決めているのか気になるな.
そのあと,キッコロゴンドラにも乗りました.こっちのほうがIMTSより高い….
予約した時間まで少しあったので,サウジアラビア館に.
石油系がメインだけど,他のものにも手を出しているところをアピールしてるのかな.
韓国館のアニメーションはある意味,凄かった.
始まる前,メガネを見ながら「偏光板」「円偏光」「ハイディンガーのブラシ」とかが
出てくる会話をしていたのは,私たちだけじゃないでしょうか.
円偏光でも,人間はハイディンガーのブラシを見ることが出来るんでしょうか.
もし出来ないなら,立体視用の偏光板は円偏向のものにするべきだと思うのですが….
首を傾けても像が2重に見えるのを軽減できそうだし.
いや,そんなことよりもやっぱり映像の中身が…….あれ,アリなんですか?
そのあと,インドカレーを食べる.結構おいしかった.
ただ,万博で食事すると一食あたり1000円かかる….
全体的な感想としては,資源とエネルギーの無駄遣いだなぁという感じ.
経済効果はあるのでしょうが,経済と環境のどちらを優先するべきかは
人によって判断が分かれるのでしょう.
そのまま,SZK邸へ.
MRIの車で,Meshi邸へ.
11時頃出発して,松本のMOSバーガーで昼食を食べたりして,17時に着きました.
夕食は焼肉.
あと,温泉入ったり.
*誰かサークル棟にLANを引いてください
今日もロボ研.
サークル棟でプログラムを書く.
サークル棟はネットワーク環境がないので,少し不便だ.
何か調べるたびに,図書館まで行かないといけないし.
こんど,学部長と話をする機会があったら,それとなく主張してみようか.
GtkFixedがbutton_press_eventを拾えないのはあいかわらず.
リファレンス読むと,ウインドウを持ってなくてイベントを拾えない
ウィジェットもあるようなので,それかな.
とりあえず,親のウインドウ側で捕まえるようにする.
inputとmesboxはkey_press_eventを登録するときに,g_signal_connect_afterを使うと
正常になることに気付く.
もしかして,親のウインドウ側から子のウィジェットに通知される仕様になったんだろうか.
そこで,ハンドラの返り値をTRUEからFALSEにしておく.
上手く行った.
グラフィックを高速に書き換えるプログラムを動かしていると,X.orgのCPU使用率が
どんどんあがって,反応が悪くなる.xhspのCPU使用率はやけに低い.
バグかと思ったけど,単純にpixmapから画面へのコピーを繰り返しているだけで再現する.
Xの仕組みを考えたら当然か.
実際のグラフィックを処理しているプロセスはXサーバだからなぁ.
アプリケーションがXの描画データの待ち行列の量を調べて描画命令を発行する
なんてことできるかなぁ.というか,やるべきなのかもわからない.
直した記憶のあるバグが残っていると思ったら,xhspのWindows版でRegnessemの
プラグインを作ってた時に直してたのか.こっちは,すでにxhspじゃないですが.
コンソール版はMacOSでも実行できますね.
オブジェクトのバイナリ互換性は失われますが.
あと,エンディアン依存のコードがどこかにありそうだから,
使い物になるかどうかわからないけど.
そろそろWAVファイルの再生くらいサポートしたいところだけど,
ALSAかOSSを使って音源にアクセスするのがいいかなぁ.
/dev/dspに直接データを放り込んでもいいんだろうか.
とりあえず,ALSAだけに対応かな.
最近のLinuxとかって,何が使われているんだろうか.
というか,私の場合,パソコンが音とか出す必要無いと思ってるので,
サウンドドライバさえ入っていませんが.
あと,Makefileが複数になってるので,そろそろconfigureスクリプトを用意するか.
ただ,autoconfがちょっと面倒くさそうなんだよなぁ.
スクリプトを手作業で書こうか.
とりあえず,最新版のxhsp-0.50を公開.
大学に行って色々と.
掃除したり,図書館行ったり,アイス奢ってもらったり.
*xhsp
エディタは大体動くように.
xhsp本体は,getkeyでマウスのボタンが使えないのと,
inputとmesboxの動作がおかしい以外は動くようになった.
ウインドウのbutton_press_eventが拾えないのは気のせいかな.
あと,GtkFixedに配置したGtkTextViewが上手く動かない気がするのだけど….
RGBイメージのbppの数値がおかしかったのは,いつの間にか直ってますね.
gzoomが誤動作してた原因を調べてて気付きました.
日本語フォントを使うことを考えると,GTK+-2.0を使うべきですが,
まだ微妙に動かない部分があるなぁ.