位置:海鸟网 > IT > linux/Unix >

在Alpha老机上应用Linux

最近闲下来,终于有空翻出压箱底的老机Alpha 21164出来让它发挥一点余热。说起这台机器就郁闷,本来是准备拿来装个VMS作留念的,谁知道后来手上的OpenVMS 7.1-1似乎有bug,死活都装不上。装Tru64?没劲。FreeBSD?太慢。NetBSD?netBSD for Alpha的boot部分似乎有点问题。最后考虑到还是Linux上应用最多,于是决定拿它来装个Linux跑跑Web算了。
机器硬件配置:
MainBoard: Alpha PC164
CPU: Alpha 21164/500M 64b
RAM: ECC sDIMM DRAM 256M
SCSI: Symbios Logic 53c875
HD: Seagate SCSI 18G 1kRPM
NIC: Intel eepro 100 x2
VGA: MGA G100

0.准备工作
================================================================================
在系统的选择上费了一番功夫,Tru64这样的系统实在是没什么意思,当前的VMS版本又装不上,freebsd 5 for alpha简直是非常之慢...只好选一个合适的Linux。 支持Alpha的Linux有Redhat 7.2 ,Debian 3.0r1/2,Mandrake 7.2,Gentoo,还有据说再过*个月会出Alpha版的Fedora core 2。排除古老的Mandrake和Redhat,比较合适的版本有Debian 3.0和Gentoo。新的发布可以维护比较少的升级包,装起来也简单些,即使打造自己的Distribution也得选一个合适的基础吧。简单测试了一下之后发现Debian之中的软件和内核还是太老,过于“稳定”了吧。再加上我天生不喜欢debian,最后选定Gentoo安装。
在Gentoo 发布站上有几个版本可以选,但是由于Alpha版的使用和维护人员太少,所以Alpha版的进度一直比其他版本之后,所以如果要选择Release版本的话可以看到一个1.4_rc1的目录(),里面就是Alpha版的了。比较一下时间竟然还是2003年的,于是最后只好选择了experimenta版发布。

Gentoo Linux的安装过程分为两部分,第一部分你需要使用某个Live Linux,至少能够提供你所需的基本系统环境的(分区和磁盘工具,网络环境,以及tar等基本工具)来引导系统,并且提供一个基础的工作环境,然后在这个环境之上开始构建你的目标系统。第二部分当然就是你所要安装的那部分,在Gentoo中称为Stage。stage也需要你手工进行展开,展开之后可以进入它的环境,然后通过网络下载安装系统所选的其他部件,最后自即便以整个系统完成安装,类似FreeBSD中的CVSup & make world 过程。
虽然Live环境在其他平台下有很多优秀的选择,例如可以集成编译环境在光盘上的slax和knoppix,但是Alpha上的选择不多,最为完整的也就是Gentoo的LiveCD了。
Gentoo 的Stage部分也包含集中版本,分别为Stage 1 - 3,stage1包含的已经编译的二进制部分最少,这意味着你所需要做的工作也越多,当然感觉也更原始。Stage3已经包含了系统中的大部分基本组件,包含系统工具和开发环境,基本相当于FreeBSD的mini安装。
如果你在本地有多台机器的话,可以选择先把stage下载下来,存放在某个ftp或web上,这样可以节省我们在安装过程中的等待时间。
准备我们的安装环境是需要下载两部分内容:
Gentoo LiveCD:

Gentoo Stage:

下载完之后,开始工作。1.确认你的硬件和机器环境

================================================================================
在Alpha 平台上,存在两种firmware(类似于PC BIOS),分别是ARC和SRM。ARC是Alpha平台运行Windows NT是的固件环境,而SRM是引导Unix/VMS是的固件环境,SRM能够良好支持Linux/Unix/VMS的加载,而在ARC环境下需要milo 来引导系统,缺点是只能够使用软盘引导...
如果你的机器是ARC环境,那么在软驱或光驱中放入SRM更新软盘或官方的firmware光盘,在系统引导时按下F2进入ARC Bios,选择F6高级,然后在ARC提示符下运行>>> update srm,系统会自动刷新到SRM firmware。
再次引导系统之后,将会进入SRM的命令行环境下。SRM相当于一个mini的嵌入Unix,提供了与unix环境类似的命令环境和结构,ls可以查看设备以及文件,man/help是帮助。
下面是一些有用的命令设置:
>>>set os_type unix 设置系统类型,unix,nt,或vms
>>>set boot_osflags \'0,0\' 设置引导参数,某些系统内核需要制定特殊参数
>>>show conf 查看系统当前硬件配置
>>>show dev 察看详细硬件信息
>>>init 初始化硬件环境
>>>boot device -f \"flags\" 引导操作系统

在srm环境中设备名与我们通常遇到的都不大一样,常见的分类如下:
DR: RAID集合设备
DV: 软盘
EW: 以太网卡(TULIP, DEC 21040)
EI: 以太网卡(Intel 82557 or 82559)
PK: SCSI控制器
DK: SCSI硬盘
MK: SCSI磁带机
DQ: (E)IDE 设备 (硬盘或光驱)
常见的设备名例如:
SRM名字 Linux对等名 意义
dka0 /dev/sda1 dk=scsi hd,a=scsi adapter 1,0=device 0
dka600 /dev/scd0 dk-scsi cdrom,a=scsi adapter 1,600=device
dqb0 /dev/hdb0 dq=ide hd/cdrom,b=ide master second ,0=parartion 1
dva0 /dev/fd0 dv=floppy,a0=floppy 1
明白了这些之后,在SRM环境下引导我们的系统,首先就得确认硬件是否正确识别出,使用show conf可以看到当前识别出的硬件,确认已经找到了光驱(dka600或dqa0之类)和硬盘(例如dka0或dqa0),之后就可以开始安装:
>>>show conf
>>>boot dka600
之后系统将从Gentoo光盘上加载和引导内核,直至完成整个LiveCD的引导过程。最后我们可以看到Gentoo的登陆提示符:

2.设定网络
================================================================================
Gentoo Login:
使用 用户名:root,密码:空 登陆进入系统。
开始系统环境的基本配置。
# modprobe eepro100
# ifconfig eth0 192.168.0.100 netmask 255.255.255.0
# route add deault gw 192.168.0.254
# cat \"nameserver 202.96.209.6\">>/etc/resolv.conf
(或dhcpcd eth0使用dhcp分配地址)
加载网卡驱动,gentoo livecd默认直支持3c59x(3com 590)、eepro100(Intel 8255x)、tulip(dec 2114x)系列芯片的网卡和ppp/pppoe网络连接。
配置网络地址、网关和DNS服务器。
如果使用DSL连接,可以使用如下命令配置:
# adsl-setup
# adsl-start
如果使用代理服务器,可以配置:
(如果是 HTTP 代理服务器)
# export http_proxy=\":8080\"
(如果是 FTP 代理服务器)
# export ftp_proxy=\"ftp://proxy.gentoo.org:8080\"
(如果是 RSYNC 代理服务器)
# export RSYNC_PROXY=\"proxy.gentoo.org:8080\"
现在,我们已经可以正常使用LiveCD上的网络工具了,例如ftp,wget,ssh/scp,links。当然,我建议现在不要打开sshd服务,而在下面的一步再开放,会方便一些我们以后的工作。