Solaris9 x86以其可靠、安全、高可用性以及低廉的价格(对非商业用途免费),吸引着越来越多的用户。
近日,笔者在安装Solaris9 X86时,碰到一些问题,经过一番周折,终于解决了这些问题。本文将介绍这些问题的解决方法,以供大家参考。抛砖引玉啦!
测试环境:
笔者测试的安装环境是Toshiba Satellite Pro M10笔记本以及Dell GX110 Desktop。软件是Solaris 9 x86,其中在Toshiba M10 上装的是4/03版本,在Dell GX110上装的是12/02 版本。在安装之前,先上网查了一下,发现Dell的GX110属于Reported to Work列表。而Toshiba M10不在列表范围。
但其自带的网卡Intel Pro/100 VE和Toshiba Tecra S1的相同,而后者已经reported to work。值得注意的是,对于这一网卡的Driver Info, 有注释: Add iprb "pci8086,103d" to /etc/driver_aliase。
1. USB设备的兼容性问题.
1) 问题描述和解决方法
在Dell GX110上的安装很顺利,但在Toshiba M10上刚开始安装就碰到问题了。安装过程在Device Configuration Assistant阶段就停止不动了,在排除了安装盘质量问题可能性后,上FAQ查了一下,发现Solaris 9 X86目前还不支持USB 2.0 EHCI,而Toshiba M10用的正是USB2.0接口。找到问题解决就很容易了。通过Toshiba自带的东芝控制台Disable掉USB设备,安装过程就正常了。
2) 相关知识-Solaris支持的USB接口类型:
一共有三种类型的USB主机控制器 (USB host controller),而Solaris9 x86 只支持其中一种。
USB 1.1 UHCI: Solaris x86支持, 但Solaris SPARC不支持。
USB 1.1 OHCI: Solaris x86不支持, 但Solaris SPARC支持 (需要 Solaris USB DDK v0.8a).
USB 2.0 EHCI:目前Solaris 9还不支持。 也许将来的Solaris release会支持。
3) 相关知识-在Solaris里如何判别你的USB接口类型:
运行命令 "prtconf -pv | grep 000c03". 如果输出为空,那说明你的机器没有USB :-(。如果有一行为:
"class-code: 000c0300", 说明你的USB是UHCI类型,如果是"class-code: 000c0310",说明是OHCI的USB接口,如果是
"class-code: 000c0320" 说明是EHCI的USB接口(USB2.0)。
2. 显示设置问题
在安装过程中,系统会提示输入显卡驱动类型以及显示器分辨率、刷新频率。这个时候,显卡驱动还没有安装,因此需要先设置成通用的显卡驱动和显示分辨率。
如果显示设置配置不正确,系统将不能正常运行。
下面是本人安装过程中的一些参考设置:
1) Video Devices: VESA Generic Driver for VESA-Compatible Video Cards
2) Monitor Type: Notebook LCD SVGA 35.5Khz ...
3) Screen Size: 15-inch
4) Resolution/Color/RefreshRate 分辨率1024*768,256色,刷新频率60 Hz。值得注意的是刚开始的时候颜色不要选过高(显卡驱动还没有装好)。
3. 网卡安装问题
1) 问题描述
在系统安装到第一次进入CDE环境后,运行命令ifconfig -a, 两台机器都只发现lo0接口,而没有出现期望的elxl或iprb接口。进入目录/dev,仍然没有发现任何关于elxl或者iprb的文件或链接。
注:DELL GX110 预装的是3com的3c905c-tx网卡,而Toshiba Satellite Pro M10 预装的是Intel Pro/100 VE网卡。
大家一定还记得前面提到的硬件兼容列表里关于Driver Info的注释,但该怎么操作呢?
为了大家的方便,笔者在此以Toshiba M10的Intel Pro/100 VE网卡为例,将解决方法作一简单介绍。
2) 解决方法介绍
.1) 用vi打开文件/etc/driver_aliases, 加入一行如下:
iprb "pci8086,1030"
.2) 用vi打开文件/boot/solaris/devicedb/master,加入一行如下:
pci8086,103d pci8086,103d net pci iprb.bef "Intel Pro/100 VE Network Adapter"
.3) 运行命令: devlinks
.4) 运行命令:touch /reconfigure
.5) 重新启动(可以用命令 init 6)
.6) 进入/dev目录,太棒了!发现了/dev/iprb (当然,这时候用ifconfig -a 命令网口还没正常工作)
.7) 接下来的事情就简单了,用vi 编辑/etc/hostname.iprb0, 文件内容是你的主机名。(如果用的是IPv6,那么要编辑的是hostname6.iprb0文件)
.8) 再次重启
3)相关知识-关于master文件
当打开master文件,里面有关于数据格式的详细解释,这里仅作简要介绍:
<dev ids> <name> <dev type> <bus> <realmode driver> <dev desc>
pci8086,103d pci8086,103d net pci iprb.bef "Intel Pro/100 VE Network Adapter"
这里<dev ids>里的pci8086, 103d 是什么含义呢?8086是Intel的Vender号,103d是设备号。那么在哪里可以找到这些数字呢?一种方法是在重启机器时观察BIOS Summary Screen(在检测完IDE设备后),留意里面关于网卡的那两个四位数字。
另一种方法就是在网上搜索相关的资料,比如前面在硬件兼容列表里面有人提到了Intel Pro/100 VE网卡的设备号是103d.
注:对于Dell GX110的3COM 3c905c-tx网卡,
/etc/driver_aliases:elxl "pci10b7,9200"
/boot/solaris/devicedb/master: pci10b7,9200 pci10b7,9200 net pci elxl.bef "3Com 3C905C-TX-M El XL 10/100"
步骤同上。
另外,为了大家的方便,这里还列出了部分接口名称的含义:
elxl: 3COM EtherLink网卡
iprb: Intel Pro网卡
nei: 10baseT NE2000兼容的PCI网卡 (Linksys, AT/LANTIC)
注: 在FAQ上有关于这一问题的更详细的描述。
4. DHCP 配置问题
1) 问题描述:
在一些环境中,笔记本或者台式机需要配置DHCP而不是固定IP。笔者参考了Solaris 的IP Services手册"How to Configure a Solaris DHCP Client"的方法,但没有成功。
原因是该方法需要运行sys-unconfig命令,这样会导致前面配置的kdm设置和网卡设置丢失。经过研究,终于搞定。
2) 解决方法
.1) 进入/etc目录,运行: touch hostname.<devno>, 例如: touch /etc/hostname.elxl0
.2) touch dhcp.<devno>
.3) 配置domainname, 可以用domainname 命令,例如domainname prc.sun.com,接着编辑/etc/defaultdomain文件,加入配置的domain name.
.4) 运行ypinit -c
.5) 运行/usr/lib/netsvc/ypbind -broadcast
.6) 运行/usr/lib/netsvc/ypstart
.7) 重新启动机器(可以用命令 init 6)