Skip to content

Tech Notes

ジャンクマザーのバラック起動・BIOS波形観測・メモリテスト

2010年頃のジャンクマザーボード(eMachines EL1350)を基板むき出し(バラック)で起動させ、BIOSが目を覚ます瞬間のチップイネーブル信号をオシロスコープで捕まえ、Memtest86+でメモリを叩くまでの記録。Nand2Tetrisで学んだ「フェッチサイクル」が実シリコン上で動く物理的な証拠を拾う。

実験環境

  • マザーボード: eMachines EL1350(Acer系OEM / 2010年頃のAMI BIOS)
  • CPU: AMD Athlon II X2 215 (2.7GHz, Dual-Core)
  • CPUクーラー: Intel用リテール(バラックのためネジ止めせず載せただけ)
  • メモリ: DDR3-1333 1GB × 2(計2GB)
  • 計測器: OWON SDS1104(100MHz 4ch オシロ)

バラック起動とトラブルシュート

電源ピンのショート起動

フロントパネルヘッダ(RAMスロット右、ブザー横の14ピン)のうち、電源スイッチ(PWR_SW)に対応する隣り合う2ピンを金属ドライバでショートさせて起動する。

ファンは回るが画面が映らない(POSTが走らない)

原因は白い4ピン角コネクタ(ATX12V CPU電源)の挿し忘れ。24ピンだけではチップセットやファンにしか給電されず、CPUの論理回路駆動用の12Vが来ないためCPUが眠ったまま。4ピンを挿して解消。

ファン浮き(密着不足)での自動停止

CPUクーラーがネジ止めされず浮いていると、数十秒〜1分で「バツン」と強制切断される。CPU内部のデジタル温度センサー(DTS)がTjMax(約100〜105℃)を検知した瞬間、最優先のハードウェア割り込み THERMTRIP#(Active-Low)を発し、電源管理ICが物理的にATX電源を落とすため。

BIOSの低レイヤ設定

オシロで波形を拾うための下ごしらえ。

  • Enable Clock to All DIMM/PCI: Enabled — 空スロットにも常時クロックを流し続ける。波形を拾うのに必須。
  • Spread Spectrum: Disabled — 通常はEMI対策でクロックを微妙に揺らす(例: 99.5〜100.5MHz)機能。有効だとオシロ上で波形が左右に震えて(ジッター)ボヤけるので、解析時は無効化して周波数を固定する。

オシロでBIOS目覚めの瞬間(CE#)を捕獲

プローブと本体設定

  • プローブ: 10X(10倍アッテネータ)にし、本体のCH設定も 10X に合わせる。1Xだとプローブの容量で100MHz帯が鈍る、または回路に負荷がかかりフリーズする。
  • GND: 黒いワニ口を、ネジ穴の銀フチやUSBポート外枠など巨大なGNDプレーンにガッチリ接続。GNDが浮くと、空間の50Hz交流ノイズをアンテナのように拾い、画面に綺麗なサイン波がウネウネ出る。
  • ターゲット: BIOSチップ(SST 25VF080B)の1番ピン(CE# / チップイネーブル)。左下の丸いくぼみのすぐ横の足。

シングルトリガー(待ち伏せ)

  • 縦軸: 1.00〜2.00V/div
  • 横軸: 50〜100ms/div(起動直後の通信の塊全体を俯瞰する)
  • トリガーエッジ: 立ち下がり(Falling)
  • トリガーレベル: 1.5V付近(3.3V→0Vの途中に罠を仕掛ける)
  • OWONは Force ボタンで待機。左上が「Wait / Ready」になれば準備完了

捕獲できた波形

  • 起動前は3.3V(High)の直線
  • ショート起動の数ミリ秒後、CPUが最初の機械語をフェッチするためCE#を垂直に0V(Low)へ引きずり下ろす(崖が出現)
  • その後データが猛烈に流れ、線が密集して「極太の黄色いブロック」としてフリーズする。Nand2Tetrisのフェッチサイクルがシリコン上で動いた物理的証拠

オシロのUSB保存制限とdiskpart

オシロの組み込みOSはクセが強い。

  • FAT32しか受け付けない(exFAT / NTFS 不可)
  • クラスターサイズは4096バイト(4K)でないと弾かれる
  • 最新のUSB3.0や大容量(GPT)は古いUSBコントローラと相性が悪く拒絶される
  • 最強の解決策: 引き出しの奥の「超昔のUSB2.0小容量メモリ」を使うと一発で認識・保存できる

Windowsで頑固なパーティションを物理レベルで初期化してMBR/FAT32に直す手順(select disk の番号ミスに厳重注意):

diskpart
list disk
select disk 2      # ← 対象USBの番号。ミスると別ディスクを消すので厳重確認
clean
convert mbr
create partition primary size=4000
format fs=fat32 unit=4096 quick
assign

保存形式は .bin(生のADC電圧データ、公式ソフトで波形再構築)/ .csv(Excel・Pythonで解析)/ .bmp(画面スクショ)。

Memtest86+でベアメタルテスト

  • 現代風のGPTで焼いたUSBは「Missing operating system.」で弾かれる(レガシーBIOSはMBRブートしか読めない)
  • 前述の「超昔のUSBメモリ」にMemtest86+を書けば正常ブート
  • OSの力を一切借りず、CPUが物理メモリの全アドレスに0/1のテストパターンを書き込み・読み出しして回路の健全性をチェックする。ハードとソフトの境界線を体感できるツール