やせるかもしれないし、なんとなく健康にいいかもしれないし、ということで、クーラーを、ずっとつけていない。
いやーん、家のなかよりも、外のほうが涼しい。
7月も、あと少しで終わり。早いな~。というわけで「スヌーピー絵皿プレゼント」ですが、ようやく、60点たまり、お皿2枚と交換してもらいました。
今は、ちょっとだけ、セブンイレブン通いはお休み中というわけです。
8月になったら、またせっせと、シール集めに励むことになるぞっと。
ファミリーマートは、対象商品のシバリがきつくて、あーゆーのは、私は飲まないので、はなから無視してます。
某組み込みプロセッサ+uCLinux上で、サンプルプログラムとして、ムービープレーヤーが用意されていた。
こいつで再生できる、ムービーファイルを作らねばならぬ。
ファイル形式は、MPEG4だそうだ。サンプルデータを調べたら、QuickTimeな、ISO MPEG4 System Streamってことらしい。
・Windows Media Encoder9でつくった、wmfなMPEG4 ・・・ 再生できず
・TMPGEncでつくった、aviなMPEG4 ・・・ 再生できず
・ffmpegで作った、たぶんISO MPEG4だと思われるMPEG4 ・・・ 再生できず
・ffmpegで動画オンリーでMPEG4 videoなAVI と、faacでつくったAACなMPEG4 audioを、mpeg4ipのmp4creatorでmultiplexしてつくったMPEG ・・・ やっと再生できた
よし、野望に向けて、また1歩、前進した。
uClinuxがやっとブートした話のつづき。
この、某CPUの評価ボードには、プログラム中から制御できるLEDが16個ついている。こうなったら、なにはさておき、「ナイトライダー」を作らなくては、気がすまない(笑)。
PDFのハードウェアマニュアルを斜め読みしていくと、あるアドレスに16ビットデータを書き込めばLEDが点灯することがわかる。
そこで、簡単なテストプログラム数行を、C言語で書いて、実行してみると、Memory Faultとかいうようなエラーがでて、LEDの点灯状況はまったく変化しない。このエラーメッセージは、シグナルハンドラで出しているっぽい雰囲気。
組み込みネットに掲載されていたuClinuxの紹介記事によれば、uClinuxでは、MMUをサポートしていないので、メモリ・プロテクションも、アドレス変換もなにもしていない、と書いてあった。実は、これは、古い情報だったらしい。実際には、メモリ保護は実装されていた。だから、ユーザープログラムからは、LEDを制御するアドレスへの書き込みは、許可されていないらしい。
そのことを知らずに、/dev/memをつかったり、mmapしてみたりしたけど、ぜんぜんダメ。それが月曜までの状況。
今日になって、メモリ保護が実装されてんじゃないの?という疑いがムクムクっともちあがり、カーネルソースをざざーっとながめる。やっぱり、実装されてんじゃん。。。と、ようやく気が付く。てゆーか、そのCPUアーキ用にかかれたドキュメントをみれば、すぐわかったことだった。
じゃあどうしようかな、ってことで、LEDを制御するデバドラを書いてみることにした。デバイスドライバを書くのは、MS-DOS以来だ。
procfsを使うと簡単らしいことが、グーグルしてみてすぐわかった。
適当にコピペ。
ググッた情報は、どのバージョンのlinuxのことだかぜんぜん書いてないものが多く、どうもそのままでは動かないっぽい。コンパイルオプションとか、コーディングの流儀とかも、微妙に違うらしい。
とりあえず、今あるカーネルソースに含まれているデバイスドライバを参考に、手直しをする。
1時間ほどして、ようやく動いた。ソースコードは100行ほど。insmodしたとき、ちょっと、わけのわかんないエラーがでるので、一部の機能は殺した。
echo "0000111111110000" >/proc/led みたいにして、LEDが点灯することを確認。
あとは、ナイトライダーするプログラムは、シェルスクリプトで書き、実行。
とりあえず、これで満足した。
地震と台風を比べると、台風の場合は、なんかワクワクドキドキするところが違うかな。
まあ、被害がでない程度ですむという条件で。
今日は、すごく早い時間に帰宅した。せっかくコンビニで食料をそろえたりして、準備万端でまちかまえているけど、どうも今回の台風は、たいしたことはないようだ。残念。いや、被害がなければ、で。
オマケ
今日は、ひさびさに、電車で通勤。
東横線で女性専用車両ができててびっくり。ピンクのプラカードをもった駅員みたいな人がいて(バイトかな)、一生懸命宣伝してた。女性専用車両は、終日やるんだけど、土日と各駅停車は除くとかで、わかりずらい例外ルールがついてる。
シフトワイヤーはった。
ギアシフトの調整した。完璧にミートしてる。
グリップも新しいのにした。
さあ、試乗!!
あれ???
なんか、手にシフタがぶつかって、じゃまだな。ハンドルを握るところが、妙に狭い。
げげげ、シフタとブレーキレバー、逆につけてるらしい。
これまでのグリップシフトは、内側がブレーキレバーでいいんだけど、ラピッドの場合は、内側にシフトレバーがくるらしい。
なんだよー!!!
そんなかんじで、不完全な状態にもかかわらず、今日は、こっちの自転車で出社。
帰りのころには、台風接近中のために、みょ~に生あったかい、どしゃぶり状態。
そんななか、ちょうど小ぶりになった瞬間をねらって、自転車で帰宅。
途中、ほんの3~400メートルくらいの区間、ちょー土砂降りにあいましたが、それ以外では、小雨か、やんでました。雲の切れ目が見えてたり。
いま家では、ときどき強い雨。
絶好の帰宅チャンスだったようだ。
でもきょうpochiは東京までココロと墨田でマンガとかジャンプしないです。
これまで、Q E M Uを実行してしまう、ということになります。
ところで、この古いネットワークプレース「127:100022)に接続するときは、いや~んなきがしたり、意味ないので、まずしないでしょう。
だから、ポート番号22番ゲストO SのF r e e b D A Vの設定変更A p a c h e)へのアクセスU R Lも変わってしまいます。
すでにW e b s d.i m g-e n a b l e-L.-m128-h d a f r e d i o-localtime-r e e B S D上で動いている別のパソコンから、Q E M Uの実行のときに、ネットワークプレースを作成しなおします。
ホストO SであるF r e d i r t c p:80」がいらなくなって、U R Lを指定してきましたが・・なんだかなぁ~
*このエントリは、BlogPet(ブログペット)の「pochi」が書きました。
さっきは、びっくりした。余震も3回くらいは感じた。
震度5弱?!
棚からものが落ちた。
つんであったCDが床へくずれおちた。
ビデオテープが倒れた。
いや、地震がなくても、部屋の中はちらかっていますが。
大きい地震があると、小学生のころからずっと脅かされつづけてきた東海地震、ついにきたか!といつも思ってしまう。
午後10時すぎ、やっと、uCLinuxがブートした・・・
ひょんなことから、とある組み込みプロセッサの評価ボード上で、プログラムを作成するのを、仕事としてやっていいということになった。まるで遊んでお金をもらえるみたいな、おいしい話だ。
てゆーか、これまで、そんな開発作業は、1度もやったことないんですけどね。私でいいんですかね?
で、昼すぎから、評価ボードと格闘。
基本的には、tftpで、プログラムをLAN経由でとってきて、実行、というかんじ。
ところが、どのプログラムも動かない。実行したとたん、固まっちゃう。
想像しながらわかったこと。
そのプログラムは、この評価ボード用プログラムではない。別の古い評価ボード用である。
カーネルパッチらしきものを発見。パッチをあてて、カーネルをコンパイル。
ブートしたー!!うれしP!!
小躍りして喜んじゃいました。
マニュアルに誤植を発見。マニュアルどおりにやると、ぜったいに、カーネルのコンパイルエラーになるぞ。
これ、最初気がつかなかった。Linuxを昔から使ってたひとじゃなきゃ、ぜったいきがつかねー、という誤植。
私は、ThinkPad535で、kernel 2.0.28あたりを使ったのが、最初で最後の、Linuxとべったり付き合った生活。意外と、覚えているもんだ。