GXemulは多くのプラットフォーム上(NetBSD, Linux等)で動作するエミュレータです(オープンソース)。
GXemulがエミュレートするネットワークデバイスは限定されています。
ホストOSがNetBSDの場合、そのGXemulはNetBSDのGXemulはDECchip 21143 Ethernetをエミュレートします。
今回はVirtual PC 2007環境のNetBSD/i386にGXemulを導入し、そのGXemulでNetBSD/macppcを動作させる手順を中心に紹介します。
尚、ここで使用するNetBSDはi386版、macppc版共にver 3.1とします。
更に、VMware Server上のNetBSD/i386 4.0上のGXemul環境でのNetBSD/macppc 3.1についても若干紹介します。
GXemulがあればPowerPCのMacマシン実機がなくてもクロスコンパイルしたプログラムをftp転送して動作確認できるので重宝します。
1.Virtual PC 2007の実行環境
Virtual PC 2007の実行環境(ハードウェア/ソフトウェア構成)は以下の通りです。
・CPU:Intel Core 2 Quad Q6600
・メモリ:8GB
・VGAカード:nVIDIA GeForce 8800GT
・OS:Windows Vista Ultimate(32bit版)
2.Virtual PC 2007上でのNetBSD/i386の構築
(1)Virtual PC 2007環境でのNetBSD/i386のインストール手順詳細はこちらをご参照下さい。
※GNOMEデスクトップの導入手順も記載済みです。
(2)NetBSD/i386へのGXemul(ver 0.4.3)の導入手順は以下の通りです。
# cd /usr/pkgsrc/emulators/gxemul
# make install clean CLEANDEPEND=1
3.GXemul上でのNetBSD/macppcの構築
# dd if=/dev/zero of=nbmacppc31.img bs=1m count=2048 |
gxemul -x -e g3 -d nbmacppc31.img -d b:macppccd-3.1.iso -j macppc/binary/kernel/netbsd-INSTALL.gz |
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 3.1 (INSTALL) #0: Tue Oct 31 05:13:48 UTC 2006 builds@b1.netbsd.org:/home/builds/ab/netbsd-3-1-RELEASE/macppc/200610302 053Z-obj/home/builds/ab/netbsd-3-1-RELEASE/src/sys/arch/macppc/compile/INSTALL total memory = 65536 KB avail memory = 53420 KB mainbus0 (root) cpu0 at mainbus0: 750 (Revision 2.2), ID 0 (primary) cpu0: HID0 809000a4 |
gxemul -x -e g3 -d nbmacppc31.img -d b:macppccd-3.1.iso -j macppc/binary/kernel/netbsd-INSTALL.gz |
Terminal type? [vt100] Enter Erase is backspace. (I)nstall, (S)hell or (H)alt ? s Enter # mount /dev/wd0a /mnt /dev/wd0a: file system not clean (fs_clean=4); please fsck(8) /dev/wd0a: lost blocks 0 files 0 # chroot /mnt # vi /etc/rc.conf 「rc_configured=NO」を「rc_configured=YES」に変更します。 以下の設定を追加します。 hostname="gxemulppcnb31" defaultroute="10.0.0.254" ifconfig_tlp0="inet 10.0.0.1 netmask 255.255.255.0" keymap="jp.106" # vi /etc/resolv.conf 下記の行を追加します。 nameserver 10.0.0.254 # /etc/rc.d/network start Starting network. Hostname: gxemulppcnb31 IPv6 mode: host Configuring network interfaces: tlp0. add net default: gateway 10.0.0.254 Adding interface aliases: Terminal type is vt100. # ping -c 1 www.yahoo.com|grep icmp ※pingのテストです。 64 bytes from 209.131.36.158: icmp_seq=0 ttl=2 time=1.643 ms # shutdown -h now |
gxemul -x -e g3 -d nbmacppc31.img netbsd-INSTALL.gz |
ftp> lcd / Local directory now: / ftp> mput netbsd local: netbsd remote: netbsd 500 'EPSV': command not understood 227 Entering Passive Mode ( ,199,246). 125 Data connection already open; Transfer starting. 11% |**** | 640 KB 31.97 KB/s - stalled -tlp0: transmit timeout 16% |***** | 896 KB 20.83 KB/s - stalled -tlp0: transmit timeout 20% |******* | 1152 KB 11.06 KB/s - stalled -tlp0: transmit timeout 24% |******** | 1376 KB 8.18 KB/s - stalled -tlp0: transmit timeout 28% |********** | 1600 KB 6.89 KB/s - stalled -tlp0: transmit timeout 28% |********** | 1600 KB 6.50 KB/s - stalled -^C send aborted. Waiting for remote to finish abort. 226 Transfer complete. 1736704 bytes sent in 04:06 (6.88 KB/s) Continue with mput [anpqy?]? n ftp> bye |
# mkisofs -o dir1.iso -R -J dir1 |
gxemul -x -e g3 -d nbmacppc31.img netbsd-INSTALL.gz |
# dd if=/dev/zero of=nbmacppc31.img bs=1M count=2048 |
gxemul -x -e g3 -d nbmacppc31.img -d b:macppccd-3.1.iso -j macppc/binary/kernel/netbsd-INSTALL.gz |