SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2004-07-17(Sat) フロント側工事

  連日の猛暑。まともに昼に車載作業すると死ぬな、と思いつつ、なんだかんだで昼から車載作業開始。

  まずは取り付け前の状態。前回、DINスペースをそっくり取り外したので、その状態からの作業開始である。まずは、DINスペースの飾り枠を止めるフレーム下側のタッピングネジのネジ穴をネジ切ってしまっていたので、タッピングツールで4mmのネジ穴を切りなおした。

  画像の説明

  フロント側の取り付け作業を行う前に、変換ボックスの配線が正しいかどうか最終確認が必要なため、リア側の変換ボックスにテスト信号を発生するアイテムを設置(トランク内が若干散らかっているが無視していただきたい)。テスト信号を発生するアイテムといっても、例のナムコのゲーム機と骨董品のカセットプレイヤである。ゲーム機はビデオ信号を、カセットプレイヤはステレオオーディオ信号を出力する。曲はなぜか手元にカセットテープとして残っていた「ハイドライド3」。リア側でテスト信号を出したところで、フロント側で導通テスト。画面も映るし、音も出た!! 導通テストは大成功である(USB他は未確認だが、まぁ大丈夫であろう)。

  画像の説明 画像の説明

  次はディスプレイの仮設置である。とりあえず、ディスプレイの電源は12V-100Vコンバータからアダプタを通じて給電するものの、設置状態は良好であった。しかしここでは、ふたつの小さな問題が発生。ひとつは、ディスプレイの裏はナベネジの頭が出ているので、このまま走行して振動を与えると、エアコンパネルに当たって傷がつく可能性があるということ。もうひとつは、引き出し内のピンヘッダからディスプレイの電源を取ろうとすると、ピンヘッダの高さのせいで物理的に引き出しが閉まらなくなるということ。これらは誤算だったが、まぁ、なんとかなりそうな範囲の問題であろう。一応、仮設置はOKということで、配線を引き出しに仕舞って、SVXに特有のカーステのフタを閉じてみる。ちゃんと閉じることが確認できた。よしよし。

  画像の説明 画像の説明 画像の説明

  先の「ピンヘッダの高さのせいで物理的に引き出しが閉まらなくなる」というのはこういうこと。もうひとつの「エアコンパネルに当たって傷がつく可能性がある」という問題とあわせて対策したのが右の写真。パネルの裏に両面テープで張ったのはクッション性も期待できるスベらないシートである。ピンヘッダのほうは、横出しのピンヘッダを加工して極限まで高さを抑える工夫をしてみた。

  画像の説明 画像の説明

  と、いうわけで、フロント側の取り付け作業は完了である。と、こう書くと非常にスムーズに作業ができたかのようであるが、実際にはユニットが定位置に納まるまでが大変な作業であった。なにしろSVXのDINスペースはコード等が入るスペースが極端に少なく、前から押し込むとユニットと枠の間に配線が入り込んで、ちっとも定位置に納まってくれない。気候の暑さも手伝って発狂しそうな作業状態であった。

  そして15時頃から、カミさんとスーパーに買い物に出動である。せっかくなので早速ディスプレイを設置して試運転である。PCはまだ搭載していないので単なるモニタとしてであるが、例のナムコのゲーム機を接続し、走行中にカミさんに遊ばせてみた。結果、先に施した2つの対策も効を奏し、走行中にディスプレイがガタ付くこともなく、引出し内のピンヘッダから直接12V+2Vを取り出してディスプレイを稼動することもでき、まったく問題なしであった。

  画像の説明

  さて、明日はリア側へPCの仮搭載、というところで、今晩は呑み会である。カミさんとカミさんの兄さんと、ギネスビールを呑みにHUBというイングリッシュパブへ、そしてカラオケへ。カラオケではなにげにキャプテンハーロックを歌ってみたりしたのだが、我ながらこれがかなり気に入ってしまった。あんまり気に入ったので気がついたらHUBに重大な忘れ物をして自宅に戻っていた。うげー。


2005-07-17(Sun) 帰ってきた、ひげそっち(仮)

  とりあえず

  画像の説明 画像の説明


2006-07-17(Mon) GRUBの真髄へ

  ウンともスンとも動かないまま、連休最終日へ。今日を逃すと、まとまった時間が取れない。ここで一旦、方向性を変え、既存のコンパクトフラッシュ用ディストリビューションを「とりあえず」使ってみるコトにした。ポンと放り込んで使いたいのでiso形式が用意されているものがいい……コレだ「pyramid linux」ってヤツ。コレがいい。ddコマンドでベッタリとコンパクトフラッシュに書き出して、差し込んで起動……

