目录
前言
在一些较为古老的工艺中,memory compiler只提供solaris sparc版本,比如smic 180nm工艺。据我了解,90nm及以下工艺的memory compiler才支持Linux系统。180nm工艺的memory compiler支持的系统是solaris 8 sparc版本,实测solaris 9 sparc也是行的,solaris x86版本的则不行。注意,这里的sparc指的是该系统是基于RISV精简指令集CPU运行的Unix系统,故在x86的系统无法运行,所以VMware和VirtualBox是不能装solaris sparc版本的系统(大家不必再去试了)。而simics是一个可以在x86系统上仿RISV精简指令CPU的虚拟机,所以可以安装solaris sparc版本的系统,并且可以运行memory compiler,如下图。
安装过程十分麻烦,因为这系统和虚拟机已经过时了,网上的教程都不齐全,我走了很多弯路,这里给大家详细介绍完整的安装过程。
一、simics虚拟机安装
先在本文章的末尾获取资源,是一个压缩包,解压之后里面有一个keygen.exe,有可能杀毒软件会报错,把杀毒软件关掉就行。双击keygen.exe生成license.lic(用Windows的用户名,我的是user),如下图。注意用户名不能有中文或空格,否则后面会报错。
Generate之后会在当前目录下生成一个license.lic文件,然后运行simics-win32安装simics,过程中会出现选择license路径,选择刚才生成的license.lic即可,license.lic存放路径不要有中文,不要有空格。
二、solaris 9 sparc系统安装
打开simics的时候,会提示选择一个workspace的路径,如下图,这个路径可以自己随意定
然后点击ok就打开了simics,如下图
从文章末尾获取solaris 9 sparc版本的压缩包,解压后会得到两个iso文件,两个iso文件名须为sol-9-u7-sparc-v1.iso和sol-9-u7-sparc-v2.iso,如果不是则要改成一样的。将其复制到上一步指定的workspace\targets\sunfire目录下。
simics安装系统是调用自带的脚本去安装的,该脚本会有一个问题:
系统安装配置为DHCP动态获取IP地址,设置本机域名和DNS服务器,因此安装过程中验证DNS服务时会出错,但好像也不影响后面安装。我是改了脚本的,让DHCP不自动获取IP地址。修改办法就是打开simics安装目录下targets\common目录中的solaris9-install.include文件,将:
$con.wait-for-string “DHCP”
$con.input “\033OA \0332”
改为
$con.wait-for-string “DHCP”
$con.input “\0332”
PS:其实simics自带的安装脚本还是蛮简单的,打开看看大概也能看懂。
solaris是文本安装,在安装系统的过程中如果碰到填写IP地址,就填10.10.0.5,碰到选择detect xxx的,就选none,其他的默认即可。
下面是安装步骤:
在simics虚拟机中,file->new session打开workspace\targets\sunfire\peanut-sol9-cd-install1.simics
完成后如下图:
然后file->new session打开workspace\targets\sunfire\peanut-sol9-cd-install2.simics
完成后如下图:
最后file->new session打开workspace\targets\sunfire\peanut-sol9-cd-install3.simics
完成如下图:
到这里,系统就安装完成了!!!
PS:peanut-sol9-cd-install3.simics这三个文件也可以打开看看,也不是很难看懂
三、solaris 9 sparc系统配置
3.1 启动solaris系统
file->new session打开workspace\targets\sunfire\peanut-common.simics,然后在simics底下命令窗口输入run,就可以启动solaris了
simics > run
3.2 基础知识
- simics和solaris是在两个不同的图形console中的,如果想控制solaris中的鼠标,则将鼠标移到solaris图形console中,然后按住shift 键,鼠标右击;同样的,如果想将solaris中的鼠标移出,按住shift 键,鼠标右击就可以离开solaris的图形console了,类似于Vmware 中的组合键ctrl+alt.
- simics命令窗口空闲状态如下图:
当solaris在运行时,simics命令窗口如下图:
在running时,running > stop可以返回空闲状态,此时solaris就暂停运行了;在空闲状态时,simics > run可以让solaris运行;另外如果已经运行了solaris但被暂停了,simics > c让solaris恢复运行,跟run的作用是一样的。
3.3 修改peanut-common.simics
在workspace\targets\sunfire\peanut-common.simics文件开头添加下面几行:
$os = “solaris9”
$ip_address = “10.10.0.5”
3.4 启动图形界面
之前启动solaris都是文本console,并没有图形console。simics 下的cde 可以在安装的时候, 就启动图形console 进行安装, 让installer 自动配置图形console,也可以先用默认的text console 进行安装,之后再进行配置。
本文的方法是用默认的text console 进行安装,之后再启动图形console,步骤如下:
-
打开simics的安装目录下的targets\sunfire\peanut-common.simics,我的是D:\Virtutech\Simics-3.04\targets\sunfire\peanut-common.simics,在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
} -
在相同的目录下,对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” -
在相同的目录下,对sunfire-6500-system.include 进行适当修改,注释掉如下两句, 即将ttya 上的textconsole 拿掉。
#$ console = (create-std-text-console)
#$ system.connect ttya $console -
按照3.1所讲的启动solaris,此时图形console应该就出来了,但是boot disk1 -v会失败,但没事,继续下面的步骤。
-
在simics 中,依次输入如下命令:
simics>stop
simics>load-persistent-state prefix = (get-component-prefix) peanut-sol9.state -
进入solaris图形console 中,键入如下命令启动boot disk1 -rv,记住一定要用-r, 因为我的系统是在text console 下安装,图形设备都没有进行配置,使用-r 让系统自动配置显卡。
完成后,solaris 9 sparc的图形console应该就显示了,登录需要用户名,输入root就行,没有密码,需要设置别的用户或者密码则后面自行添加。
四、solaris界面console遇到的问题
4.1 鼠标飘
在solaris界面console中,鼠标总是很飘,这个我暂时没找到办法,只能慢慢移动鼠标
4.2 键盘连续输入
如果用键盘敲了一个键,在solaris界面console中总是连续输入了多个,在最开始的时候,这个问题无法避免,只能快速敲键盘。在进到solaris界面console里后,打开terminal(右键tools里面),输入执行xset r off就可以了。
4.3 界面颜色不对
如果你的solaris界面console不是类似下图的,就是颜色不对
打开terminal,运行 fbconfig -prconf 检查颜色, 默认的depth好像是8, 执行一下命令修改:
m64config –res 1152x900x76 nocheck –depth 24 ,其中分辨率可以根据fbconfig -prconf 执行后terminal中显示的改,重要的是-depth 24
执行完后,running->stop,simics->save-persistent-state peanut-sol92.state
关掉simics,在workspace目录下,删掉原本的peanut-sol9.state,将刚刚保存的peanut-sol92.state改为peanut-sol9.state。
重新启动simics,开启solaris系统,但与之前不同的是,执行boot就行,不要boot disk1 -rv(-r会使depth又变成8)
五、通过ftp与solaris传文件
- 在solaris中,修改/etc/default/login文件,注释掉CONSOLE=/dev/console(用vi开文件的时候可能发现有点乱,输入命令set nu增加行数显示会好一点)
- 修改/etc/ftpd/ftpusers,将第一行的root删除掉
上面两个步骤是为了能让root用户使用ftp服务
-
打开terminal,输入passwd root,给root用户设置密码用来访问ftp(ftp与solaris建立链接需要输入用户名和密码,明明我的root没有密码,却非要密码,无法理解,我root设置的密码是1)
-
在simics下输入connect-real-network 10.10.0.5,输出如下:
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
这样电脑与simics的ftp就好了 -
在Windows中,随便打开一个文件夹,在地址栏中输入ftp://173.168.6.103:4021(中间是你电脑的IP地址,4021是ftp链接simics端口号,在上面第四点可以看到),输入用户名和密码访问了,可以传文件了,非常方便(就像共享文件夹一样)
六、保存solaris当前状态
每次关闭simics虚拟机,如果不保存solaris,则所有东西都会丢弃,而通常solaris系统也不需要关机什么的。有两种方法可以保存当前solaris状态:
- simics->stop
simics->save-persistent-state psol9_xxx .state(xxx表示可以任意修改)
重启simics时, load 上次保存的状态:
simics> load-persistent-state prefix = (get-component-prefix) psol9_xxx.state
PS:不知道为啥我用这种办法总是报错,所以我一般用第二种方法 - simics->stop
file-> Save Checkpoint As 就可以了,下次直接file->Open Checkpoint就行了,这个方法也很方便。
七、联网和远程登陆服务
我暂时不需要,故没弄,需要的时候再补上把
八、资源
solaris 9 sparc: https://pan.baidu.com/s/1qQ4aIfxc8Qh-i-aG4_rSrg 提取码:kgwd
simics3.04: https://pan.baidu.com/s/1PRaowfIeF7Sc1V40ItieEg 提取码:1rh8
九、Reference
https://bbs.eetop.cn/forum.php?mod=viewthread&tid=429031&highlight=solaris
https://blog.csdn.net/dinsh3100/article/details/124361042
https://bbs.eetop.cn/thread-618923-1-1.html
https://blog.eetop.cn/blog-6222-433619.html
https://bbs.eetop.cn/forum.php?mod=viewthread&tid=633360
后言
这个课题组,啥都没有,用的工艺还很古老,什么都要自己弄,平台得自己搭,IP啥的都没有,要个SRAM还得重新装个系统搭平台,太费劲了!!!芯片板子得自己画自己焊自己测,留给芯片设计的时间真的很少,好累emo