Running Solaris 2.6 (sparc) on qemu-system-sparc in Linux x86_64 (Mint 19)
QEMU on Linux hosts
Documentation/Platforms/SPARC
Solaris/sparc under qemu how-to
QEMU how to setup Tun/Tap + bridge networking
Configuring Guest Networking
QEMU/Networking
[Linux KVM] Linux KVM concept - Networking
QEMU 可以模擬其他種類的 CPU。
實測可以模擬 Sparc,但是 Sparc64 還做不出來。
模擬 Sparc CPU 我只做出 SunStation 5,測試其他機型也做不出來....
主要步驟:
- 安裝 CentOS 7.6
- 安裝 QEMU 3.1
- 透過 QEMU 安裝 Solaris
- 設定 CentOS network bridge 讓 Solaris 連外
- 啟動 Solaris
- 安裝時選擇 server with GUI,設定 static IP,disable security profile
- 安裝後關閉 firewall,方便測試網路設定
- systemctl stop firewalld
- systemctl disable firewalld
- vi /etc/selinux/config; SELINUX=disabled
- setenforce 0
- 安裝需要的軟體
- yum install net-tools
- yum install git glib2-devel libfdt-devel pixman-devel zlib-devel
- yum install libaio-devel libcap-devel libiscsi-devel
- download qemu-3.1.0.tar.xz
- tar Jxvf qemu-3.1.0.tar.xz
- cd qemu-3.1.0/
- ./configure
- make
- make install
透過 QEMU 安裝 Solaris
- download Solaris5.6 and ss5.bin (BIOS)
- tar zxvf sol26.tar.gz
- qemu-img create -f qcow2 disk.img 36G # create disk file
- 執行 qemu,指定用光碟開機
qemu-system-sparc -L . -m 128 -M SS-5 -bios ss5.bin \
-drive file=disk.img,bus=0,unit=0,media=disk \
-drive file=solaris-2.6-sparc.iso,bus=0,unit=6,media=cdrom \
-display vnc=:1
- format disk 指令:format
- select disk 0
- disk type: other
- cylinders: 24620
- heads: 27
- sectors/track: 107
- disk type name: Qemu36GB
- 開始安裝 Solaris
- 安裝的最後一個畫面要注意!選 Manual Reboot
- vi /a/etc/system
- add set scsi_options=0x58
- reboot
- ok mode 指定硬碟開機指令: boot disk0:
- 如果安裝其他版本的 Solaris 需要第二片光碟,用 Ctrl+C跳出qemu,再執行指令
qemu-system-sparc -L . -m 128 -M SS-5 -bios ss5.bin \
-drive file=disk.img,bus=0,unit=0,media=disk \
-drive file=sol-9-u7-sparc-v2.iso,bus=0,unit=6,media=cdrom \
-display vnc=:1
設定 CentOS network bridge 讓 Solaris 連外
- 新增 bridge 和 tap 讓 Solaris 網路卡可以連出來
- CentOS 網路卡名稱可以用 ifconfig -a 查看 (Ex: enp0s25)
- Solaris 開機前先執行以下的 script 設定 network bridge
- CentOS 的 IP:192.168.10.178,Solaris 的 IP:192.168.10.177
ip link add br0 type bridge # 新增 bridge 虛擬網卡
ip link set enp0s25 master br0 # 把 CentOS 實體網卡加入 bridge
ifconfig br0 up promisc # 設定 br0 為 promiscuous mode
ifconfig enp0s25 0.0.0.0
ifconfig br0 192.168.10.178 netmask 255.255.255.0 # 把實體網卡的 IP 給 br0
ip tuntap add tap0 mode tap # 新增 tap 虛擬網卡
ifconfig tap0 up promisc # 設定為 promiscuous mode
ip link set tap0 master br0 # 把 tap0 加入 bridge
sysctl -w net.ipv4.ip_forward=1 # 讓 CentOS 可以 routing
route add -host 192.168.10.177 dev tap0 # 把 Solaris IP 送到 tap0
啟動 Solaris
- 設定 tap0 的 MAC address,執行指令 (不會停在 ok mode,會直接開 Solaris)
qemu-system-sparc -L . -m 256 \
-drive file=disk.img,bus=0,unit=0,media=disk \
-net nic,macaddr=DE:AD:BE:EF:52:08 -net tap,ifname=tap0,script=no,downscript=no \
-display vnc=:1
Update:
網路用promiscuous bridge mode,所以不適合放到VMware上。
如果要放到VMware必須開 promiscuous mode。
Update 2019/1/2:
安裝為 SunStation 20 的方法。
但每次開機會停在 OK mode。
這一篇提到可以用 expect 試試看。
沒有留言:
張貼留言