[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
2. 选择合适的安装方式
内容:
2.a. 硬件需求
介绍
在开始之前,我们首先列出安装Gentoo的硬件需求。
硬件需求
CPU (big endian) |
MIPS3、MIPS4、MIPS5或者MIPS64级CPU |
CPU (little endian) |
MIPS4、MIPS5或者和MIPS64级CPU |
内存 |
128MB |
硬盘空间 |
3.0GB(不包括交换分区) |
交换分区 |
至少256MB |
你也应该查看一下我们的网站上的MIPS硬件要求文档。
2.b. 安装说明
有关处理器架构的说明
在很多架构上,处理器都经过了几代的发展,每一代新处理都是在前一代处理器的基础上构建而来。MIPS也不例外。MIPS架构包含了好几代CPU。为了正确的选择你的netboot镜像stage tarball和CFLAGS,你需要知道你的系统的CPU属于哪个家族。这些所谓的家族被称为Instruction Set Architecture。
MIPS ISA |
32或64位 |
包括的CPU |
MIPS 1 |
32位 |
R2000,
R3000
|
MIPS 2 |
32位 |
R6000
|
MIPS 3 |
64位 |
R4000,
R4400,
R4600,
R4700
|
MIPS 4 |
64位 |
R5000,
RM5000,
RM7000,
R8000,
R9000,
R10000,
R12000,
R14000,
R16000
|
MIPS 5 |
64位 |
目前没有
|
MIPS32 |
32位 |
AMD Alchemy系列,4kc、4km等等……有好几个属于MIPS32 ISA的版本。
|
MIPS64 |
64位 |
Broadcom SiByte SB1、5kc……等等……有好几个属于MIPS64 ISA的版本。
|
注意:
这个MIPS5ISA级别是Silicon Graphics早在1994年设计的,不过从来没有应用到实物CPU里。它继续在MIPS64 ISA里做为它的一部分存在着。
|
注意:
经常的,MIPS32和MIPS64 ISA会被人们所误解。MIPS64 ISA级别实际上是MIPS5 ISA的超集,所以它包括了MIPS5和之前的ISA的所有指令。MIPS32是MIPS64的32位子集,它的存在是由于大多数程序只需要32位的处理能力。
|
还有,另外一个需要掌握的概念是字节序(endianness)。字节序就是一个字在内存里保存的方式。一个字的保存方式有big endian(最高位字节在前),和little endian(最低位字节在前)两种。Intel x86机器是little endian的,不过Apple和Sparc机器是big endian。在MIPS上,两种都有可能。为了把它们区分开,我们在架构名后加上el来表示little endian。
架构 |
32或64位 |
字节序 |
包括的机器 |
mips |
32位 |
big endian |
Silicon Graphics |
mipsel |
32位 |
little endian |
Cobalt服务器 |
mips64 |
64位 |
big endian |
Silicon Graphics |
mips64el |
64位 |
little endian |
Cobalt服务器 |
如果你想学习更多有关ISA的知识,下面的网站可能有用。
Stage3 Tarball
stage3是一个含有最小Gentoo环境的压缩包,适合按照手册继续安装Gentoo。以前,Gentoo手册介绍了使用3种stage的安装方法。虽然Gentoo仍然提供stage1和stage2,但在官方的安装指南中只使用stage3。如果你对stage1和stage2感兴趣,请阅读Gentoo FAQ中的如何使用stage1或stage2安装Gentoo?
2.c. Netboot概述
在这一节中,我们将讲解要想成功的网络启动Silicon Graphics工作站或者Cobalt服务器,你需要做些什么。这只是一个简单的指引,内容不是很详尽,要获取更多信息,推荐您阅读无盘HOWTO。
你所需要的:取决于具体的机器,你将需要一些特定的硬件才能成功netboot并安装Linux。
-
基本需求:
- DHCP/BOAMD Alchemy系列,4kc、4km等等……有好几个属于MIPS32 ISA的版本。OTP服务器(推荐ISC DHCPd)
- 耐心——很多耐心
-
Silicon Graphics工作站需要:
- TFTP服务器(推荐tftp-hpa)
-
如果你想要或需要使用串口终端:
-
MiniDIN8 --> RS-232串口线(只有IP22和IP28系统需要)
- Null-modem线
- VT100或者ANSI兼容终端,支持9600波特率
-
Cobalt服务器(不是早期的Qube)需要:
- NFS服务器
- Null-modem线
- VT100或者ANSI兼容终端,支持115200波特率
注意:
SGI机器的串口使用MiniDIN 8接口。很显然Apple modem线正好可用来做串口线,不过随着近来越来越多的Apple机器转而使用USE和内置modem,这种线已经很难找了。Linux/MIPS Wiki上有一个布线图,而且大多数电子商店里应该可以买到所需的接头。
|
注意:
至于终端,可以是一个真正的VT100/ANSI终端,或者可以是PC上运行的终端模拟软件(比如HyperTerminal,Minicom,seyon,Telex,xc,screen——任何你所喜欢的)。这台机器是什么平台都无所谓——只要有一个能用的RS-232串口和合适的软件。
|
注意:
注意本指引不涵盖早期的Qube。早期的Qube服务器在它的默认配置中缺少串口,所以在上面安装Gentoo是不可能的,除非在改锥和替代机器的帮助下。下面的网站上有一个如何在这种机器上安装Gentoo的指引。http://www.metzner.org/projects/qube/
|
设置TFTP和DHCP——一个简单的指引
好了,工已利其器,现在该善其事了。就像前面提到的——这不是一个完整的指引,这只是可以完成安装的一个基本配置。你可以使用本指引来完成你的第一次安装,也可以使用本指引的建议来修改你目前的安装步骤来支持netboot。
值得注意的是这些服务器不一定必须运行Gentoo Linux,你也可以运行FreeBSD或者其他类Unix系统。不过,本指引假设你要运行Gentoo Linux。如果需要,你也可以在其他机器上运行TFTP/NFS,而不在DHCP服务器上运行。
警告:
Gentoo/MIPS团队不能帮你把其他操作系统设定为netboot服务器。如果你选择了其他OS,我们假设你知道你自己在做什么。
|
第一步——配置DHCP。为了让ISC DHCP守护进程可响应BOOTP请求(就像SGI和Cobalt BOOTROM所要求的),你需要在所使用的地址范围上启用动态BOOTP;然后为每一个客户端设定一个条目包括指向启动镜像的指针。
代码 3.1: 安装ISC的DHCP |
# emerge dhcp
|
安装完后你要创建/etc/dhcp/dhcpd.conf。这里有一个基本的配置可以让你很快上路。
代码 3.2: 一个基本的dhcpd.conf |
ddns-update-style none;
subnet 192.168.10.0 netmask 255.255.255.0 {
pool {
range dynamic-bootp 192.168.10.1 192.168.10.254;
}
option domain-name-servers 203.1.72.96, 202.47.56.17;
option routers 192.168.10.1;
authoritative;
allow bootp;
}
|
使用这个配置,我们可以在subnet子句中添加任意多个客户端。后面我们将讲解需要添加些什么内容。
下一步——配置TFTP服务器。建议你使用tftp-hpa,因为这是唯一已知可以正常工作的TFTP服务器。按照下面的指令来安装它。
代码 3.3: 安装tftp-hpa |
# emerge net-ftp/tftp-hpa
|
这将会为你创建/tftproot供你存放netboot镜像。如果你愿意你可以把它移到别处。本指引将假设你使用默认位置。
2.d. Netboot SGI工作站
下载Netboot镜像
根据你要安装的系统的不同,我们提供了几个可能的镜像供下载。它们都是根据系统类型和CPU而命名的。机器类型如下:
代号 |
机器 |
IP22 |
Indy, *Indigo 2, Challenge S |
IP26 |
*Indigo 2 Power |
IP27 |
Origin 200, Origin 2000 |
IP28 |
*Indigo 2 Impact |
IP30 |
Octane |
IP32 |
O2 |
注意:
* 一个常见的错误是混淆IRIS Indigo(IP23配置有R3000 CPU或者IP20配置有R4000
CPU,它们都不运行Linux),Indigo 2(IP22,可以运行Linux),基于R8000的Indigo 2 Power(根本不能运行Linux)和基于R10000的Indigo 2 Impact(IP28,高度实验性的)。请记住它们是不同的机器。
|
还有在文件名里,r4k指代R4000系列处理器,r5k指代R5000,rm5k指代RM5200,还有r10k指代R10000。你可以在Gentoo镜像里找到这些镜像。
一个SGI客户端的DHCP配置
当你下载完文件后,把压缩的镜像放到你的/tftproot目录里。(使用bzip2 -d来解压缩)然后修改你的/etc/dhcp/dhcpd.conf文件,为你的SGI客户端添加条目。
代码 4.1: SGI工作站的dhcpd.conf片段 |
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
host sgi {
hardware ethernet 08:00:69:08:db:77;
next-server 192.168.10.1;
fixed-address 192.168.10.3;
filename "/gentoo-r4k.img";
}
}
|
内核选项
我们差不多完成了,不过还需要做一些小的调较。用root权限打开一个终端,键入下面的命令。
代码 4.2: 为了能让TFTP正常工作而对SGI机器做的一些修正 |
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
|
这样你的Linux服务器与SGI的PROM就应该能正常工作了。
启动你的守护进程……
现在,你已经可以启动守护进程了。键入下面的命令:
代码 4.3: 启动DHCP和TFTP守护进程 |
# /etc/init.d/dhcp start
# /etc/init.d/in.tftpd start
|
如果上一步没有出现任何错误,你就可以启动工作站了,然后继续按手册进行安装。不管什么原因,如果DHCP服务器没有启动起来,尝试在命令行执行“dhcpd”看看有什么反应——如果一切正常,它应该在后台启动,否则你会看到它的错误信息,以及紧挨着的“exiting。”
一个简单的验证tftp守护进程是否在运行的方法是键入下面的命令——如果你看到类似下面的输出——那么一切正常。
代码 4.4: 检查TFTPd正在运行 |
# netstat -al | grep ^udp
udp 0 0 *:bootpc *:*
udp 0 0 *:631 *:*
udp 0 0 *:xdmcp *:*
udp 0 0 *:tftp *:*
|
Netboot SGI机器
好了,所有的事情都准备就绪,DHCP和TFTP都已经正常运行。现在是时候启动SGI机器了。启动机器——当你在屏幕上看到“Running power-on diagnostics”,点击“Stop For Maintenance”或者按ESCAPE。你可以看到类似下面的菜单。像下面那样键入命令。
代码 4.5: SGI PROM维护菜单 |
Running power-on diagnostics
System Maintenance Menu
1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor
Option? 5
Command Monitor. Type "exit" to return to the menu.
>> bootp(): root=/dev/ram0
|
从这里开始,机器开始下载镜像,然后,大约20秒后,开始启动Linux。如果一切正常,你应该像下面显示的那样停在Busybox的ash shell处,然后就可以继续配置网络了。
代码 4.6: 当一切正常的时候…… |
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Silicon Graphics Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
|
除错
如果机器不听话拒绝下载镜像,有两种可能,(1)你在某一步犯了错误,或者(2)它需要一点温柔的劝告。(不,把手里的大锤放下!)这里有一个检查列表:
-
dhcpd可以分配给SGI机器IP地址。你可以应该可以在系统日志里看到一些有关BOOTP的信息。tcpdump这里也是有用的。
-
你的tftp文件夹(一般是/tftproot)的权限设置正确——应该是全体可读的。
-
检查系统日志来查看tftp服务器报告了什么(可能是错误)
如果你已经检查了服务器上的所有的服务,在SGI机器上仍然得到超时等结果,尝试在终端键入下面的命令。
代码 4.7: 哄骗SGI PROM令其正常工作 |
>> resetenv
>> unsetenv netaddr
>> unsetenv dlserver
>> init
>> bootp(): root=/dev/ram0
|
2.e. 备选方法:Gentoo/MIPS SGI LiveCD
概览
在Silicon Graphics机器上,可以从光盘启动来安装操作系统。(比如IRIX就是这样装的)最近,用于装Gentoo的这样的可引导光盘的镜像也出现了。这些光盘的工作方式和IRIX的是一样的。
目前Gentoo/MIPS LiveCD只能用于配置有R4000和R5000系列CPU的SGI Indy,Indigo 2和O2工作站,不过其他平台在将来也可能支持。
你可以在你喜欢的Gentoo镜像的experimental/mips/livecd目录里找到可以下载的LiveCD镜像。
警告:
这些光盘目前仍然处于高度实验阶段。现在不能保证它一定可以用。你可以报告成功或失败到Bugzilla,论坛里的这个帖子或者#gentoo-mips IRC频道。我们期待着听到您的消息。
|
烧录LiveCD
一件值得注意的重要事项,SGI PROM不支持ISO9660格式,也不支持El Torito引导标准。这些CD镜像就像一个硬盘一样有SGI盘标,卷头里保存着启动镜像。所以,烧录这些CD镜像的时候必须要小心。
下面是一个命令示例,假设使用一个24倍速的IDE刻录机。如果你有一个SCSI刻录机,你可能需要修改dev参数。类似的还有speed参数——如果你碰到了麻烦,你可能需要降速。
代码 5.1: 使用cdrecord烧录 |
# bzip2 -d mips-livecd-prototype-rc2-20041027.img.bz2
# cdrecord -vv -pad speed=24 dev=ATAPI:0,0,0 -tao mips-livecd-prototype-rc2-20041027.img
|
注意:
在Windows里烧录这些光盘也是可能的,假设你的刻录软件只是不加分辨的照现有的样子烧录这些镜像。不过目前为之,还没有人成功的以这种方式烧录出可用的光盘。
|
注意:
如果你不知道该用什么作为dev的参数,以root身份运行cdrecord -scanbus——这将会告诉你你的刻录机的位置。
|
2.f. Netboot Cobalt服务器
netboot步骤概览
和SGI机器不同的是,Cobalt服务器用NFS来传输需要启动的内核。机器加电启动时,按住左右两个方向键。然后机器会尝试通过BOOTP来获得IP地址,通过NFS从服务器挂载/nfsroot目录,然后尝试下载并启动文件vmlinux_raq-2800.gz(文件名取决于型号),此文件应该是一个标准的ELF二进制文件。
下载Netboot镜像
在这个页面http://dev.gentoo.org/~redhatter/mips/cobalt/netboots/上,你可以找到使Cobalt启动运行所必需的启动镜像。你所需要的文件的名字是nfsroot-KERNEL-COLO-DATE-cobalt.tar——选择最新的一个然后像下面那样把它解压缩到/里。
代码 6.1: 解压缩nfsroot镜像 |
# tar -C / -xvf nfsroot-2.6.13.4-1.19-20051122-cobalt.tar
|
NFS服务器的配置
因为这台机器使用NFS来下载它的镜像,你需要在你的服务器上导出/nfsroot。如果你还没有做这一步,你需要安装net-fs/nfs-utils。
代码 6.2: 安装nfs-utils |
# emerge net-fs/nfs-utils
|
这一步完成后,把下面的内容放到你的/etc/exports文件里。如果你原因你可以设置更严格的限制。
代码 6.3: Export /nfsroot目录 |
/nfsroot *(ro,sync)
|
现在,当前面的完成后,你就可以启动NFS服务器了:
代码 6.4: 启动NFS服务器 |
# /etc/init.d/nfs start
|
如果现在NFS服务器已经在运行了,你可以告诉它让它用exportfs再查看一下exports文件。
代码 6.5: Export一个新的文件系统 |
# exportfs -av
|
Cobalt机器的DHCP配置
现在,DHCP的配置是比较简单直接的。把下面的内容加入你的/etc/dhcp/dhcpd.conf文件。
代码 6.6: Cobalt服务器的dhcpd.conf片段 |
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
host qube {
option root-path "/nfsroot";
hardware ethernet 00:10:e0:00:86:3d;
next-server 192.168.10.1;
fixed-address 192.168.10.2;
filename "default.colo";
}
}
|
启动你的守护进程……
现在,你已经可以启动守护进程了。键入下面的命令:
代码 6.7: 启动DHCP和NFS守护进程 |
# /etc/init.d/dhcp start
# /etc/init.d/nfs start
|
如果上一步没有出现任何错误,你就可以启动工作站了,然后继续按手册进行安装。不管什么原因,如果DHCP服务器没有启动起来,尝试在命令行执行“dhcpd”看看有什么反应——如果一切正常,它应该在后台启动,否则你会看到它的错误信息,以及紧挨着的“exiting。”
Netboot Cobalt机器
好了,所有的事情已经齐备,DHCP已经运行了,和NFS一样。现在是时候启动Cobalt机器了。连接好null modem线,把终端设置成波特率115200,8位,无奇偶校验位,一个停止位,VT100模拟。当这步完成后,在加电时按住左右两个方向键。
如果一切正常,背部面板应该显示“Net Booting”,你应该看到一些网络活动,紧接着CoLo开始启动。在后面板上,下拉菜单直到你看到“Network (NFS)”然后按回车。你应该可以在串口终端上观察到机器开始启动。
代码 6.8: 启动内核 |
elf: 80080000 <-- 00001000 6586368t + 192624t
elf: entry 80328040
net: interface down
CPU revision is: 000028a0
FPU revision is: 000028a0
Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes.
Primary data cache 32kB 2-way, linesize 32 bytes.
Linux version 2.4.26-mipscvs-20040415 (root@khazad-dum) (gcc version 3.3.3...
Determined physical RAM map:
memory: 08000000 @ 00000000 (usable)
Initial ramdisk at: 0x80392000 (3366912 bytes)
On node 0 totalpages: 32768
zone(0): 32768 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200 root=/dev/ram0
Calibrating delay loop... 249.85 BogoMIPS
Memory: 122512k/131072k available (2708k kernel code, 8560k reserved, 3424k dat)
|
如果一切正常,您应该会停在Busybox的ash shell处,就想下面所显示的,然后你可以继续配置网络了。
代码 6.9: 当一切正常的时候…… |
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 280k freed
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Cobalt Microserver Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
|
除错
如果机器不听话拒绝下载镜像,有两种可能,(1)你在某一步犯了错误,或者(2)它需要一点温柔的劝告。(不,把手里的大锤放下!)这里有一个检查列表:
-
dhcpd是用来赋予Cobalt服务器IP地址的。你应该在系统日志里看到一些有关BOOTP请求的信息。tcpdump在这里也是有用的。
-
你的/nfsroot文件夹的权限设置正确。(应该是全体可读的)
-
确保NFS服务器正在运行并且已经导出了/nfsroot目录。在服务器上用exportfs -v来检查。
[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
本文档的内容遵循知识共享-署名-相同方式共享许可协议
|