在一些较为古老的工艺中,memory compiler只提供solaris版本,比如smic 180nm工艺。这个版本不能运行在vmware下的solaris虚拟机中(朋友们不用尝试了)。因为,他要求CPU也是sun的。
simics是一个可以仿真CPU的虚拟机,具体原理我也不太清楚。但是,是唯一可以在windows电脑上运行sun CPU版本的solaris虚拟机。并且我成功运行起了memory compiler。如下图。
安装过程十分曲折。今天在这里给各位朋友介绍一下。
一。 simics安装
先使用keygen生成license.lic(使用windows用户名,我的是admin)
一定要先运行keygen生成license.lic!!!
然后运行simics-win32过程中会出现选择license路径,选择刚生成的路径即可
license.lic存放路径不要有中文,不要有空格。
二。solaris9安装
先打开simics,选择一个workspace,然后再进行下述步骤!!
- 准备安装文件的iso 文件安装盘1 和2
分别将sol-9-u7-sparc-v1.zip和sol-9-u7-sparc-v2.zip解压缩,得到的两个iso镜像复制到Virtutech Simics\workspace\targets\sunfire 目录 - 通过new session 分打开workspace\targets\sunfire\peanut-sol9-cd-install1.simics
当出现下面界面时:
3. 通过new session 分打开workspace\targets\sunfire\peanut-sol9-cd-install2.simics
出现下面界面,表示OK了
4.通过new session 分打开workspace\targets\sunfire\peanut-sol9-cd-install3.simics
出现这个界面表示完成了。
5. 启动安装好的系统
new session 选workspace\targets\sunfire\peanut-common.simics
在simics中输入run。可以看到solari9被成功运行起来了!!!
注意,此时你只完成了万里长征的一小步。
三。Checkpointing 方法保存target系统状态
该方法会原模原样的恢复到目标系统的先前状态,你先前输入的命令也会显示出来,真真正正的将先前的某一个时刻复原。该方法为[1]:
In order to write a checkpoint, stop the simulation first.
running>stop
simics>
Then, select File =>Save Checkpoint As in the menu. Name thecheckpoint after boot.conf. Press Save.
The state is now saved, and you can safely terminate the simulation.Select File =>Close Session and confirm that you want to do this. All that remains of the simulation is the checkpoint we just created. To load the checkpoint, select File =>Open Checkpoint and open the after boot.conf file you created earlier.
四。如何进入CDE图形界面
1. 将如下代码添加到peanut-common.simics, 可以是%workshop% 下的
peanut-common.simics , 也可以是%script% 下的peanut-common.simics ( c:\program
files\virtutech\.... )
经过尝试,需要在run-command-file "%script%/sunfire-6500-system.include"之前添加以下代码,否则图形出不来:
script-branch {
wait-for-variable machine_defined
$pcibrd = (create-sunfire-pci-board mac_address = "10:10:10:10:10:14")
$pgx64 = (create-sun-pci-pgx64)
$gfxcon = (create-std-graphics-console)
$keyboard = (create-sun-type5-keyboard)
$mouse = (create-sun-type5-mouse)
$scsi_bus1 = (create-std-scsi-bus)
$system.connect slot2 $pcibrd
$pcibrd.connect pci-slot0 $pgx64
$pcibrd.connect $scsi_bus1
$system.connect keyboard $keyboard
$system.connect mouse $mouse
$pgx64.connect console $gfxcon
$gfxcon.connect keyboard $keyboard
$gfxcon.connect mouse $mouse
}
2. 将%workshop% 下的peanut-setup.include 进行适当修改,
if $os != none {
#load-persistent-state prefix = (get-component-prefix) $state
# user override
$system.set-nvram-hostid $hostid
$system.set-nvram-mac $mac_address
}
将上面一段中load-persistent-state prefix = (get-component-prefix) $state 这一句注释掉。
同时,屏蔽以下3行(自动文本窗口登录root)
#local $con = ($console.get-component-object con)
#$con.wait-for-string "ogin: "
#$con.input "root\n"
3 将sunfire-6500-system.include 进行适当修改,注释掉如下两句, 即将ttya 上的text
console 拿掉。
#$console = (create-std-text-console)
#$system.connect ttya $console
4 启动simics,加载peanut-common.simics, 应该graphics console 就出来了,
但是boot disk1 -v 会失败,报错disk1 wrong magic number 。但是没事,可以继续下面的步骤
5 在simics 中,依次输入如下命令:
simics>stop
simics>load-persistent-state prefix = (get-component-prefix) peanut-sol9.state
6 进入图形console 中,键入如下命令启动
boot disk1 -rv
记住一定要用-r, 因为我的系统是在text console 下安装, 图形设备都没有进行配置,
使用-r 让系统自动配置显卡。
在solaris 9 下cde 界面过会就应该出来了。
注意:将鼠标移入graphics console 中,按住shift 键,鼠标右击, 可以将鼠标移入graphics
console 中,再次按住shift ,鼠标右击离开图形console, 就想vmware 中的组合键control+alt
一样。
每次退出虚拟机前,需保存当前状态:
1.
Simics> stop
2.
Simics> save-persistent-state psol9_***.state
重启时, load 上次保存的状态:
Simics> load-persistent-state prefix = (get-component-prefix) psol9_***.state
也可以使用命令write-configuration icer_ok.boot
之后file-->open checkpoint 打开icer_ok.boot这个文件
上述步骤中设置4021, 4023, 4080端口来访问虚拟机的ftp, telnet和http服务,可以使用FTP来传memory compiler工具,vncserver工具,打开vnc服务,即可远程VNC操作simics虚拟服务器!
五。Solaris9上开启telnet服务和允许root远程登陆
连接到虚拟机的步骤:
1. 暂停虚拟机
在simis>
输入命令stop
2. 接着执行connect-real-network IP 地址
IP 地址,是安装了solaris 系统的hme0IP 地址,我的安装后的地址是10.10.0.5
就输入connect-real-network 10.10.0.5
此时显示:
simics> NAPT enabled with gateway 10.10.0.1 on link link0.
Host TCP port 4021 -> 10.10.0.5:21 on link link0
Host TCP port 4023 -> 10.10.0.5:23 on link link0
Host TCP port 4080 -> 10.10.0.5:80 on link link0
Real DNS enabled at 10.10.0.1 on link link0
3. simics>
输入c
继续运行
4. 开放root登录权限
修改/etc/default/login文件,注释掉其中的:
CONSOLE=/dev/console
5. 修改root用户的缺省shell为bash
修改/etc/passwd文件,将root用户的shell改为/usr/bin/bash
root:x:0:0:Super-User:/:/usr/bin/bash
6. 通过本地网卡的地址,连接到solaris 系统
如,我本地网卡的IP 地址是192.168.1.180
要telnet 到solaris 系统,就telnet 192.168.1.180 4023
就可以看到solaris 的登录画面了,过程如下:
C:\Documents and Settings\>telnet 192.168.1.180 4023
SunOS 5.9
login:
七。启动FTP
1. # vi /etc/ftpd/ftpusers
注释掉root行
在这个文件里的用户都不能访问ftp。把root注释掉就行。
2. 给root添加密码
passwd root
密码是:123456
3. 用ftp工具连接 ftp://192.168.xxx.xxx:4021 root 密码
八。VNCSERVE启动
- 用ftp把vnc-4_1_3-sparc_solaris.pkg.gz传进/export/home 文件夹内
- cd /export/home
- gunzip vnc-4_1_3-sparc_solaris.pkg.gz
- pkgadd -d vnc-4_1_3-sparc_solaris.pkg
- 一路yes
- export PATH=$PATH:/usr/local/bin:/usr/openwin/bin/
- 修改 /.vnc/xstartup
把原来的内容全部注释掉,确保黄色红体部分正确。
#!/bin/sh
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
xrdb $HOME/.Xdefaults
/usr/dt/bin/dtwm
- 执行
vncserver :1
这表示打开vncserver服务
要关闭vncserver服务,则输入:
vncserver –kill :1
- 在simics中执行
connect-real-network-port-in ethernet-link = link0 target-ip = 10.10.0.5 target-port = 5901
- 在windows的客户端
打开后,应该呈现如下画面:
喜极而泣!!!
别急,还有坑。
九。安装memory compiler
- 用ftp把SM00CD500-FE-00000-r0p0-00rel0.tgz传进solaris
- gzip -d SM00CD500-FE-00000-r0p0-00rel0.tgz
- tar xvf ……tar
- 修改/etc/profile
添加黄底红字。
trap "" 2 3
export LOGNAME PATH
PATH=/usr/local/bin:/usr/openwin/bin/:%mc解压地址%/aci/rf1shd/bin:$PATH ;
export PATH
MANPATH=/usr/share/man:/usr/local/man ;
export MANPATH
LD_LIBRARY_PATH=/usr/local/lib ; e
xport LD_LIBRARY_PATH
EDITOR=/usr/bin/vi ;
export EDITOR
ulimit -n 8192
if [ "$TERM" = "" ]
then
if /bin/i386
then
TERM=sun-color
else
TERM=sun
fi
export TERM
fi
# Login and -su shells get /etc/profile services.
# -rsh is given its environment in its .profile.
case "$0" in
-sh | -ksh | -jsh | -bash)
if [ ! -f .hushlogin ]
then
/usr/sbin/quota
# Allow the user to break the Message-Of-The-Day only.
trap "trap '' 2" 2
/bin/cat -s /etc/motd
trap "" 2
/bin/mail -E
case $? in
0)
echo "You have new mail."
;;
2)
echo "You have mail."
;;
esac
fi
esac
umask 022
trap 2 3
---------------------
5. 打开终端,输入rf1shd 就可以启动gui画面了。
其他的就看说明文档咯。
6. 赶紧保存一下checkpoint吧!!
十。启动simics
- open checkpoint
选peanut-sol97.state
2. 在simics中输入:
connect-real-network 10.10.0.5
connect-real-network-port-in ethernet-link = link0 target-ip = 10.10.0.5 target-port = 5901
run
3. 就可以使用telnet和vncserver了。
4. Root密码:123456