PC Engines WRAP.1C/1D/1E v1.11
640 KB Base Memory
130048 KB Extended Memory
 
01F0 Master 848A LEXAR ATA_FLASH
Phys C/H/S 1008/4/32 Log C/H/S 1008/4/32
GRUB Loading stage1.5.
 
GRUB loading, please wait...
cbcba! ユ翕FCc茶篥覇篤篤篤篤篤篤篤篤篤篤篤篤篤篤篤篤篤……

  ……う、動いた!! ちょっと後半が化けているが、コレは「pyramid linux」のシリアル設定が19200bpsになっているせいだ。途中でTERATERMの設定を変えると……

  Booting 'Metrix'
 
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /boot/vmlinuz-2.6.16-metrix root=/dev/hda1 console=ttyS0,19200n8
   [Linux-bzImage, setup=0x1200, size=0x105916]
 
Linux version 2.6.16-metrix (root@hagbard) (gcc version 3.4.5 20050809 (prerelease) (Ubuntu 3.4.4-6ubuntu8.1)) #2 Wed Mar 22 15:

  ……このようにキチンとカーネルの読み込みが始まった!!

  しかし、コレで「よかった!!」とはならないのである!! なにせ、オイラは是が非でもRHELを動かしたいのだ。8MBの環境でRHELを動かすなんてのは、ほぼディストリビューションをイチから構築するに近い作業なのだが、オイラは正真正銘の「Linuxのプロ」なんだからそんなコト当然のようにできなくてはならない。むしろ、すでにこんなに長い間「動かねぇ!!」と悩んでいるのが恥ずかしいくらいである。

  気を取り直して考える。自分で作業した場合と圧倒的に違うのは、grubのオープニングメッセージだ。「pyramid linux」だと「GRUB Loading stage1.5.」なのに、オイラがやると「GRUB Loading stage2.......」いったいどっちが正しいんだ!!

  ……とかゴチャゴチャ作業しているウチに、コンパクトフラッシュのブートセクタでなく、誤って母艦のブートセクタをイジってしまったためか、母艦のFedoraが上がらなくなってしまった……どーしてまーこーも回り道だらけになるかなぁ……手元には「このPCでは起動しない」RHEL4のインストールディスクしかないぞ。レスキューモードが使えねぇじゃねぇじゃねぇじゃねぇかよ。個人的に焼いたKNOPPIXも職場に持っていっちまっているし……しかたない、CentOSの3でも落として、それをインストールしてみるか……小休止。

  で、CentOSの3を焼いた。面倒なのでFedoraをレスキューせず、そのままCentOSの3をインストールしてしまう。起動して、再びgrub-installしてWRAPを立ち上げる……

GRUB Loading stage2.......

  ……根本的にgrubについて勉強する必要がありそうだ。ちゅーか、このgrub-installスクリプトって、中でナニやってんだ!? 詳しく知らないのもシャクなのでソース持ってきてイチから勉強するか……

  ……うーむ、深いッ!! grubのソースを読んだら、まるで人間の赤ん坊が母親の胎内で数ヶ月で魚類から人間まで成長するかのような、そんな感覚を覚えたぞ。ブートプロセスの序盤は、PCが8bitの頃とあまり変わらないんだねぇ……以下、それも含め、判明したことをひたすら箇条書きにしてみよう。

・ハードディスクを最も低いレベルで読み書きする際は、CHSで場所を指定して512バイトずつ読み書きする
・CHSはシリンダ、ヘッド、セクタ(Cylinder/Head/Sector)のコトを意味している
・CHS指定だとハードディスクを「裏面の内側から5番目の……」みたいに物理指定するので無駄が多く、最大504Mしか扱えない
・504Mでは足りないので、ハードディスク側でウソのCHS指定を可能にすることにした(255Headとかを受け付け、HDD側で変換)
・そしたら7.9GBまで使えるようになったけど、これもすぐ足りなくなったので、LBAという指定方法が導入された
・LBA指定は単純に先頭からの絶対位置指定なので、CHS指定のように無駄なビットは発生しない
・LBAが28bitだと128GBまで扱える、最近はこれが48bitに拡張され、これはBigDrive対応と呼称されている
 
・CHSにしてもLBAにしても、ハードディスクでもフロッピーでも、イチバン先頭の512バイトは特別である
・イチバン先頭の512バイトにはブート情報などが書き込まれている、いわゆるMBRというヤツである
・だが、ハードディスクの場合、この512バイトの後半16x4+2バイトは、領域情報となっている
・領域情報とはいわゆるパーティションテーブルのコトで、16x4の4は基本領域の最大数を示している
・最後の2バイトは"0x55AA"という固定値が書き込まれている、これ以外が書いてあると領域情報は無効と判断される
 
