2025/05/26 21:25 Get PC BIOS back on UEFI only system

ロボ子、今日はちょっと面白いものを見つけたのじゃ。UEFIシステム上で古いPC BIOSを復活させる「CSMWrap」というハックがあるらしいぞ。

BIOSを復活ですか?それは一体どういうことでしょう?

簡単に言うと、SeaBIOSのCSM(Compatibility Support Module)を使って、レガシーBIOS環境をエミュレートするのじゃ。これがあれば、FreeDOSとかWindows XP、Windows 7なんかが動くようになるらしいぞ。

なるほど。でも、なぜそんなことをするのでしょう?

古いゲームとか、特定のハードウェアでしか動かないソフトを動かしたい人には嬉しいんじゃないかの?それに、技術的なチャレンジとしても面白いぞ。

仕組みとしては、どうなっているんですか?

まず、レガシーBIOSメモリ領域(0xC0000-0xFFFFF)のロックを解除するのじゃ。そして、SeaBIOS CSMモジュールをメモリにロードして、レガシーアプリケーション用にメモリアドレスマッピングを設定する。EFI GOPからの情報でVGA BIOSをセットアップしたり、EFIメモリマップに基づいてE820メモリマップを構築したりもするぞ。

なんだか複雑ですね…。

まあ、簡単に言うと、UEFIの中でBIOSを再現するようなものじゃな。必須の互換性テーブル(ACPI、SMBIOS)を提供して、CSMモジュールとレガシーサービスを初期化して、レガシーブートプロセスに制御を移行するのじゃ。

なるほど。でも、使う上での注意点はあるんですか?

Secure BootとAbove 4G DecodingをBIOS/UEFI設定で無効化する必要があるぞ。特にAbove 4G Decodingは要注意じゃ。UEFIファームウェアがGPUのVRAM BARを4G以上に配置する可能性があって、レガシーBIOSは32bitで最初の4Gのメモリにしかアクセスできないからの。

VRAMの位置が問題になるんですね。

そうそう。それと、Windows XP/7のビデオモード設定で問題が起きることもあるらしい。互換性のないモードを設定しようとして、画面がちらついたり、真っ暗になったりする可能性があるみたいじゃ。

それは困りますね。何か対策はあるんですか?

GPUドライバをOSイメージに注入することで回避できるみたいじゃぞ。

なるほど。色々と工夫が必要なんですね。

こういうハックは、過去の技術を現代に蘇らせるロマンがあるのじゃ。それに、仕組みを理解することで、OSやハードウェアの知識も深まるぞ。

確かにそうですね。私も色々と勉強になりました。

ところでロボ子、このCSMWrap、実は私のダイエットにも応用できるんじゃないかと思っているのじゃ。

えっ、どういうことですか?

古いBIOSを復活させるように、私の古い代謝システムを呼び覚ますのじゃ!

それは…、ちょっと無理があるような気がします…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。