Gentoo Logo

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


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里做为它的一部分存在着。

注意: 经常的,MIPS32MIPS64 ISA会被人们所误解。MIPS64 ISA级别实际上是MIPS5 ISA的超集,所以它包括了MIPS5和之前的ISA的所有指令。MIPS32MIPS64的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

# 让dhcpd禁用动态DNS.
# 没有这个dhcpd会拒绝启动
ddns-update-style none;

# 创建一个子网:
subnet 192.168.10.0 netmask 255.255.255.0 {
  # 我们的启动客户端的地址池。不要忘记了“动态bootp”!
  pool {
    range dynamic-bootp 192.168.10.1 192.168.10.254;
  }

  # DNS服务器和默认网关——按实际情况替换相应的值
  option domain-name-servers 203.1.72.96, 202.47.56.17;
  option routers 192.168.10.1;

  # 告诉DHCP服务器对于这个子网来说它是有权威性的。
  authoritative;

  # 允许在这个子网上使用BOOTP
  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 {
  # ……常见的内容在这里……

  # SGI工作站……把'sgi'改成你的SGI机器的主机名
  host sgi {
  
    # SGI机器的MAC地址。通常这个地址写在机器的
    # 背面或底部。
    hardware ethernet 08:00:69:08:db:77;

    # 供下载的TFTP服务器(默认的,和DHCP服务器是同一台机器)
    next-server 192.168.10.1;

    # 要分配给SGI机器的IP地址
    fixed-address 192.168.10.3;

    # PROM要下载和启动的文件名
    filename "/gentoo-r4k.img";
  }
}

内核选项

我们差不多完成了,不过还需要做一些小的调较。用root权限打开一个终端,键入下面的命令。

代码 4.2: 为了能让TFTP正常工作而对SGI机器做的一些修正

(禁用“Path Maximum Transfer Unit”,否则SGI Prom不能找到内核)
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

(设定SGI PROM可以使用的端口范围)
# 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 {
  # ……常见的内容在这里……

  # 一个Cobalt服务器的配置
  # 这里设定hostname:
  host qube {
    # nfsroot目录的路径
    # 主要是在CoLo上使用TFTP启动参数时用到的
    # 你不应该改动这个。
    option root-path "/nfsroot";

    # Cobalt服务器的以太网MAC地址
    hardware ethernet 00:10:e0:00:86:3d;

    # 下载镜像所用的服务器
    next-server 192.168.10.1;

    # cobalt服务器的IP地址
    fixed-address 192.168.10.2;

    # 相对于/nfsroot的default.colo文件的位置
    # 你不应该改动这个。
    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来检查。

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2008年 5月 4日

总结: 你可以以很多不同方式来安装Gentoo。本章解释了如何使用MIPS Netboot镜像来安装Gentoo。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Stuart Longland
编辑

Tobias Scherbaum
编辑

Xavier Neys
编辑

Joshua Saddler
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

张乐
译者

杨珂
译者

叶宝泰
译者

杨小广
译者

vivian.ye
译者

余雷
译者

陈永骥
译者

王国辉
译者

娄东斌
译者

贾震
译者

余鈺炜
译者

陈代焱
译者

范华
译者

沈辰俊
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.