・grubのステージ1は、基本的にこのMBRに書き込まれるべき512バイトのプログラムである
・しかし「dd if=/boot/grub/stage1 of=/dev/hda bs=512 count=1」とやってはダメである
・/boot/grub/stage1の後半16x4+2バイトにはフロッピー用のブートプログラムが入っているためだ
・上記のコマンドを実行すると、ハードディスクの領域情報が書きつぶされてしまう
・ほんじゃ「dd if=/boot/grub/stage1 of=/dev/hda bs=446 count=1」ならいいのか?
・実はstage1の一部には、次に読むべきセクタが「埋め込まれている」ので、そのままddしてもやっぱりダメ
 
・では、次に読むべきセクタ(一般にはイチバン先頭の512バイトの直後)には何が書いてあるべきなのか?
・これは、grubのステージ1.5もしくはステージ2が書いてあるべきである
・ステージ1.5とステージ2のどっちが書いてあるべきなのか?
・都合でステージ2をファイルシステム(FATとかext3)上に置く場合、ステージ1.5を利用すべきである
・細かい説明は省くが、一般にハードディスクの場合はステージ1.5を利用する
・そのために、ステージ1.5はステージ2が置いてあるファイルシステムの種類別に用意されている
・Linuxの場合、通常はext2ファイルシステムを使うので、e2fs_stage1_5を利用する
・ほんじゃ「dd if=/boot/grub/e2fs_stage1_5 of=/dev/hda bs=512 seek=1」していいのか?
・こいつも微妙に「情報が埋め込まれる」ようなので、そのままddしてもダメ
・よってステージ1、ステージ1.5のインストールには、grub-installを「必ず」利用する必要がある
 
・ステージ1.5はどうやってステージ2を探すのか?
・「strings /boot/grub/e2fs_stage1_5」するとわかる、中に直接「/boot/grub/stage2」と定義されている
・よってステージ1.5は、ちゃんとext2ファイルシステムを理解して、指定のパスからステージ2を読み込む
 
・ステージ2はどんな処理を担当しているのか?
・メニューを出して起動カーネルを選択させたり、カーネルを読んで制御を移すまでのすべてである
・ステージ2からは、ほとんどの制御を自分自身で行うので、イメージ付き起動メニューも出せる
・一方で、シリアルポート経由で起動メニューを利用する場合は……
 serial --unit=0 --speed=38400
 terminal serial
 ……みたいな記述を行ってそれを指定する必要がある
 
・……で、そこまでわかって、結局コンパクトフラッシュから起動できたの?

  ……できんッ!! 起動メニューすら出てこんッ!! もう寝るッ!!


2016-07-17(Sun) ブロック塀スピーカにアンプパイルダーオン

  というわけで、極小のデジタルアンプをスピーカの上にちょこんと載るようにして、擬似アクティブスピーカにしてみた。

  画像の説明

  画像の説明


2017-07-17(Mon) ひさびさダライアスゥーン

  画像の説明


2021-07-17(Sat) セミ・ソーシャルディスタンス

  木の横を通ったら、バタバタッと数匹のセミが逃げていった……と思ったら、まだいる? いやいや、めっちゃ止まっとるがな!

  最近、セミの鳴き声がうるさいと思ったら、こんな数の大合唱だったのかよ……セミ・オーケストラか。なぜか、この時は一匹も鳴いてなかったけど。昼は揃って自動的に停止するのか? セミ・オートマチック? しかし、しっかりと間隔を空けて止まってますな。すばらしい。

  画像の説明

  それはそうと、ここんとこ夕方のランニングを欠かさないのだが、奇しくも今日、交差点の真ん中を横断する羽化前のセミを発見してしまった。放置しておくと、踏み潰されてしまいかねないので、つまんで道路脇に移動させておいた。抜け殻はよく見るが、中身入りは初めて見たわ。

  これは、今夜あたりセミの恩返しを期待できるかな、なんてアホなことを考えながら走っていたが、セミが恩返しするとしたらどんな恩返しをするのだろうか……セミの特性からして……あッ! シャウトスキルの向上とかですかね。それはゼヒお願いしたい。

  ちょっと前から、夜に欠かさずに喉の筋トレをするようになって、高音の安定感がグッと増してきたのに対し、シャウト系のスキルは伸び悩んでいるのも確かなんだよなぁ。