inferno」タグアーカイブ

inferno in QEMU on WindowsXP

inferno Install完了画面
QEMUにNative infernoをインストールしたときのメモ

  • 準備
    1. QEMU on Windowsをダウンロード
    2. inferno CD 2007May10をダウンロード
    3. QEMUを適当なところに解凍する(例:”C:\QEMU”)
    4. infernoCDをQEMUのディレクトリ内に解凍する(例:”C:\QEMU\inf.iso”)
  • インストール
    1. 1GBのHardDiskImageの作成(コマンドプロンプト)
      C:\QEMU>qemu-img create -f qcow inferno.img 1G
    2. infernoCDからBoot(コマンドプロンプト)
      C:\QEMU>qemu -L . -m 128 -boot d -cdrom inf.iso -hda inferno.img
    3. インストールシェルスクリプトの実行(QEMU)
      ;sh install.sh -m /dev/sdD0 /dev/sdC0
    4. パーティションをPlan9で作成(QEMU)
      >>> a p1
      start cylinder: 0
      end [0..1024] 1024
      >>> A p1
      >>> w
      >>> q
      
    5. 再起動されるので再度インストールシェルスクリプトを実行(QEMU)
      ;sh install.sh /dev/sdD0 /dev/sdC0
      >>> w
      >>> q
      
    6. 「Remove the CD and reboot」と表示されたらQEMUのWindowsを閉じる
  • 起動確認
    1. (コマンドプロンプト)
      C:\QEMU>qemu.exe -L . -m 128 -hda inferno.img -net nic,model=rtl8139
    2. (QEMU)
      ; wm/wm
      wmlib: can't allocate Display: .initdisplay: /dev/draw/new:
      ;
      

    とりあえず、動きはしたけれど、GUIが立ち上がらない。
    VGAが見えてない?
    QEMUはCL-GD5446をエミュレートしてらしい。
    で、ソースをあさってみると os/pcに

    • vgaclgd542x.c
    • vgaclgd546x.c

    はあった。つまり・・・未対応?
    もしかしたら応用でドライバかけるかもしれないけど今のところ見送り
    QEMUはVESA起動もできるみたいなのでそちらも試してみる

    1. (コマンドプロンプト)
      C:\QEMU>qemu.exe -L . -m 128 -hda inferno.img -net nic,model=rtl8139 -vga std
    2. (QEMU)
      ; wm/wm
      wmlib: can't allocate Display: .initdisplay: /dev/draw/new:
      ;
      

    やっぱり駄目っぽい。
    このCDに入ってるカーネルにはVGAドライバが組み込まれてないのかな?
    このCD起動カーネルと昨日のFD起動カーネルではファイルサイズが結構違う。
    つまり、コンパイルした内容が違うってことだろうけど、
    このCDのカーネルと差し替えれるカーネルをつくるにはどうすればいいんだろう。
    CDのカーネルと同じコンパイル条件を作りたいんだけど、
    そもそもコンパイルオプションとかがよくわかってない。

  • 参考

inferno in VirtualBox on WindowsXP

inferno起動画面
inferno を VirtualBox上で動くように Ubuntu で コンパイル したときのメモ

  • ソースコードの入手
    1. $apt-get install mercurial
    2. $cd /usr
    3. $sudo hg clone https://inferno-os.googlecode.com/hg/ inferno
    4. $sudo chmod -R 777 /usr/inferno

    どうも、コンパイルが通らないのでVita Nuovaのバージョンを利用する。

    1. inferno Fourth Edition(inferno-20100120.tgz)をダウンロード
    2. inferno-20100120.tgzを解凍し、中身を/usr/inferno/へ上書き
  • コンパイル用ライブラリのインストール
    1. $sudo apt-get install libxpm-dev
    2. $sudo apt-get install libxext-dev
    3. $sudo apt-get install x11proto-xext-dev
  • infernoのコンパイル
    1. $sudo vi inferno/mkconfig
      
      @@ -17,0 +18,0 @@
      -	SYSHOST=Plan9
      +#	SYSHOST=Plan9
      +	SYSHOST=Linux
      @@ -25,0 +27,0 @@
      -#	OBJTYPE=368
      -	OBJTYPE=$objtype
      +	OBJTYPE=368
      +#	OBJTYPE=$objtype
      
    2. $sh makemk.sh
    3. $export PATH=$PATH:/usr/inferno/Linux/368/bin/
    4. $mk nuke
    5. $mk install
  • PBS(PCパーティションブートセレクタプログラム)と9load(カーネルローダ)のコンパイル
    1. $mkdir /usr/inferno/Inferno/386/lib/
    2. $sudo chmod -R 777 /usr/inferno/Inferno/386/lib/
    3. $cd /usr/inferno/os/boot/pc/
    4. $mk pbs.install 9load.install
  • カーネルコンパイル
    1. $cd /usr/inferno/os/pc
    2. $vi ether79x970.c
      
      @@ -540,6 +540,7 @@
      	switch(x&0xFFFFFFF){
      	case 0x2420003: /* PCnet/PCI 79C970 */
      	case 0x2621003: /* PCnet/PCI II 79C970A */
      +	case 0x2625003: /* PCnet/FAST III 79C973 */
      		break;
      	default:
      		print("#l%d: unknown PCnet card version %.7ux\n",
      
    3. $vi pc
      
      @@ -48,10 +48,11 @@
      	kern
      
       link
      -	ether2114x      pci
      +	ether79c970     pci
      +#	ether2114x      pci
       #	ether82557      pci
      -	ether83815      pci
      -	etherelnk3      pci
      +#	ether83815      pci
      +#	etherelnk3      pci
      	ps2mouse
      	ethermedium
       #	pppmedium ppp compress
      @@ -70,7 +71,7 @@
      	math
      
       init
      -	wminit
      +	shell
      
       code
      	int kernel_pool_pcnt = 10;
      @@ -79,7 +80,7 @@
      	int image_pool_pcnt = 40;
      	int cflag=0;
      	int swcursor=0;
      -	int consoleprint=0;
      +	int consoleprint=1;
      
       port
      	alarm
      @@ -137,3 +138,5 @@
      	/dis/lib/daytime.dis
      	/dis/lib/auth.dis
      	/dis/lib/ssl.dis
      +	/dis/lib/arg.dis
      +	/dis/lib/filepat.dis
      
    4. $mk
  • カーネルロード設定ファイルの作成
    1. $vi /usr/inferno/os/pc/plan9.ini
      
      bootfile=fd0!ipc.gz
      
  • フロッピーイメージの作成
    1. $emu
    2. ;cd os/pc
    3. ;gzip ipc
    4. ;disk/format -b /Inferno/386/pbs -df inferno.img /Inferno/386/9load plan9.ini ipc.gz

    出来上がったinferno.imgをVirtualBoxにマウントしBoot
    確かに起動はできたが、たまにPanicを起こす。
    infernoもPlan9系だからVirtualBoxではだめなのかもしれない。
    それに、Native infernoをコンパイルできたけど、FD起動なんだよね。
    Plan9のブートローダで起動可能ってことはこれで分かったんだけど、
    HDDからブートさせたい・・・Native infernoを使うにはPlan9の勉強した方がいいかもしれない。
    次回はinferno in QEMU on WindowsXPを試してみよう。

  • 参考