11: 2009-03-31 (火) 13:24:10 |
現: 2024-01-08 (月) 12:58:44 k-tan |
- | * KHBIOSに関するメモ-001 | + | TITLE:x |
| + | * KHBIOSに関するメモ-001 [#fcd16ca9] |
| -(by [[K]], 2009.03.26) | | -(by [[K]], 2009.03.26) |
- | *** (1) | + | *** (1) [#sf86a931] |
| -いきなりですが先日EeePC900-Xを2.7万円で買いました(新品)。それで、 http://dot.osask.jp/blog2/details.php?bid=80 という記事も書きました。 | | -いきなりですが先日EeePC900-Xを2.7万円で買いました(新品)。それで、 http://dot.osask.jp/blog2/details.php?bid=80 という記事も書きました。 |
| -それで僕は何がしたいのかというと、とりあえずこのEeePCについているSDスロットから、OSASKとか「はりぼてOS」とかを起動したいのです。メモリチェック時間がLibretto50より短いから、もしこのマシンからOSASK起動できたら、(我が家での)トータル起動時間最速マシンになりそうな気がするんです。・・・で、今回は起動させるにはどうしたらいいかをあれこれ実験してみようと思います。 | | -それで僕は何がしたいのかというと、とりあえずこのEeePCについているSDスロットから、OSASKとか「はりぼてOS」とかを起動したいのです。メモリチェック時間がLibretto50より短いから、もしこのマシンからOSASK起動できたら、(我が家での)トータル起動時間最速マシンになりそうな気がするんです。・・・で、今回は起動させるにはどうしたらいいかをあれこれ実験してみようと思います。 |
| -この話題は実はKHBIOSに直接関係ないのですが(KHBIOSを使わないので)、しかし無関係というわけでもないので(KHBIOS系のツールを多用するので)、まあここに分類するのは許してください。 | | -この話題は実はKHBIOSに直接関係ないのですが(KHBIOSを使わないので)、しかし無関係というわけでもないので(KHBIOS系のツールを多用するので)、まあここに分類するのは許してください。 |
| -ちなみにページ名のピリオドはスラッシュと間違えて入力してしまった名残りです。でもピリオドも構造体っぽくていいかも(?)。 | | -ちなみにページ名のピリオドはスラッシュと間違えて入力してしまった名残りです。でもピリオドも構造体っぽくていいかも(?)。 |
- | *** (2) | + | *** (2) [#e72edc84] |
| -(2009.03.26) | | -(2009.03.26) |
| -最初の目標:まず何とかしてSDスロットからIPLを起動できることを確認する。すべてはそれからだ! | | -最初の目標:まず何とかしてSDスロットからIPLを起動できることを確認する。すべてはそれからだ! |
| -うーん、どうしたものか。うちにマイクロSDがあったはずだから、今度はそれを実験台にしよう。ということで、発掘できるまで中断。 | | -うーん、どうしたものか。うちにマイクロSDがあったはずだから、今度はそれを実験台にしよう。ということで、発掘できるまで中断。 |
| -あった。でもマイクロSDじゃなくてミニSDだった。うちにはマイクロSDは一つもないようだ。容量はたったの16MB。これは僕が買ったものだと思う。 | | -あった。でもマイクロSDじゃなくてミニSDだった。うちにはマイクロSDは一つもないようだ。容量はたったの16MB。これは僕が買ったものだと思う。 |
- | -よしはりぼてOS動いた。解像度は800x600。やっぱり128MBのA-DATAの壊れていたっぽい。・・・あ、そうだ。起動時間測るんだった。ええと、BIOS時間込みで比較するとこうなった。 | + | -よしはりぼてOS動いた。解像度は800x600。やっぱり128MBのA-DATAは壊れていたっぽい。・・・あ、そうだ。起動時間測るんだった。ええと、BIOS時間込みで比較するとこうなった。 |
| --EeePCで「はりぼてOS」を起動:11秒くらい(BIOS画面が出るまでに5秒、デバイス認識が1秒強、正味の起動時間は5秒弱)。 | | --EeePCで「はりぼてOS」を起動:11秒くらい(BIOS画面が出るまでに5秒、デバイス認識が1秒強、正味の起動時間は5秒弱)。 |
| --Lib50でOSASKを起動:19秒くらい(BIOS画面が出るまでに10秒、メモリチェック等が7秒強、正味の起動時間は1秒強)。 | | --Lib50でOSASKを起動:19秒くらい(BIOS画面が出るまでに10秒、メモリチェック等が7秒強、正味の起動時間は1秒強)。 |
| -ここででてきたKHBIOS-HBというのは迷走したKHBIOSの仕様をOSASK-HBの精神で適当に決めて作ったもの。仕様は1日でできたし、動作もした(というか2009.03.30の起動成功はKHBIOS-HB経由での起動成功)。 | | -ここででてきたKHBIOS-HBというのは迷走したKHBIOSの仕様をOSASK-HBの精神で適当に決めて作ったもの。仕様は1日でできたし、動作もした(というか2009.03.30の起動成功はKHBIOS-HB経由での起動成功)。 |
| --ついでなので解説。KHBIOS-HBは本来のKHBIOSには程遠い。SDなどのMBR内に寄生し、せいぜいディスクイメージ内のアクセスを少し手伝ってくれる程度である。 | | --ついでなので解説。KHBIOS-HBは本来のKHBIOSには程遠い。SDなどのMBR内に寄生し、せいぜいディスクイメージ内のアクセスを少し手伝ってくれる程度である。 |
| + | -とりあえず1.はできたっぽい。 |
| + | -2.もできた。3.はできたけどWinXPでうまく認識できないSDになってしまうことが判明したので、手法を変更。そしたらうまくいった。 |
| + | --詳細はこちら: http://dot.osask.jp/blog2/details.php?bid=87 |
| + | -ということで第一次リリースまでの残りは4.だけ。 |
| + | --でも超忙しいのでこの先はなかなか進まないかもしれない。あと数時間あればできそうなんだけど・・・。 |
| + | -とりあえず4.までできたらどうなるかだけを予告。 |
| + | --材料:EeePC(か、もしくは適当なPC)、SD(か、もしくはUSBメモリなど)、FDとUSB-FDD。 |
| + | --SDにフォーマットをかけてまっさらにする。フォーマットはFATでもなんでもいい(つまりSF16に限定じゃない!)。 |
| + | --そしてそのSDに適当な「はりぼてOS」のディスクイメージを入れる。当然ただの1440KBのファイル。これを入れるときにimgtolとかは必要ない。普通のファイルコピー(というかコピペ)で十分。 |
| + | --次にFDにFreeDOSをいれ、さらにリリースされるはずのpcctol0iも入れる。そしてこのFDからブート。 |
| + | --DOS上でpcctolを実行し、まずSDがどのドライブ番号になっているか確認する。 |
| + | prompt>pcctol M 60 |
| + | prompt>pcctol M 61 |
| + | prompt>pcctol M 62 |
| + | --これくらいやれば多分容量とかからわかるはず。 |
| + | --そしてSDのMBRのバックアップを取る(ここではドライブ番号が60の場合で話を進める)。 |
| + | prompt>pcctol r 60 backup.img 32k |
| + | --これで96KBのバックアップファイルができる(先頭64KBはデバイス情報などのヘッダ)。まあバックアップなんか興味ないという人はこれをやらなくてもいい。 |
| + | --最後に、KHBIOS-HBに対応したMBRをインストールする。 |
| + | prompt>pcctol B 60 khbh_mbr.bin |
| + | --これでおしまい。あとはこのSDから起動するだけ。SDから高速に(少なくともWinXPよりは格段に速い)起動するのを是非一度体験してほしい。 |
| + | --原理としては、pcctolがkhbh_mbr.binを書き込むときにSD内を検索し、どこに起動すべきディスクイメージがあるのかをMBR上に一緒に記録している。だから、imgtolとかでパーティションの先頭からきっちりと書く必要がない(そうしてもいいけど)。Windowsでは同じサイズで同じ名前のファイルを上書きしても、ディスク上の位置が変わることはないので、OSをデバッグしてテストランするときは、何も考えずに普通に上書きコピーすればよい。それだけでupdateされる。 |
| + | --pcctolがディスクイメージを見つける方式なので、SDのフォーマットが何であってもかまわない。しかし断片化はダメ。なおpcctolが見つけられるように「はりぼてOS」のIPLにはKHBIOS-HBシグネチャという40バイトを書いておくことになる(IPLに入らないときは、ディスクイメージ内のどこか好きなところに書いておけるようになっている。つまりファイル領域でもいいので、適当にKHBIOSHB.SYSみたいなファイルを作って、そこにいれておいてもいい。そのへんは柔軟な仕様にしておいた)。 |
| + | --今回の例ではもともとFD用だったOSをSDで起動したが、このKHBIOS-HBを前提にOSを作ることももちろんできて、それだと1440KBという制限はない。100MBでも1GBでもOK。その辺の詳しいやり方は後日まとめようと思う。 |
| + | -(2009.04.01) |
| + | -今日はOSAkkieを800x600化してEeePCで起動させてみた。おお、たのしい。これでOSCにあっきぃさんに見せびらかすぞー(笑)。 |
| + | -このページよりずっと分かりやすいリンク: [[hrb:advance/hddboot]] |
| + | -(2009.04.02) |
| + | -今日は「はりぼてOS」とOSAkkieの入ったSDとSDカードリーダを持って学校へ行き、いくつかのPCでいきなり起動できるかどうか実験してみた。・・・すごい、できる!やっぱりEeePC専用じゃないんだ。こここれがOSASKスタイルというやつなのか。ちょっと感動。先輩の先生にもかなりウケた。やったぜー。試した機種では全部成功したので、もしかするとこの方法はCOLOR(#0000FF){''ほとんどの機種でうまく行くのかもしれない''}。 |
| + | -これはわざわざKHBIOSをインストールしておかなくてもできるということなので、当初のKHBIOS計画よりもすごいことです。 |
| + | -こういうことができるようになると、やっぱり本体の内蔵HDDとかSSDって無くてもいいよなあ、そういう時代が来るべきなんだよなあって思います。 |
| + | -(2009.04.09) |
| + | -現在、開発できなくて「開発したい病」になっています。週末くらいは開発したい! |
| + | -(2009.04.12) |
| + | -[[hrb:advance/hddboot]]にMBRのコードを書いた。このコードは非常にKHBIOS-HBを意識している。KHBIOS-HBでは、AT/TOWNS/98のいずれの機種からでも、そしてどのデバイスから起動しても(それはたとえばATでPCカードスロットのCFから起動したり、TOWNSのメモリカードスロットから起動したり、FDを複数のパーティションに分けて起動したとしても)、すべて共通に far-CALL 0x60:0x1b0 で指定したセクタが読めて、 far-CALL 0x60:0x1b4 で指定したセクタに書けるようになっている(したい)。 |
| + | -更に欲を言えばドライブを自由に指定したい(=実際のデバイス番号に限らず、ディスクイメージ番号みたいなもの)が、そこまでのプログラムを600-7ffに格納することはできないので、これはまた別の方法を考える必要があるだろう。とりあえず今回はブートしたディスクイメージに限定して上記のようなインターフェースを共通に提供することだけを考えることにした。 |
| + | |
| + | *** (3) [#a9070925] |
| + | -脱線的補足情報: |
| + | --EeePC900XのVBE画面モード情報 |
| + | |0x0105|解像度・色深度情報などはすべて0。外部ディスプレイを繋がないとデータが取れないのかもしれず| |
| + | |0x0117|上に同じ| |
| + | |0x0118|上に同じ| |
| + | |0x0112|32bitカラー、640x480| |
| + | |0x0114|16bitカラー、800x600| |
| + | |0x0115|32bitカラー、800x600| |
| + | |0x0101|8bitカラー、640x480| |
| + | |0x0103|8bitカラー、800x600(ただしVRAM的には832x600。つまり横に画面外の32ドットがある)| |
| + | |0x0111|16bitカラー、640x480| |
| + | --見ての通り、VBEだけでは1024x600という設定は用意されていないようだ。残念。どの画面モードにしても画面いっぱいに表示される。つまりドットが横方向に伸びた状態になり、明らかにゆがんで表示される。まあ我慢できないことはない(というか安いので何でも許せちゃう・・・笑)。・・・できれば1024x768設定をすると下の168ドットが画面外に出て見えないだけ、とかだったら良かったのに・・・。 |
| + | --参考: http://community.osdev.info/?VESA |
| + | * こめんと欄 [#qb52afdb] |
| + | - Windows のコントロールパネルで intel GMA のアスペクト比を固定モードにすると、BIOS や OSASK 等の画面も 1:1 に固定されるようです(当方 EeePC を保有していませんので参考まで)。 -- [[名無しさん]] &new{2009-04-01 (水) 23:26:45}; |
| + | - おおなんと!これはいい事を聞きました!・・・早速試してみたところ、確かにWinXP内ではうまくいっているのですが、再起動して「はりぼてOS」を起動して解像度を800x600にするとやっぱり横長になってしまいました。残念。起動時にBIOSで毎回再設定をかけている機種なのかもしれません。 -- [[K]] &new{2009-04-01 (水) 23:42:41}; |
| | | |
- | * こめんと欄 | |
| #comment | | #comment |