18: 2009-04-01 (水) 23:42:42 [6] | 現: 2024-01-08 (月) 12:58:44 k-tan[7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | * 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起動できたら、(我が家での)トータル起動時間最速マシンになりそうな気がするんです。・・・で、今回は起動させるにはどうしたらいいかをあれこれ実験してみようと思います。 | ||
Line 7: | Line 8: | ||
-この話題は実はKHBIOSに直接関係ないのですが(KHBIOSを使わないので)、しかし無関係というわけでもないので(KHBIOS系のツールを多用するので)、まあここに分類するのは許してください。 | -この話題は実はKHBIOSに直接関係ないのですが(KHBIOSを使わないので)、しかし無関係というわけでもないので(KHBIOS系のツールを多用するので)、まあここに分類するのは許してください。 | ||
-ちなみにページ名のピリオドはスラッシュと間違えて入力してしまった名残りです。でもピリオドも構造体っぽくていいかも(?)。 | -ちなみにページ名のピリオドはスラッシュと間違えて入力してしまった名残りです。でもピリオドも構造体っぽくていいかも(?)。 | ||
- | *** (2) | + | *** (2) [#e72edc84] |
-(2009.03.26) | -(2009.03.26) | ||
-最初の目標:まず何とかしてSDスロットからIPLを起動できることを確認する。すべてはそれからだ! | -最初の目標:まず何とかしてSDスロットからIPLを起動できることを確認する。すべてはそれからだ! | ||
Line 59: | Line 60: | ||
-うーん、どうしたものか。うちにマイクロ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秒強)。 | ||
Line 101: | Line 102: | ||
prompt>pcctol B 60 khbh_mbr.bin | prompt>pcctol B 60 khbh_mbr.bin | ||
--これでおしまい。あとはこのSDから起動するだけ。SDから高速に(少なくともWinXPよりは格段に速い)起動するのを是非一度体験してほしい。 | --これでおしまい。あとはこのSDから起動するだけ。SDから高速に(少なくともWinXPよりは格段に速い)起動するのを是非一度体験してほしい。 | ||
- | --原理としては、pcctolがkhbh_mbr.binを書き込むときにSD内を検索し、どこに起動すべきディスクイメージがあるのかをMBRに一緒に記録している。だから、imgtolとかでパーティションの先頭からきっちりと書く必要がない(そうしてもいいけど)。Windowsでは同じサイズで同じ名前のファイルを上書きしても、ディスク上の位置が変わることはないので、OSをデバッグしてテストランするときは、何も考えずに普通に上書きコピーすればよい。それだけでupdateされる。 | + | --原理としては、pcctolがkhbh_mbr.binを書き込むときにSD内を検索し、どこに起動すべきディスクイメージがあるのかをMBR上に一緒に記録している。だから、imgtolとかでパーティションの先頭からきっちりと書く必要がない(そうしてもいいけど)。Windowsでは同じサイズで同じ名前のファイルを上書きしても、ディスク上の位置が変わることはないので、OSをデバッグしてテストランするときは、何も考えずに普通に上書きコピーすればよい。それだけでupdateされる。 |
--pcctolがディスクイメージを見つける方式なので、SDのフォーマットが何であってもかまわない。しかし断片化はダメ。なおpcctolが見つけられるように「はりぼてOS」のIPLにはKHBIOS-HBシグネチャという40バイトを書いておくことになる(IPLに入らないときは、ディスクイメージ内のどこか好きなところに書いておけるようになっている。つまりファイル領域でもいいので、適当にKHBIOSHB.SYSみたいなファイルを作って、そこにいれておいてもいい。そのへんは柔軟な仕様にしておいた)。 | --pcctolがディスクイメージを見つける方式なので、SDのフォーマットが何であってもかまわない。しかし断片化はダメ。なおpcctolが見つけられるように「はりぼてOS」のIPLにはKHBIOS-HBシグネチャという40バイトを書いておくことになる(IPLに入らないときは、ディスクイメージ内のどこか好きなところに書いておけるようになっている。つまりファイル領域でもいいので、適当にKHBIOSHB.SYSみたいなファイルを作って、そこにいれておいてもいい。そのへんは柔軟な仕様にしておいた)。 | ||
--今回の例ではもともとFD用だったOSをSDで起動したが、このKHBIOS-HBを前提にOSを作ることももちろんできて、それだと1440KBという制限はない。100MBでも1GBでもOK。その辺の詳しいやり方は後日まとめようと思う。 | --今回の例ではもともとFD用だったOSをSDで起動したが、このKHBIOS-HBを前提にOSを作ることももちろんできて、それだと1440KBという制限はない。100MBでも1GBでもOK。その辺の詳しいやり方は後日まとめようと思う。 | ||
Line 107: | Line 108: | ||
-今日はOSAkkieを800x600化してEeePCで起動させてみた。おお、たのしい。これでOSCにあっきぃさんに見せびらかすぞー(笑)。 | -今日はOSAkkieを800x600化してEeePCで起動させてみた。おお、たのしい。これでOSCにあっきぃさんに見せびらかすぞー(笑)。 | ||
-このページよりずっと分かりやすいリンク: [[hrb:advance/hddboot]] | -このページよりずっと分かりやすいリンク: [[hrb:advance/hddboot]] | ||
- | *** (3) | + | -(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画面モード情報 | --EeePC900XのVBE画面モード情報 | ||
Line 121: | Line 132: | ||
--見ての通り、VBEだけでは1024x600という設定は用意されていないようだ。残念。どの画面モードにしても画面いっぱいに表示される。つまりドットが横方向に伸びた状態になり、明らかにゆがんで表示される。まあ我慢できないことはない(というか安いので何でも許せちゃう・・・笑)。・・・できれば1024x768設定をすると下の168ドットが画面外に出て見えないだけ、とかだったら良かったのに・・・。 | --見ての通り、VBEだけでは1024x600という設定は用意されていないようだ。残念。どの画面モードにしても画面いっぱいに表示される。つまりドットが横方向に伸びた状態になり、明らかにゆがんで表示される。まあ我慢できないことはない(というか安いので何でも許せちゃう・・・笑)。・・・できれば1024x768設定をすると下の168ドットが画面外に出て見えないだけ、とかだったら良かったのに・・・。 | ||
--参考: http://community.osdev.info/?VESA | --参考: http://community.osdev.info/?VESA | ||
- | * こめんと欄 | + | * こめんと欄 [#qb52afdb] |
- Windows のコントロールパネルで intel GMA のアスペクト比を固定モードにすると、BIOS や OSASK 等の画面も 1:1 に固定されるようです(当方 EeePC を保有していませんので参考まで)。 -- [[名無しさん]] &new{2009-04-01 (水) 23:26:45}; | - 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}; | - おおなんと!これはいい事を聞きました!・・・早速試してみたところ、確かにWinXP内ではうまくいっているのですが、再起動して「はりぼてOS」を起動して解像度を800x600にするとやっぱり横長になってしまいました。残念。起動時にBIOSで毎回再設定をかけている機種なのかもしれません。 -- [[K]] &new{2009-04-01 (水) 23:42:41}; | ||
#comment | #comment |
(This host) = http://osask.net