GRUBオンステージ2!!昨日の作業の続き。コンパクトフラッシュにLinux環境を構築するには、コンパクトフラッシュに非常に低いレベルでの書き込みを行う必要があり、そのためにはLinuxの母艦が必要となる。愛用のPCにはcoLinuxが入っているが、リアルなLinuxは入っていない......というか、入れるとTERATERMやOperaが使えなくなるので作業が滞る。なんでこう、素直に物事が進まねぇかなぁ......確認すると、RHEL4のCDにはi686バイナリのカーネルパッケージしか含まれてない。i586は切り捨てですか。いや、いまだにMMX-Pentiumなんて使ってるオイラがどうかしてるんで、別にいいんですけどね。いうメインストリーム以外の部分をある程度は切り捨てることによって、RedHatという会社は収益を上げているわけだし......な〜んてコトを時々サポートで答えているような......。stage2.......ここでストップ。あ、そーか、grub.confを書くのを忘れてたね。GRUBの真髄へウンともスンとも動かないまま、連休最終日へ。今日を逃すと、まとまった時間が取れない。ここで一旦、方向性を変え、既存のコンパクトフラッシュ用ディストリビューションを「とりあえず」使ってみるコトにした。linux」ってヤツ。linux」のシリアル設定が19200bpsになっているせいだ。オイラは是が非でもRHELを動かしたいのだ。8MBの環境でRHELを動かすなんてのは、ほぼディストリビューションをイチから構築するに近い作業なのだが、オイラは正真正銘の「Linuxのプロ」なんだからそんなコト当然のようにできなくてはならない。こんなに長い間「動かねぇ!!」と悩んでいるのが恥ずかしいくらいである。気を取り直して考える。自分で作業した場合と圧倒的に違うのは、grubのオープニングメッセージだ。stage2.......」いったいどっちが正しいんだ!!......とかゴチャゴチャ作業しているウチに、コンパクトフラッシュのブートセクタでなく、誤って母艦のブートセクタをイジってしまったためか、母艦のFedoraが上がらなくなってしまった......どーしてまーこーも回り道だらけになるかなぁ......手元には「このPCでは起動しない」RHEL4のインストールディスクしかないぞ。レスキューモードが使えねぇじゃねぇじゃねぇじゃねぇかよ。個人的に焼いたKNOPPIXも職場に持っていっちまっているし......しかたない、CentOSの3でも落として、それをインストールしてみるか......小休止。CentOSの3を焼いた。面倒なのでFedoraをレスキューせず、そのままCentOSの3をインストールしてしまう。stage2.............根本的にgrubについて勉強する必要がありそうだ。grubのソースを読んだら、まるで人間の赤ん坊が母親の胎内で数ヶ月で魚類から人間まで成長するかのような、そんな感覚を覚えたぞ。ブートプロセスの序盤は、PCが8bitの頃とあまり変わらないんだねぇ......以下、それも含め、判明したことをひたすら箇条書きにしてみよう。カーネル・ア・ガールのーしても、もーしても、grubが起動してくれないので、理由もなく母艦が悪いのだと決め付け、WRAPボードを職場に持っていってみた。昼休みに職場でテストベットとして活用している旧い赤いノートでのインストールを試してみようという魂胆である。アレにはRHEL4が入れてあったはず。ゆー時、ガラが小さいと持ち運びがラクで便利だねぇ(WRAPは15cm四方で極めて軽い)。今まで数十回は繰り返した、以下のコマンドを実行してみる。カーネルを入れていないので、ココから先へはいけない。カーネルを入れてみよう。調べたら、RHEL3でも、オフィシャルのカーネルバイナリはi686以上しか提供されていないようだ。kernel.「キーボードコントローラがジャムっとる」というメッセージがウンザリするほど出て、最後にはinitがないと言ってカーネルパニック起こして停止した。これはWRAPのマニュアルにも注意書きがあった既知の事態。よしゃーッ!!縁起物なので、CentOS3提供のカーネルを使うなら......と、CentOS3でgrub-installをやり直してみるコトにした。大量の時間をムダにしてしまったぞ......まぁ、grubのブートプロセスほかについて超絶的なまでに詳しくなれたから、そりゃまったくのムダではないけどさぁ......。一度、RHEL4からgrub-installする......のはよいとして、当面の決断事項は「どのカーネルを利用するか」だ。CentOSオフィシャルのカーネルバイナリが使えれば、以後のアップデートが簡単だと思ったが、CentOS4ではi586バイナリが提供されていないし、結局はキーボードコントローラの問題があるので、どのみちカーネルにはパッチを当てて再コンパイルする必要があるんだよな......。......と、なるとkernel.orgの最新オリジナルソースからコンパイルするか、CentOSのSRPMからコンパイルするか。先日もらったRHEL4のサブスクリプションを利用して、RHEL4の最新SRPMをベースに無理矢理586MMX版をコンパイルするか......うふふふふ。続・クルクルイッペイさて、今日は放ってあった夜間撮影に関するプロジェクトを進捗したい。実は、前回のエントリを書いた直後、RedHatでもらったレポート用紙をグルグルと巻いて、以下のような「擬似電池」を製作したトコロで、プロジェクトが中断していたのであった。コレは単純に「単三電池の幅」にA4のレポート用紙を縦に裂き、クルクルと巻いただけのものであるが、中心にちょっと太目の電線を通して、その先にネジをハンダ付けすれば、立派な「擬似電池」になるのである。その際、鍋ネジと皿ネジを利用すると。プラス極とマイナス極っぽい形状になるし、我ながらとてもナイスなアイデアである。やりたいコトは、コレを利用してコンセントからデジカメに3Vを供給するコト。オイラの愛用のデジカメは専用の角型リチウム充電池のほか、エマージェンシー用に単三電池が利用できるようになっているので、その特長を利用するのだ。ちなみに、デジカメの底には3.8Vの2W、専用充電池には3.7Vの1800mAhという記載がある。なると3Vよりちょっとくらい電圧が高めでも問題はなさそうである。手元には3.3VのACアダプタがない。あるのは、以前にプリンタ用に正負を逆転してしまっている危険な5VのACアダプタと......以前に別の用途で購入したUSBハブに付属していたコッチも5VのACアダプタ。こいつらから3Vを作り出すしかない。例のプリンタにはあの後サッパリ通電していないが、せっかく改造したACアダプタを壊してしまうのは気が引けるので、USBハブ用のACアダプタの方のジャックをφ2.1mmの標準ジャックに付け替えて利用することにする。めんどーなので、ダイオードで降圧してやれ......と、ジャンク袋からゴツ目のダイオードを3本取り出した。0.6Vが3本で1.8V。5V-1.8Vで3.2Vという、見え透いた魂胆である。テストしたら、電圧降下が低めだったので、ダイオードを4本に増やす。デジカメの3.8Vで2Wというのが最大消費とすると、最大電流は526mA......しかし、このゴツさならそれに見合う損失容量を持っているだろう。ダイオード4本を空中配線する勇気はないので、前回モノの見事にコケた赤外線照明装置の基板を流用することにする。別に照明装置として併用するつもりはない。ACアダプタのジャックが既に付いているから、というだけの理由である。擬似電池のお尻側をホットボンドで固めて、デジカメに入れる。微妙に喜びつつ、アワてて正規の充電池に入れ替えてデジカメの稼動を確認する......よかったぁ、壊れてない......ちぇ(?)。電圧が供給されているか確認しようか。再度、擬似電池をデジカメにセットし、供給電源を確認する......こりゃ、アカンわ......2Vを切っとる......そっか、大電流が流れると、ダイオードの電圧降下は大きくなるんだな。こんなに不安定ではちょっと使えん。しようか......と、部品箱をひっくり返したら、表面実装用の3.3Vの3端子レギュレータが出てきた。なんだ、コレを使えばいいんじゃんか......にしても、最近、手元の部品だけで大概の工作が賄えるようになってしまっているなぁ......そりゃ、秋葉に行く回数も減るワケだ......と、ブツブツとツブやいているうちにサクっと完成。実は、このレギュレータの定格電流は500mA。デジカメ側とて常に500mAオーバを要求しているワケでもないだろう。レギュレータの絶対最大定格は700mAだし。再度、デジカメに擬似電池をセット。今度こそデジカメは正常に起動した。気になる3端子レギュレータの発熱は......ソコソコ熱くはなるモノの触れていられないほどというワケでもない。実際の撮影時はデジカメのディスプレイも消灯しておくつもりだし、なんとかイケるだろ。......というトコロで、ちょーどよくウチのガキが眠くなってグズグズしてきたようだ。[はじめまして、大阪のkosiと申します。[数回で電源が落ちてしまう、ですか。ありがとうございます。・数回に、規則性はございません。[見ての通り、私は表面実装のレギュレータで済ませましたが、定格ギリギリなので、結構、熱くなってた気がします。おっしゃるとおり、熱保護回路が働いていたようです。し撮影したイッペイの寝相だが、朝方、デジカメで画像を確認して吹き出してしまった。こりゃ、面白いわ......というわけで、早速、Animation-GIFにオーサリングしてみることにする。わしゃ骨の髄からの「Linux野郎」かつ「CUI至上主義者」なのでオーサリングもGUI環境では行わない。ImageMagickのconvertコマンドで極めてロジカルに一発処理するのである。作業ディレクトリに、すべてのファイルを放り込んで、トリミング&縮小。Anime.gif完成したのが以下のAnimation-GIFである。予想以上に一晩中ゴロゴロと転がり回っていることが判明した。今日は、ココんトコ、ずーっと作り込んでいた、オレ様用特殊仕様のデスクトップミュージックスイートを公開することにする。Interface)でサクサク(Quick)とミュージックコンポーズするためのプログラム群(suite)だ。以下、超適当であるがマニュアルである。PCのキーボードを、ピアノのキーボード化するプロセス。基本的にCygwin上で動かすことを想定しているが、playmidi.exe以外はRubyスクリプトなのでunix系OSならほとんど手を加えることなく動くと思われる。./plexor」を実行する。マコトにチープな音質ながら「チューリップの歌」が4小節再生される。<wavを再生する>「チューリップの歌」のMMLファイルの内容は以下のとおり。2行頭が「!」で始まる行が、演奏データだ。「C」が「ド」で、Cの前の数字はオクターブを表している。音階の指定の間の数字が音長だ。4で4分音符、2で2分音符、付点付き4分音符にしたい時は、4の後ろに8を並べる。./plexor」を実行するとテンポが変わる。「t140」という記述がテンポ指定だ。概ね想像が付いていると思うが「#」はコメント行を表している。2行目の行頭の「#」を削除する。チープな音の代わりに、midiから音が出るはず。オマケに再生後には、カレントディレクトリに「tulip.mid」が生成されている。コイツはフツーにMediaPlayerで再生可能な形式である。19行目の行頭の「#」を削除する。適当だが伴奏が付いたはずだ。行頭が「@」で始まる行には、ギターのコードを指定できる。これまた適当なパーカッションによるリズムパートも勝手に付く。<midiを再生する>最後に7行目の行頭の「#」を削除する。伴奏がおとなしいものに変わったはず。アルペジオによるコード演奏と、ポップス系のリズムパートを指定した結果である。各種パターンはmidi.rbに定義されている。<midiを再生する>順序が逆になったが、作曲するには「melod」を起動中に「konk」を立ち上げる。konkを実行すると、PCのキーボードがそのままピアノのキーボードになるので、そのままキーを叩いてメロディを奏でればいい。ゆー状態になってないとキーボードとしては使いにくいが、それはともかくとして、どこかで聴いた曲を奏でてもいいし、鼻歌をそのまま奏でてもいい。結果は画面にMMLの形式で出力されるので、そいつをマウスでドラッグして、エディタに貼り付ける。画面に表示されるMMLには音階情報しかないので、そのままMMLファイルとして保存してplexorに与えると、全部の音が同時に鳴ってしまう。音長の入力は手動なので、エディタ上で追加のこと。ちなみに、konkが出力するMMLの音階同士の間隔は時間間隔に比例しているし、melodおよびplexorによる演奏時に出力される情報は、行単位で時間を積算したものとなっている。コトバで説明するのは難しいが、なにしろ音長の入力を補助するようにできている。後にコードをつける時のためにも、この機能を活用し、行の区切りを小節の区切りに合わせて入力しておくとよいだろう。コードをくっつけると俄然として曲が締まってくるが、コードをくっつけるための補助機能は特段用意していない。midiクラスとchordクラスを活用すれば、コードを奏でるバージョンのkonkはすぐ作れると思うので、欲しい人は自分で作るべし。このツールを使ってサクサクと、ウチのガキにテーマソングを作曲してみた。題して「イッペイのテーマ」。<midiを再生する>最後に、最近の携帯電話はmidiファイルをそのまま演奏できたりするらしい。suite」は、着メロ生成ツールとして活用することもできるワケだ。youのサビを入力してみた。Musicから持ってくる......で、30分もあれば、ホレこのとおり。現状、コードパターンもリズムパターンも、曲とさっぱりマッチしてないが......気に入らんヤツは好きにイジれ。Generator)をBASICから駆使して喜んでいた世代の諸兄は、このDTMスイートの設計思想にシンクロしてくれるのではないかと思っている。