1 介绍
我有一个二进制文件,是一个程序,它在Ubuntu系统上不能执行,利用file 命令得到的结果为:
GraphGen: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
根据上面的提示,我就想到了在Virtual box虚拟机上安装Soloari SPARC系列的操作系统,因为上面的提示是SPARC 硬件架构下可以执行的二进制程序。于是就下载了sol-10-11-ga-sparc-dvd.iso文件,在Oracle VM VirtualBox 上面安装,可是本能成功,因为我的电脑是x86架构的,从Google 上面搜出的结果是,要想再VirtualBox 安装Solaris 操作系统,必须安装支持X86的安装文件,不能安装支持SPARC 结构的文件。利用VirtualBox
这条路走不通。
那么,能否有一种方法,在我的X86 架构的电脑上虚拟使用SPARC 架构类型的操作系统,例如Solaris 8 等,使得我的GraphGen程序能够顺利运行呢?从网络上搜索出来的答案为:通过Simics 虚拟安装SPARC 结构的操作系统。利用VirtualBox 或者VMvare 等方法安装SPARC 架构的操作系统行不通。
2 前期安装准备
2.1 下载Solaris 8 iso映像文件
由于后面我使用的Simics 的版本比较低,所以我就选择了低版本的Solaris 8 操作系统映像文件。该操作系统安装文件分2个iso 文件来下载,它们的下载地址为:
ftp://ftp.pl.freebsd.org/vol/rzm1/solaris-cd-pm/8/sparc/sol-8-u7-sparc-v1.zip
ftp://ftp.pl.freebsd.org/vol/rzm1/solaris-cd-pm/8/sparc/sol-8-u7-sparc-v2.zip
ftp://ftp.pl.freebsd.org/vol/rzm1/solaris-cd-pm/8/sparc/sol-8-u7-sparc-v2.zip
由于2005年左右的时候,DVD还不是很普及,上面的2个文件的形式是为了适合CD-Rom的存储要求。事实上为了安装Solaris,我还在Oracle网站上下载了Solaris 10 的DVD iso安装文件,但最后没有用上,通过Simics 3.0.4 安装没有成功。
2.2 下载并安装Simics 3.0.4软件
Simics 软件是一个功能很强大的软件,能在不同的host 操作系统上安装。由于我的电脑时X86架构的Win7 操作系统,所以下载的Simics 安装文件是支持在Win32 系统下安装的。Simics 能够模拟不同的硬件架构,方便测试员们进行各种各样的测试,而不必拥有真实的硬件架构的电脑。
Simics 不是一个开源的操作系统,使用它需要License文件,这就需要在网络上下载keygen.exe程序来生成License 文件。
针对Win32系统上安装的Simics 安装文件可以在网络上搜索到,然后下载,安装通常的Windows下程序的安装方式安装即可。类似地,keygen.exe程序也可以从网络上搜索并下载,你可以使用搜索的关键词为Simics 3.0.4 keygen.exe。使用keygen产生License文件时,需输入我的win7系统下当前的登录名,我输入的是Administrator。产生后的License 文件存放在keygen同一个文件夹下。导入License 文件的方法有2中,一是在按照Simics
的过程中指定License文件的位置;二是,安装好Simics 后,在Simics安装目录下\Simics-3.0.4\licenses 放入生成的License文件。只有导入了License文件,你才能正常使用Simics 软件。
3 在Simics 上安装Solaris 8 SPARC操作系统
3.1 Simics 安装目录和Simics workspace 目录
Simics 安装目录指的是安装该软件所在的目录,它包含了启动该软件所需要的各种文件。在你使用Simics软件后,它会要求你指定一个Workspace 目录,该目录虽然可以随意指定,我的建议是将该目录设置在空间较大的磁盘上面,因为所有你在Simics 上面安装的虚拟操作系统的硬盘文件都会建立在该目录下面。我把Workspace目录设置为F:\OS\simics\workspace,我的F盘还有80多G的空间。
待你指定好Workspace目录后,Simics会自动在该文件夹下建立相关的文件和文件夹,如图1。
Figure 1: Simics 在Workspace目录下自动建立的内容(摘选)
3.2 安装Solaris 8
步骤如下:
1. 将2个iso文件sol-8-u7-sparc-v1.iso 和sol-8-u7-sparc-v2.iso 放到F:\OS\simics\workspace文件夹下。不用担心,安装时Simics 会自动找到这两个iso文件。
2. 修改安装目录\targets \sunfire 下的文件peanut-sol8-cd-install1.simics 和peanut-sol8-cd-install2.simics。
(a) 将第一个文件的32行该为$cdrom path = ”sol-8-u7-sparc-v1.iso”。将第二个文件的第6行改为$cdrom path = ”sol-8-u7-sparc-v2.iso”。
(b) 在这两个文件中都注释掉内容为run-command-file "\%script\%/../common/solaris8-install.include"的行。注释用井号(sharp)。不注释掉这2行会出现安装错误 (Assertion failed: have ext net info(nc) == TRUE, file main.c line 931),该错误是在Serial Console里面显示;注释掉这两行后安装过程中要进行许多手工设置。
2. 修改安装目录\targets \sunfire 下的文件peanut-sol8-cd-install1.simics 和peanut-sol8-cd-install2.simics。
(a) 将第一个文件的32行该为$cdrom path = ”sol-8-u7-sparc-v1.iso”。将第二个文件的第6行改为$cdrom path = ”sol-8-u7-sparc-v2.iso”。
(b) 在这两个文件中都注释掉内容为run-command-file "\%script\%/../common/solaris8-install.include"的行。注释用井号(sharp)。不注释掉这2行会出现安装错误 (Assertion failed: have ext net info(nc) == TRUE, file main.c line 931),该错误是在Serial Console里面显示;注释掉这两行后安装过程中要进行许多手工设置。
3. 启动Simics, 选择File菜单下的New Session,选定Workspace目录下\targets\sunfire\peanut-sol8-cd-install1.simics,这时会出现Serial Console ttya 窗口,同时,Simics 本身的界面上也会出现相应的信息提示。ttya窗口中显示Solaris 8 SPARC 操作系统的安装过程和设置,在出现OK 的提示符后,在Console ttya 中输入boot cdrom -v命令,然后,虚拟机从CD-ROM的iso
镜像开始引导,安装过程开始,我所做的相应配置如下:
Select a Language: 0 English
Select a Locale : 0 English (C - 7-bit ASCII)
What type of terminal are you using? 我这里选择VT100[我第一次装的时候用的是pc-console结果让输入domain name,在装到第2个盘的时候,出现让输入domain name,比较不妥。]
DHCP: NO
Host name: chgzhi2
IP address: 10.10.0.5
Netmask: 255.255.255.0
Enable IPv6: No
Configure Kerberos Security: No
Name service: None
F2 standard
Select 64 Bit Yes
[X] Entire Distribution plus OEM support 64-bit 1523.00 MB
Auto Reboot
Configuring disk (采用默认配置)
Select a Locale : 0 English (C - 7-bit ASCII)
What type of terminal are you using? 我这里选择VT100[我第一次装的时候用的是pc-console结果让输入domain name,在装到第2个盘的时候,出现让输入domain name,比较不妥。]
DHCP: NO
Host name: chgzhi2
IP address: 10.10.0.5
Netmask: 255.255.255.0
Enable IPv6: No
Configure Kerberos Security: No
Name service: None
F2 standard
Select 64 Bit Yes
[X] Entire Distribution plus OEM support 64-bit 1523.00 MB
Auto Reboot
Configuring disk (采用默认配置)
接下来就是漫长的等待,大概3个小时左右。不要着急,要有耐心。安装完成后,Console会显示rebooting (换行) Resetting ...;同时Simics主窗口会显示Now exit Simics and continue with the peanut-sol8-cd-install2.simics script.
4. 在Simics 主界面的File菜单里点击Close session,接着New session,选定Workspace目录下\targets\sunfire \peanut-sol8-cd-install2.simics,进行第2个iso镜像文件的安装。在安装过程中会提示你设置root 的密码:
You will be prompted to type the root password twice; for security, the password will not be displayed on the screen as you type it.
>If you do not want a root password, press RETURN twice.
Root password:
Re-enter your root password.
Press Return to continue.
>If you do not want a root password, press RETURN twice.
Root password:
Re-enter your root password.
Press Return to continue.
进入同样的漫长的等待过程,大概2个小时左右。我设置的密码为123456。在安装的过程中可能会在Console中出现sendmail[333]: unable to qualify my own domain name (chgzhi2) – using short name 的提示,同时在Simics 的主窗口中出现类似这样[sn0 info] Got UDP packet on port 520 (unknown) with no active service 的提示,遇到这样的提示,直接忽略掉即可,不影响Solaris
8 SPARC 的安装。
5. 类似地,Close session,然后New session,选定Workspace目录下\targets\sunfire\peanut-sol8-cd-install3.simics,安装第三个intall文件时,会在Serial Console里进行root登录,你要使用先前你设置的密码登录即可。该安装过程很快就会结束。结束后会提示,Serial Console会出现:Program terminated;而在simics里会出现:Now exit Simics and use
the peanut-common.simics script to start the machine. Make sure that the $os variable is set to solaris9.这是一个错误提示,应该为solaris8。实际上这是脚
本peanut-sol8-cd-install3.simics 中的错误提示。根据该提示,将Workspace目录下文件\targets\sunfire \peanut-common.simics中的第2行前添加$os = ”solaris8” 即可。
本peanut-sol8-cd-install3.simics 中的错误提示。根据该提示,将Workspace目录下文件\targets\sunfire \peanut-common.simics中的第2行前添加$os = ”solaris8” 即可。
4 在Simics中启动安装好的Solaris 8
启动的方法很简单,通过Simics 主窗口的File 菜单下的New session,选定Workspace目录下文件\targets\sunfire \peanut-common.simics 即可。弹出的Serial Console on ttya 会提示你登录,使用root帐号和你设置的密码登录即可。此时你就可以使用虚拟的Solaris 操作系统了。启动成功后如图2所示。Have a fun.
Figure 2: 在Simics 中启动的Solaris系统界面