PA-RISC/Linux 引导 HOWTO

Thomas Marteau

TuxFamily

Deb Richardson

The Puffin Group

Thibaut Varène

版本 1.5 for DocBook V4.2 版

2006-06-06

修订历史
修订 1.52006-06-06修订者:tv
XML 清理,改进和重组内容。更新至 palo 1.5+ 和内核 2.6。
修订 1.12003-11-01修订者:tm
添加了 Jeremy Drake 的 Windows™ 服务器引导 HOWTO。
修订 1.02002-10-04修订者:tm & tv
内容由 Thibaut 完成。准备好用于 Woody 发布。添加了术语表和参考书目。XML 转换。
修订 0.92002-01-15修订者:tm
此版本为您提供了一些关于在 hppa 系统上编译您自己的内核的有用建议。
修订 0.82001-10-17修订者:tm
此版本处理了官方 FTP 和 CVS 站点名称的更改,并修改了许可证。
修订 0.72001-10-13修订者:tm
此版本添加了一些由于 PA/Linux 的进展而进行的更新。
修订 0.6 草案2001-09-26修订者:tm
此版本包含一些小的更改,并完成了 “获取 bootp/tftpd” 部分。
修订 0.5 草案2001-07-03修订者:tm
此版本是 Deb 工作的重大更新。
修订 0.3 草案1999-11-24修订者:dlr
此 HOWTO 的初始和发布版本。

本文档概述了在 PA-RISC 系统上引导 PA-RISC/Linux 内核的步骤。它还解释了 PA/Linux 的内核加载器 PALO 的用法。您将找到大量关于如何从 http://cvs.parisc-linux.org/ 提供的源代码编译内核的信息。请注意,此 HOWTO 版本比 Deb Richardson 的版本更新,并且由于端口的进展而包含更准确的信息。然而,值得一提的是,本文档保留了 Deb 的原始工作的一部分,并揭示了一些值得注意的信息。

如果您正在寻找与 HP 硬件相关但不直接与 PA-RISC 相关的信息,请阅读 Bruno Cornec 的 HP-HOWTO

注意:在本 HOWTO 开始编写时,Debian 是 PA-RISC 平台上唯一可用的 Linux 发行版,因此本文档具有 “Debian 色彩”。有时,Debian 特定的命令必须替换为它们的等效命令(如果有)。

允许复制、分发和/或修改本文档,但须遵守自由软件基金会发布的 GNU 自由文档许可证 1.2 版的条款;不得有不变部分,不得有封面文本,不得有封底文本。许可证副本可以在 https://gnu.ac.cn/copyleft/fdl.html 找到。

不对本文档的内容承担任何责任。使用这些概念、示例和信息需自行承担风险。可能存在错误和不准确之处,可能会对您的系统造成损害。请谨慎行事,尽管由于遵循本文档中描述的建议或步骤而发生事故的可能性很小,但作者不对因这样做而造成的任何损害承担任何责任。

所有版权均由其各自所有者持有,除非另有明确说明。本文档中使用的术语不应被视为影响任何商标或服务标记的有效性。特定产品或品牌的命名不应被视为认可。


目录
简介
1. 支持的硬件
2. 准备启动
2.1. BOOT_ADMIN
2.2. 控制台
3. PALO,PA/Linux 内核加载器
3.1. PALO 是什么?
3.2. PALO 做什么?
3.3. PALO 管理工具用法
3.4. 如何在早期引导阶段使用 PALO
4. 可用的引导解决方案
4.1. 从 CD 启动
4.2. 从硬盘驱动器启动
4.3. 从网络启动
5. 构建和安装自定义内核
5.1. GCC 编译器
5.2. 内核配置
5.3. 内核安装
A. Windows™ 2003 引导服务器 HOWTO
A.1. 设置 DHCP 服务
A.2. 获取 & 设置 TFTP 服务器
A.3. 尝试网络启动
B. 旧的 PALO 转储
B.1. 使用 PALO 0.97 的 A500 会话转储
C. HOWTO 贡献者
术语表
参考书目

简介

您刚刚收到了在网上购买的 PA-RISC 主机,或者您可能从公司的废料场获得了它。无论如何,接下来要考虑的问题是您将要使用的操作系统。PA/Linux 项目包括将 Linux 移植到 PA-RISC 架构,我们希望如果您决定在您的主机上使用它,本 HOWTO 将帮助您进行设置。

除了移植 Linux 内核之外,开发团队还在努力将 Debian 项目移植到 PA-RISC。事实上,在我们编写本文档时,超过 97% 的软件包池可用于 hppa 上的稳定 Debian 版本(3.1,又名Sarge)(有关详细数据,请参见 buildd 统计信息)。一些 Debian 开发者和用户报告说,该端口是最容易安装的端口之一,因为它感觉就像安装 i386 系统一样。

有关 PA-RISC/Linux 移植项目的更多信息,请参见 http://www.parisc-linux.org/,或镜像站点,例如 http://www.fr.parisc-linux.org/。该站点处理内核的开发和改进。对于用户空间问题,请参考 Debian hppa 端口页面

简而言之,本 HOWTO 旨在帮助那些正在寻找有关在 PA-RISC 系统上使用 Linux 的帮助和信息的人。不需要任何特定的先验知识,但关于 Debian 软件包如何工作的基础知识以及关于 Linux 的一般背景知识可能会有所帮助。

还值得一提的是,本文档的某些章节不是以 Linux 为中心的,可能对处理其他操作系统的用户有用,例如 BSD 甚至 HP-UX。

在列出支持的硬件之后,本 HOWTO 解释了引导时可用的引导控制台处理程序 (BCH) 的一些命令。然后,在另一章中介绍了 PA/Linux 内核加载器的功能,最后详细介绍了许多使您的系统启动并运行的方法。最后,本文深入研究了内核的编译和配置,以及一些提供额外提示的附录。


第 1 章. 支持的硬件

随着 Debian 3.0(又名Woody)中 PA-RISC 架构的发布,硬件支持的数量和质量都得到了重大改进。自从发布的 0.9.3 版本[1]以来,内核得到了极大的改进,因此,当时 0.9.3 版本发布时许多不受支持的硬件现在都可以处理了。这就是为什么即使您的型号没有在此处列出,您也可以尝试一下并将您的结果报告给邮件列表。.

Note

请注意,截至本文档发布之日,Linux 内核的 2.4 系列被认为是过时的,并且在该分支中没有发生任何开发。PA-RISC/Linux 端口的任何新来者都应查看 2.6 内核系列,该系列比 2.4 系列支持更多的硬件。因此,人们不会尝试使用现在老化的 Woody 版本,而是专注于其继任者:Sarge,或者更好的版本:即将发布的 Etch

如果按照本文档的说明进行操作,则以下 PA-RISC 机器应该可以正常工作。请注意,此列表可以随时更改。获取最新版本的最佳方法是查看 http://www.pateam.org/list.html。这是查找有关特定型号的相关信息的地方,包括特殊的引导过程。更多硬件信息可以在 OpenPA 上找到。

除非另有说明,否则 SMP 机器应与 SMP 内核(以及 UP 内核)一起使用。

这些型号尚未真正工作,但正在进行相关工作。

没有计划在不久的将来完全支持以下硬件

以下硬件可能永远无法工作


第二章. 准备启动

像其他任何系统一样,基于 PA-RISC 处理器的机器必须经过几个步骤才能启动并运行 Linux。下一节将介绍 PA-RISC 计算机的早期启动管理。(顺便说一句,为了不那么笨拙,我们有时可能会称其为'PA'机器)。本章将为您介绍一些关键概念,例如 BOOT_ADMIN


2.1. BOOT_ADMIN

首先,您必须了解什么是 BOOT_ADMIN 以及如何在 PA-RISC 机器上使用它,然后才能考虑使用它做任何事情。

BOOT_ADMIN 是一个固件应用程序,用于在早期启动阶段管理 PA-RISC 机器,当机器尚未启动其操作系统时。 它也被称为 启动控制台处理程序 (BCH)。 熟悉 x86 世界的人可能会将其视为一种 BIOS,而 PPC 爱好者可能会认为它是 Open Firmware 的等效物。

我们在整个文档中都将其命名为 BOOT_ADMIN,因为这是它在大多数 PA-RISC 机器上显示的最常见的提示符名称。 您将通过本 HOWTO 看到许多对它的引用,因此值得一提的是,最基本的 BOOT_ADMIN 技能是强制性的!


2.1.1. 进入 BOOT_ADMIN 界面

进入 BOOT_ADMIN 管理工具并不难

  1. 打开您的 PA-RISC 机器。

  2. 在启动过程中,以下消息将出现在当前的控制台上(请参阅 第 2.2 节

    
    Searching for Potential Boot Devices.
    To terminate search, press and hold the ESCAPE key.
    							
    显示此消息时,按住 Esc 键,直到出现选项菜单。这可能需要一段时间,请耐心等待。在最近的机器上,按任意键也会中断启动过程。

  3. 默认情况下,您应该进入 BOOT_ADMIN 控制台。 虽然在某些 715 和 725 上,可能会显示如下选项菜单

    
    b)    Boot from specified device
    s)    Search for bootable devices
    a)    Enter Boot Administration mode
    x)    Exit and continue boot sequence
    ?)    Help
    
    Select from menu:
    							
    键入 'a' 并按 Enter 进入 Boot Administration 模式。 这将弹出一个 'BOOT_ADMIN>' 提示符。

一旦您有 'BOOT_ADMIN>' 提示符,您就可以拍拍自己的背:您处于 BOOT_ADMIN 模式!

正如前面所说的,不同机器上的提示符可能不同。 例如,在最近的机器上,它看起来像那样


Main Menu: Enter command or menu >
					


2.1.2. BOOT_ADMIN 命令

BOOT_ADMIN 是一个早期启动子系统(如前所述,是一个启动控制台处理程序),您可以在其中执行一组有限的命令。 您应该在这里找到您需要了解的关于它们的所有信息。

所有 HP-PA 系统都有一个 BCH。 显示可能不同,但想法保持不变。 这就是为什么以下列表不完整但足够一致。 另一个重要的事情是,对于每个命令,您都有一个更短的方式来调用它。 您可以将快捷方式显示为命令中的大写字母。 在本节中将使用全名。

Caution

处理 BCH 时要小心,您可能会损坏您的系统。

Note

一些命令可能出现在几个不同的菜单中,并且此处列出的所有命令不一定在您的特定系统上可用,这是正常的。


2.1.2.1. 主要main命令

这些命令是最基本的。

  • boot 后面可以跟一个参数,指示您想要启动的路径。 该路径应该是设备的定义,例如FWSCSI.6.0PRI如果您已正确设置此变量。 通常默认为PRI.

  • path 显示或设置当前路径。 仅使用一个参数调用时,它将显示作为参数传递的实体的当前路径:path alt 将显示当前备用启动路径。 path pri fwscsi.6.0 将主启动路径设置为连接到 Fast and Wide SCSI 控制器的设备,ID 为 6,LUN 为 0。您还可以设置和显示控制台(图形/串行)和键盘(ps2/hil/usb)的路径。

  • search 是一个非常有用的命令。 它可以自动检查所有可能的启动设备并显示这些可启动路径。 在几个固件版本中,它将它们链接到快捷方式(如P0)。 如果机器能够启动它,它甚至可以搜索 LAN。 一些固件版本允许您限制搜索路径,例如:search lansearch disk

  • display 重新显示当前菜单。

  • help 为您提供可用命令及其操作的概述。 help name 将为您提供有关命令的详细信息name。 默认情况下,您可以通过键入 help main 来列出所有main命令。

  • main 会将您带回到main菜单,无论您当前正在浏览哪个菜单。

  • 在几乎每个系统上,都有一个 reset 指令。 它使用您设置的最新参数重新启动机器。


2.1.2.2. 配置configuration命令

这些命令在配置configuration菜单中可用。 因此,为了使用它们,您必须通过在 'BOOT_ADMIN>' 提示符。

  • auto 将告诉您,当打开时,机器是自动启动,还是会搜索启动设备,这取决于传递给命令的第一个参数(boot, search, start)。 您可以使用关键字ONOFF.

  • default 将设置恢复为出厂默认值。

  • monitor(仅在 图形控制台中)通过键入 monitor <path> <type> 来设置您的显示配置,指示您的控制台路径和类型。 您可以通过键入 monitor list 来列出可用的模式。

  • fastboot 显示或设置启动测试执行。


2.1.2.3. 信息information命令

它们允许您访问有关您的系统的全局信息。 通过请求 information 来进入此菜单。

  • all 应该显示所有内容。

  • bootinfo 列出系统的所有启动参数。

  • fwrversion 提供您的固件版本。 您可以在 此网页 上检查您的固件是否是最新的。

  • lanaddress 显示系统的 MAC(以太网)地址。 在某些机器上(尤其是 712s),可能会出现两个不同的地址。 您要查找的是第一个。


2.1.2.4. 服务service命令

Warning

这是一个 PA-RISC 大师菜单。

您不会在这里找到任何对最终用户真正感兴趣的东西。 我们建议您不要使用它,除非您真正知道自己在做什么。


2.2. 控制台

在您的 PA-RISC 体验中,您经常会被告知关于控制台的信息。 本节旨在消除这个词的含义,以及如何使用所说的控制台

为了使用 PA/Linux 内核启动您的 PA-RISC 系统,您必须首先设置一个控制台控制台基本上是内核(和固件)将显示其输出的设备,并且可以发送输入以在早期启动阶段控制系统。 您可以使用图形控制台,它需要将监视器和键盘连接到系统,或者使用串行控制台,它允许系统和另一台 Linux 机器或任何 VT 系统之间的串行线路通信。

Note

请注意,固件控制台和内核控制台不一定相同。 例如,可以使用键盘和显示器与 BOOT_ADMIN 交互,并且一旦 PA/Linux 启动,就可以仅将内核输出发送到串行端口。 默认情况下,PA 加载器 (PALO) 将尝试使用固件控制台作为内核控制台。

Tip

工作站通常以图形模式启动,而服务器以串行模式启动。 如果没有连接键盘,或者您在启动系统时按住TOC开关,一些机器也会自动切换到串行模式。

如果您不知道您的机器的实际控制台是什么,这很简单:找到打开机器时首先发送输出的地方(串行线路或显示器输出,如果有的话),那就是控制台。

如果您正在尝试设置 PA-RISC 工作站并且手头有一个显示器,那么最简单的方法是使用图形控制台。 如果您遇到麻烦,或者正在尝试配置服务器,请选择串行控制台


2.2.1. 使用图形控制台

Caution

要使用图形控制台,您必须首先确保 Linux 内核支持您系统的显卡。

有两种方法来处理图形控制台。 如果您考虑报告任何问题,您必须知道如何区分两者。 首先,STI 控制台是经典的视频文本控制台,例如普通 PC 上的 VGA。 这个名称是由于每个具有图形功能的 PA-RISC 机器都具有 标准文本接口 (STI),它定义了一些访问视频存储器的标准化方式。 另一个图形控制台是众所周知的帧缓冲区控制台(在 HP-PA 上以特殊方式使用 STI,因此命名为 STIfb)。 在这种情况下,启动时,您会在左上角看到一个典型的企鹅。 这是区分两种图形模式的最简单方法。

显然,如果您可以使用图形控制台,那是最简单的方法。 然而,您必须确保您的硬件受到支持。

Important

所有 HP 提供的显卡都能处理 标准文本接口控制台层 (STIcon),但并非所有显卡都支持 Linux 下的 标准文本接口帧缓冲层 (STIfb)。Vis-FX 显卡尤其如此,它们只能通过 STIcon 使用。


2.2.2. 使用串口控制台

串口控制台是获取所有控制台消息(包括 BCH 消息)的好方法。它对于错误报告非常有用,因为它的输出可以很容易地转储。此外,大多数 PA-RISC 服务器只能通过串口控制台进行管理。

Note

必须使用串口控制台的唯一情况是:您手边没有显示器,或者机器不支持图形显示。内核也可能无法处理机器上存在的某些特定图形硬件,但这非常罕见(STIcon 应该在任何地方都能工作)。

以下是设置串口控制台支持的步骤。


2.2.2.1. 串口线

要将 PA-RISC 机器连接到 PC 的 RS232 端口,您需要一根 9 针到 9 针的母头空调制解调器电缆。您应该可以在您当地的电脑硬件经销商处获得这种电缆。显然,您也可以选择将电缆的另一端连接到终端(在这种情况下,它可能需要一个 25 针的公头)。无论如何,最实用的方法是将其连接到另一个运行 minicomcu 的设备,这使得所有输出都可以很容易地用于进一步的用途(转储报告、会话日志等等)。


2.2.2.2. 在 Linux 上配置 minicom

为了通过串口线与 PA-RISC 机器通信,您必须将其设置为串口控制台模式(请参阅下文),并配置一个串口通信程序。我们推荐 minicom,它可以在大多数 Linux 发行版中找到。如果您的系统上没有 minicom,您可以在任何主要的 Linux 软件网站上找到最新的软件包。

大多数 minicom 配置都依赖于机器。但是,您必须确保

  1. 波特率设置为 9600

  2. 协议设置为 8-N-1(8 位数据,无奇偶校验,1 位停止位)

不用太担心,因为这些是 PA/Linux 上的默认值。如果在 PC 上运行 minicom,您可能需要更改波特率。


2.2.3. 切换控制台

学习如何在 PA-RISC 设备上管理控制台模式可能很有用。以下部分将解释有关控制台模式的各种操作。


2.2.3.1. 检查当前控制台模式

键入:path console 查看当前控制台模式。

如果是图形控制台模式,它将返回类似:'Console path = graphic_1'.

如果是串口控制台,它将返回:'Console path = rs232_a.9600.8.none' 或类似的东西。

Note

在某些型号上,命名可能略有不同,但思路保持不变。如果您想在此处看到更多描述,请给我们发送一条消息,描述您使用的设备以及您得到的结果。


2.2.3.2. 更改为串口控制台模式

要更改为串口控制台模式,请在 'BOOT_ADMIN>' 命令提示符下键入以下命令

path console rs232_a.9600.8.none

或者,像在 B132L+ 上一样

path console serial_1

无论如何,在大多数设备上,如果您尝试为控制台设置无效路径,您将收到警告并再次提示您输入有效路径。要验证控制台路径是否已正确设置,请键入 path console。这应该返回类似 'Console path = rs232_a.9600.8.none' 的内容,表明系统现在已设置为使用串口控制台从 RS232 端口“A”启动。如果您的机器只有一个端口,这没关系,如果不是,请注意使用正确的端口。reset 将使用新参数重新启动您的系统。


2.2.3.2.1. 如何在 712 上将启动控制台更改为串口?

不幸的是,这*通常*是不可能的。虽然 712 被配置为在 HP 内部开发中使用串口,但无法在 BOOT_ADMIN 中设置。您将不得不在 712 上使用图形控制台。当我们可以用它来运行 X 时,我们为什么要使用这个漂亮的 712 的串口控制台?!

无论如何,如果您想尝试最前沿的解决方案,请查看 PA/Linux 邮件列表存档中的一个技巧。这解释了如何从 HP/UX ISL 提示符更改控制台。由于您实际上需要 HP/UX 才能执行串口技巧,因此您可以在此处找到一个小的 HP/UX lifimagehttp://www.pateam.org/archive/uxbootlf。(有关如何 netboot lifimage,请参阅第 4.3 节)。事实上,如果您想在不连接键盘的情况下启动设备,712 上的串口控制台尤其有用,否则这是不可能的。

Warning

以下说明是非官方的、不受支持的,并且通常是一个糟糕的主意,因为您可能会使您的 712 无法启动,如果出现问题,需要 HP 技术人员的干预。小心!

以下是步骤

  1. 打开设备,并在 BOOT_ADMIN 中,启动进入 HP/UX ISL。例如

    
    BOOT_ADMIN> boot lan isl
    								
  2. 一旦您得到 'ISL>' 提示符,键入以下内容

    • 切换到串口:conspath 2/0/4.0x283

    • 切换到图形:conspath 1/0/0.0

  3. 仍然在 'ISL>' 提示符下,键入 disp,并检查控制台路径是否为 '(hex) 2/0/4.283.0.0.0.0.0'(对于串口),或 '(hex) 1/0/0.0.0.0.0.0.0'(对于图形)。

  4. 重启系统以在新控制台上启动。


2.2.3.3. 更改为图形控制台模式

这是与上一个操作相反的操作。通过检查您的控制台路径,您应该看到 'Console path = rs232_a.9600.8.none'。现在,您可以通过在 'BOOT_ADMIN>' 提示符下发出以下命令来切换到图形模式

path console graphic_1

实际的切换将在 reset 之后发生。如果显示器似乎工作不正常,请尝试在启动序列开始时按 Tab 键(当然是在连接到设备的键盘上)来更改显示器的分辨率。通过按此键,显示器分辨率会从一个循环到另一个。

Tip

更换显示器时请记住这一点。


第 3 章. PALO,PA/Linux 内核加载器

3.1. 什么是 PALO

PALO 是一组由两个程序组成的程序,一个引导加载程序(由 PA-RISC 固件加载到内存中,然后执行),以及一个引导介质管理工具,用于准备和更新可引导介质,例如硬盘驱动器。

PALO 引导加载程序可执行文件存储在一个名为iplboot. 'IPL' 的文件中是 HP 对初始程序加载器的术语(请参阅词汇表)。引导介质管理工具称为 PALO,它代表 PA/Linux LOader,就像在 x86 上引导介质管理工具称为 LILO 一样。

即使 PALO 非常像 LILO(两者都有一个用户空间应用程序和一个引导加载程序可执行文件),值得一提的是,PALO 通常不需要像 LILO 一样在每次构建和安装新内核时调用[2]

Note

PALO 与 PA/Linux 开发密切相关。因此,已经发布了多个版本。PALO 的作者 Paul Bame 在这封 邮件中解释了 make palo 操作方式的一些变化。


3.2. PALO 做什么?

主要思想是引导内核,并将其传递给所有需要的参数。这就是 PALO引导加载程序部分所做的事情(请参阅第 3.4 节)。一旦它被固件调用,它会将 Linux 内核加载到内存中,并将给定的参数传递给它,并告诉处理器跳转到它的入口点。这将开始在 PA-RISC 计算机上执行内核。

PALO 管理工具可以将常用的vmlinux转换为 PA-RISC 可引导的 lifimage,包括或不包括RAMDISKNFSROOT支持。但是,它也可以使硬盘驱动器可引导,指定控制台输出和根设备。我们将精确地看到所有这些要点。

Important

必须记住的是vmlinux仅仅是内核本身,它本身是不可引导的。它需要 PALO 才能转换为可引导的lifimage用于 CD 或网络引导,或在引导时从准备好的硬盘驱动器加载。请查看关于这些单词的词汇表。引用一位著名的 PA/Linux 黑客:

 

人们经常尝试将 lifimage 放入 /boot 中,或将 vmlinux 放入网络引导服务器上。

 
--Richard Hirst 
这显然是错误的。


3.3. PALO 管理工具用法

在这里,我们将展示使用 PALO 引导介质管理工具可以完成哪些操作。有关 palo 用法的深入信息,我们强烈建议您查看 PALOREADME文件,该文件可以在palo/目录中找到,网址为 http://cvs.parisc-linux.org/

对于接下来的两个步骤,您将需要一个编译器工具链,请参阅第 5.1 节


3.3.1. 制作一个lifimage带有RAMDISK

首先:您应该什么时候这样做?

在 PA/Linux 项目的早期阶段,lifimage非常有用。事实上,只需将此文件放入引导服务器树中,您就可以使用 boot lan 指令来引导您的 PA 设备,而无需任何进一步的参与(请参阅第 4.3 节)。的主要优势是RAMDISK因为它在 RAM 中解压缩自己的文件系统,因此完全独立于机器的 I/O 能力(硬盘等)。主要的缺点是你必须自己构建RAMDISK如果你有内存限制或需要一些定制的文件。现在,让我们看看如何获得一个lifimage带有RAMDISK.

我们假设你已经获得了 PA/Linux 内核树的最新源代码(以下简称“linux/目录”),并且你对内核配置有所熟悉。请查看 5.2 节以了解 PA-RISC 特定的选项。主要地,你需要一个(交叉)编译器,linux/目录和已安装的 PALO 包。如果你没有安装,请以root身份运行 apt-get install palo。所有内容也可以在 http://www.parisc-linux.org/ 找到。完成内核配置步骤。然后,运行 make palo,如果 PALO 已安装,编译结束时应显示以下消息

A generic palo config file (./palo.conf) has been created for you.
You should check it and re-run "make palo".
WARNING: the "lifimage" file is now placed in this directory by default!
					
所以,编辑palo.conf文件
# This a generic Palo configuration file.  For more information about how
# it works try 'palo -?'.
#
# Most people using 'make palo' want a bootable file, usable for
# network or tape booting for example.
--init-tape=lifimage
--recoverykernel=vmlinux

########## Pick your ROOT here! ##########
# You need at least one 'root='!
#
# If you want a root ramdisk, use the next 2 lines
#   (Edit the ramdisk image name!!!!)
--ramdisk=ram-disk-image-file
--commandline=0/vmlinux HOME=/ root=/dev/ram initrd=0/ramdisk

# If you want NFS root, use the following command line (Edit the HOSTNAME!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/nfs nfsroot=HOSTNAME ip=bootp

# If you have root on a disk partition, use this (Edit the partition name!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/sda1
					
正如你所见,RAMDISKmode 是默认的。字符串ram-disk-image-file应向 PALO 提供你的RAMDISK文件的路径。你不应该更改此文件中的任何其他内容。编辑完palo.conf之后,你可以再次运行 make palo。结果,一个lifimage文件,在linux/目录中等你。


3.3.2. 制作一个lifimage带有NFSROOT

此方法被广泛使用,因为内核和文件系统可以直接在你的引导服务器上访问。测试新的内核也很容易。你只需要生成内核并将其放入正确的目录中。启动时,PA 机器将在 BOOT_ADMIN 中输入 boot lan 来引导新的内核。最后,对于不支持 I/O 设备的系统(例如本文档撰写时的 E 类机器),这是唯一的方法。

启用NFSROOT支持比RAMDISK更容易。你必须编辑palo.conf以指定引导服务器的 IP 地址,而不是字符串HOSTNAME。例如,如果你的服务器的 IP 地址为 10.10.10.2,那么palo.conf文件应包含

# This a generic Palo configuration file.  For more information about how
# it works try 'palo -?'.
#
# Most people using 'make palo' want a bootable file, usable for
# network or tape booting for example.
--init-tape=lifimage
--recoverykernel=vmlinux

########## Pick your ROOT here! ##########
# You need at least one 'root='!
#
# If you want a root ramdisk, use the next 2 lines
#   (Edit the ramdisk image name!!!!)
#--ramdisk=ram-disk-image-file
#--commandline=0/vmlinux HOME=/ root=/dev/ram initrd=0/ramdisk

# If you want NFS root, use the following command line (Edit the HOSTNAME!!!)
--commandline=0/vmlinux HOME=/ root=/dev/nfs nfsroot=10.10.10.2 ip=bootp

# If you have root on a disk partition, use this (Edit the partition name!!!)
#--commandline=0/vmlinux HOME=/ root=/dev/sda1
					
如果你有另一个 IP,则必须使用正确的数据填写此字段。你不应该更改此文件中的任何其他内容。正确配置palo.conf之后,你可以进入linux/目录并执行 make palo。结果,一个lifimage文件,像往常一样在linux/目录中等你。

中等待着你。有关NFSROOT管理的更多详细信息,请查阅 参考文献中的相关 HOWTO。


3.3.3. 制作一个可引导的分区

在这一部分中,PALO 可以被看作是一个 LILO 克隆。palo 主要是一个程序,它使 PA 机器能够引导硬盘驱动器上存在的内核。本节将解释如何使其工作。

安装 PALO 包之后,默认的palo.conf副本可以在/usr/share/doc/palo/palo.conf找到。我们将在此处解释如何自定义它以满足你的需求。

要设置一个可引导的硬盘,你必须正确地对其进行分区(也就是说,如果你想将其用作你的主要引导设备)。这意味着只有在你已经在你的 PA-RISC 机器上引导了一个最小系统(从 CD 或网络,参见 第 4 章)之后,或者如果你打算使用目标机器以外的另一台计算机来准备你的硬盘(例如,这对于解压缩和设置下载的文件系统对于一台速度较慢的机器来说可能很有用),才能完成此步骤。本 HOWTO 的重点不是教你如何使用 fdisk 和朋友们,所以这里有一些你必须知道的事情

  • 完全包含在你的目标设备的前 2GB 中的分区必须是分区类型 'f0',这是为 PALO 引导加载程序保留的分区类型。

  • 有两种使用 PALO 的方式:旧的方案(适用于所有版本),其中该分区仅存储配置和恢复内核;以及新的方案(自 PALO 1.5 起可用),其中该分区将被格式化为 ext2 或 ext3 并挂载在/boot.

  • 在第一种情况下,该分区不需要很大。这是 PALO 将保存其配置、恢复内核(每个大约 5MB)和可选的恢复 ramdisk 的地方,因此 32MB 似乎足够了。

  • 或者,在第二种情况下,由于你将使用它作为/boot,你应该适当地调整其大小。 100MB 是一个不错的选择。

Warning

注意!实际要引导的vmlinux文件也必须位于硬盘的前 2GB 内。我们强烈建议要么(在方案中)在磁盘的开头创建一个单独的/boot分区(除非你计划每次都引导恢复内核),要么使用方案并将 PALO 分区挂载为/boot,因为如果你的 vmlinux 二进制文件物理存储在磁盘的前 2GB 之外(就像用数据填充 '/' 时一样),机器将无法再引导。

事实上,PALO 的第三种用法是最常见的,因为默认的/etc/palo.conf使其易于配置。


3.3.3.1. 旧的方案:隐藏分区

隐藏分区已被弃用。不要将此用于新的设置。请改用新的方案(参见 3.3.3.2 节)。记录隐藏分区方法是为了后代。

以下是 fdisk 的输出,它表示具有 16MB PALO 空间、128MB 交换空间和大约 1GB '/' 分区的机器的硬盘驱动器


bash# fdisk -l /dev/sda

Disk /dev/sda: 133 heads, 62 sectors, 1017 cylinders
Units = cylinders of 8246 * 512 bytes

	 Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1         4     16461   f0  Linux/PA-RISC boot
/dev/sda2             5        34    123690   82  Linux swap
/dev/sda3            35       277   1001889   83  Linux
					

现在让我们处理 PALO 配置。以下是你可以更改的各种参数

  • recoverykernel(顾名思义)是你想要在故障安全会话中引导的内核的路径,它将存储在 'f0-type' 分区中。

  • bootloaderiplboot引导加载程序实用程序的路径,该实用程序由 PALO 在你发出 make iplboot 时创建。

    Note

    通常你不想更改甚至指定它。

  • init-partitioned用于指示 palo 将把其引导参数写入的预分区设备。效果是立竿见影的。这意味着 PALO 将写入(并擦除)此设备的 'f0' 分区的内容,该分区必须存在。

  • commandline:第一个数字是内核文件所在的 ext2/ext3 分区的编号,由 fdisk 报告。逻辑上,下一个字符串是内核的绝对路径从此分区的根目录开始 [3]。以下空格分隔的参数(不要使用任何引号!)将作为其参数传递给内核。例如HOME=TERM=是引导时传递给 init 的环境参数。它们不是强制性的,但它们可能很有用。root=告诉内核在引导时必须将哪个分区挂载为根文件系统。当你有多个磁盘时,它可能会很棘手,并且是一个强制性参数。命令行的最大长度为 127 个字符。

    你也可以添加console=,以强制指定输出控制台。你应该记住console=ttyS0用于串行控制台,并且console=tty0用于 STI(图形)控制台。对 MUX 控制台的支持(如果在内核中启用,请参见 5.2 节)已添加,使用console=ttyB0PALO 的最新版本会自动检测正确的控制台路径(MUX 除外),并且可以确定应使用 32 位还是 64 位内核。如果没有,请发送邮件到邮件列表。最后但同样重要的是,如果你使用的是 Debian 2.6 内核,你还需要添加initrd=X/path/to/initrd,遵循与内核路径相同的规则[3],请参见上文。

根据上面的 fdisk 示例,我们想使用/dev/sda3作为我们的根分区。因此,配置文件应如下所示

# The following arguments are set up for booting from /dev/sda, specifically
# mounting partition 3 as root, and using /boot/vmlinux as both the
# recovery kernel, and the default dynamically-booted kernel.
--recoverykernel=/boot/vmlinux
--init-partitioned=/dev/sda
--commandline=3/boot/vmlinux root=/dev/sda3
						


3.3.3.2. 新的方案:挂载分区

以下是使用新方式做事的一个实际示例,通过使用格式化的 PALO 分区。对于新的安装,该方案应该是首选方案。

查看前面的示例(3.3.3.1 节),只需更改很少的内容。本质上,如果你需要一个单独的/boot分区,它将在下面详细介绍的方案中消失。 PALO 的配置也会略有不同,但仅此而已。

以下是 fdisk 的输出,它表示具有 100MB PALO 空间(将挂载为/boot)、128MB 交换空间和大约 1GB '/' 分区的机器的硬盘驱动器(请记住,f0分区仍然必须完全包含在磁盘的前 2GB 内)


bash# fdisk -l /dev/sda

Disk /dev/sda: 133 heads, 62 sectors, 1017 cylinders
Units = cylinders of 8246 * 512 bytes

	 Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        26    100461   f0  Linux/PA-RISC boot
/dev/sda2            27        36    123690   82  Linux swap
/dev/sda3            37       277    917889   83  Linux
					

现在让我们处理 PALO 配置。与之前的示例相反,配置文件中需要放入的选项要少得多,并且设置是一个单步操作:初始化步骤,只需执行一次。

要首次初始化 PALO 分区作为 Linux 系统可以理解的东西(ext2ext3文件系统),你需要运行以下命令(作为root):

[user@machine ~/dir]> palo --format-as=N --init-partitioned=target_disk
					

,其中N2表示ext23表示ext3,并且target_disk是包含 PALO 分区的设备,/dev/sda在本示例中。继续这个例子,假设我们想要一个ext3分区,我们将使用

[user@machine ~/dir]> palo --format-as=3 --init-partitioned=/dev/sda
					

Warning

不要使用 mkfsmke2fs 在此分区上生成文件系统。PALO 将块标记为已使用,其中 PALO 的引导加载程序部分存储在磁盘上。这些工具不知道 PALO 引导加载程序!

Note

这只需要运行一次,因为它会擦除f0分区上的任何现有数据。

最后,我们需要告诉 PALO 有关分区的信息,我们希望如何使用它,以及我们不希望每次运行 PALO 时都将其擦除。因此,与我们当前的示例保持同步,配置文件应如下所示

# The following arguments are set up for booting from /dev/sda, specifically
# mounting partition 3 as root and booting the vmlinux file in /dev/sda1, palo
# partition formatted as ext3.
--update-partitioned=/dev/sda --format-as=3
--commandline=1/vmlinux root=/dev/sda3
						

正如人们所见,由于我们将直接将我们的内核存储在f0分区上,我们告诉 PALO 从中加载它们(因此1commandline参数中)。

Note

在上一节(3.3.3.1 节)中,我们处理了init-partitioned参数。在这里,我们使用update-partitioned相反,与前者相反,它告诉 PALO 在运行时不要擦除分区的内容[4]


3.4. 如何在早期引导阶段使用 PALO

3.4.1. 理论

您已经完成了所有设置,重启了您的主机,突然您想修改内核启动参数,甚至启动另一个内核。糟糕!现在机器正在启动,该怎么办?别担心,冷静下来,深吸一口气,我们有解决方案!不幸的是,当您了解这些的时候,您的主机可能已经完成了启动 ;o)

首先,您必须学会如何在启动序列期间与 PALO 交互。您必须进入 BOOT_ADMIN,如第 2.1.1 节所述。 对于一些旧型号(大约到 712),您必须添加ipl(或者isl) 字符串到 BOOT_ADMIN 控制台的引导命令中。

BOOT_ADMIN> boot pri ipl
在大多数 PA-RISC 主机上,系统会询问您是否要与 IPL 交互。 您只需回答 “y” 并按 Enter 键。 然后您将进入 PALO 配置显示界面,其中包含所有参数及其对应数字的列表。

您只需输入与您想要更改的参数对应的数字。按 Enter 键,修改它,然后再次按 Enter 键确认更改。 系统将重新显示新列表。 此修改不是永久性的[5]! 如果您想添加一个补充参数,选择其中任何一个并在编辑行上写入您的参数,以空格开头。

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 0
3/boot/vmlinux initrd=3/initrd.img
						
验证后,列表将多一个参数。 如果您想删除一个参数,选择它并擦除整个条目。 您会看到列表少了一个参数。

有关 PALO 的更多信息,请查看 PALO README。安装 palo 包后,您可以在以下位置找到此文件的副本:/usr/share/doc/palo/README.html本 HOWTO 部分主要受到 Paul Bame 编写的上述文件的启发。


3.4.2. 一个完整的例子

此示例由 Michael Damaschke 建议。我们将使用 第 2.1 节第 3.4.1 节中解释的概念,并参考 第 2.2 节中看到的控制台等概念。所以,让我们开始讲述快乐的 PA/Linux 用户启动内核的故事,也被称为 “我不知道如何配置我的工作站以便在启动序列期间使用我想要的内核!”。

打开您的工作站后,控制台上会显示一条消息,告诉您工作站即将自动启动引导序列,除非您按住 Esc 键来停止自动引导过程。这是一个非常困难的步骤:您必须按住 Esc 键 ;o)

Note

根据您的型号,您可能需要长时间按住此键。

Tip

在某些情况下,当使用图形控制台时,显示器可能启动速度太慢,无法显示警告消息。一个好的解决方法是密切关注键盘的指示灯:当它们同时闪烁时,就是按住 Esc 键的正确时机。如果您仍然遇到问题,请参阅 第 2.2 节

有几种不同的方法可以访问 BOOT_ADMIN(请参阅 第 2.1.1 节)。如果您有一个旧主机,您将看到显示的一条信息消息,其中工作站的固件告诉您它将开始搜索所有可引导的设备,或者您可以通过按住 Esc 键来中断此过程。这与前面提到的过程相同,您必须按下 Esc 键。

通常,在某些机器上,您可能会看到一个菜单,您应该按 a 键,然后按 Enter 键。 现在您面临着可怕的'BOOT_ADMIN>' 提示符 :^)。 首先,我们将关闭自动引导通过输入以下行来处理,

BOOT_ADMIN> auto boot off

然后按 Enter 键进行验证。 这将阻止主机进一步尝试自动引导。 换句话说,您不必使用 Esc 键停止引导过程,它将在后续重启时自行停止并等待您的指示。

现在,您必须告诉系统您想从哪个引导设备启动。 如果它是硬盘驱动器,它必须在开头有一个 'f0' 分区(请参阅 第 4 章)。

在此示例中,旧内核是vmlinux而新内核是vmlinux-2.4.17-pa3。 所选的 SCSI 启动设备由SCSIX.0, 设计,其中X是您要从中启动的磁盘的 SCSI-ID[6]例如:

BOOT_ADMIN> boot SCSI.5.0

在前一个命令行末尾,如果您有 HP 9000/7xx 系统,则必须添加IPL令牌,以指定您想要与 IPL 交互。 如果您有更新的硬件,系统会询问您是否要与 IPL 交互

Interact with IPL (Y or N)?>

Y 并按 Enter 键。 现在,您可以手动配置 PALO 启动参数。 将显示一个新菜单,您可以在在线 '0' (默认选择) 上配置启动分区号和启动内核的路径。

这是从 PALO 版本 1.5 截取的 A500 串行控制台输出的完整会话日志。您可以在 附录 B.1 中找到使用旧版本 palo 的会话日志,例如可以在 Debian 3.0 安装盘中找到的会话日志。

Main Menu: Enter command or menu > bo scsi.5.0
Interact with IPL (Y, N, or Cancel)?> y

Booting...
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 1.5 root@c3k Fri May 14 16:17:38 MDT 2004
Skipping extended partition 6 - beyond reach of IPL

Partition Start(MB) End(MB) Id Type
1               1      31   f0 Palo
2              32     153   83 ext2
3             154    1107   82 swap
5            1108    5875   83 ext2

PALO(F0) partition contains:
    0/vmlinux64 5279419 bytes @ 0x44000

Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently used by firmware (serial).
Current command line:
2/vmlinux root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux
 1: root=/dev/sdb5
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 0
2/vmlinux-2.6-cvs initrd=2/initrd.img-cvs
Current command line:
2/vmlinux-2.6-cvs initrd=2/initrd.img-cvs root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux-2.6-cvs
 1: initrd=2/initrd.img-cvs
 2: root=/dev/sdb5
 3: HOME=/
 4: console=ttyS0
 5: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? 1

Current command line:
2/vmlinux-2.6-cvs  root=/dev/sdb5 HOME=/ console=ttyS0 TERM=vt102
 0: 2/vmlinux-2.6-cvs
 1: root=/dev/sdb5
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

<#>    edit the numbered field
'b'    boot with this command line
'r'    restore command line
'l'    list dir
? b
					

PALO 最初设置为引导内核文件vmlinux位于 SCSI 设备 ID 5 LUN 0 的第二个分区上。(我们知道这一点,因为我们已经要求 BOOT_ADMIN 在此设备上启动)。 但这次我们需要另一个内核。 我们按下了 Enter 键(以验证默认选项 '0')并修改了文本以满足我们的需求,这里是vmlinux-2.6-cvs。 我们还添加了一个initrd=2/initrd.img-cvs参数到命令行。 我们通过按下 Enter 键验证了我们的更改。 最后,我们决定不需要这个额外的参数,所以我们选择了它并擦除了它。 最后,它再次询问我们要编辑哪个字段,我们只是键入了 'b' 而不是任何数字,然后按 Enter 键来启动我们的新内核。

Caution

请不要更改任何其他参数,除非您真的知道自己在做什么!

就是这样! PALO 对你来说不再有秘密了 :-)

Note

您可能已经注意到,BOOT_ADMIN 界面可以呈现多种外观,因此如果您的界面与我们的示例不完全匹配,请不要失望。


第 4 章. 可用的启动解决方案

4.1. 从 CD 启动

从 CD 启动是启动和安装 PA-RISC 机器的最简单方法之一;假设您手边有一个 CD 驱动器和一个可启动的 CD。您可以从 Debian 安装程序页面PA-RISC/Linux 官方网站下载官方 Debian ISO 以及 网络安装 ISO(请参阅 netinst)。

  1. 启动主机并进入 BOOT_ADMIN 模式。(第 2.1.1 节

  2. 将您的可启动 CD 放入 CD 托盘并关闭它。 听起来很明显,但我们知道有人错过了这一步 :)

  3. 从那里有两种选择:要么您知道完整的路径到您的 CD 设备,那么您可以跳到下一步,否则您不知道。在后一种情况下,发出 search ipl 以列出所有可用的可引导设备。您也可以指定 search [PATH],这更快。 例如,如果您想搜索 SCSI 总线,请执行以下操作

    search SCSI

    在较新的主机上,search disk 非常有用。 请查看 help search 以获取特定于您主机的详细信息。

  4. 一旦你知道完整的路径到您的 CD 驱动器,您可以发出 boot <PATH>。 就是这样。 如果一切顺利,它将开始启动 CD 阅读器中存在的 CD。 真实示例

    boot ide

4.2. 从硬盘驱动器启动

从硬盘驱动器启动实际上并不比从 CD 启动更困难。 唯一真正重要的是您的硬盘驱动器必须正确准备。 请查看 第 3.3.3 节,了解如何准备它。

  1. 启动主机并进入 BOOT_ADMIN 模式。(第 2.1.1 节

  2. 从那里有两种选择:要么您知道完整的路径到您的硬盘驱动器设备,那么您可以跳到下一步,否则您不知道。在后一种情况下,发出 search ipl 以列出所有可用的可引导设备。您也可以指定 search [PATH]。 例如,如果您想搜索单端 SCSI 总线,请执行以下操作

    search SESCSI

    请查看 help search 以获取特定于您主机的详细信息。

  3. 一旦你知道完整的路径到您的硬盘驱动器,您可以发出 boot <PATH>。 就是这样。 如果一切顺利,它将开始启动 PALO 设置的内核(请参阅 第 3.3.3 节)。 真实示例

    boot scsi.6

4.3. 从网络启动

只有在某些情况下才需要从网络启动。 当您有不受支持的 I/O 设备、无盘系统或硬件损坏的系统时,从网络启动非常有用。 下面详细介绍了网络启动。


4.3.1. 准备从网络启动

从网络启动涉及两台机器:引导服务器引导客户端,后者是您尝试启动的 PA-RISC 系统,前者是将在网络上提供客户端所需文件的机器。 本节的其余部分将广泛讨论设置引导服务器,因为这可能是最棘手的部分。

Important

您需要一个 lifimage 才能执行网络启动。 请参阅 第 3.2 节以了解如何创建一个。 您也可以使用来自 Debian 安装程序 的文件。

Note

不用说,所有服务器端设置都应由 超级用户 执行,也称为root.


4.3.2. rboot 还是 bootp?

所有“较新”的机器都可以使用BOOTP启动,从 715/100、715/120 和 712s 开始。 较旧的机器,主要是早期的 715s、710s 和 725s 需要RBOOT.

Note

要使用BOOTP您必须在内核配置的“网络选项”部分中启用 IP: 内核级别自动配置->IP: BOOTP 支持,如果您想使用 自制 内核。 请参阅 第 5 章 以获取详细信息。

请注意,虽然 第 4.3.3 节 处理的是RBOOT只有,第 4.3.4 节第 4.3.5 节 中详细介绍了该BOOTP协议的两种不同实现。 我们详细介绍了这两种实现因为我们可以,但如果您需要使用BOOTP协议,您将必须选择一个。

Tip

如果您不知道要使用哪个BOOTP实现,请选择 dhcp 实现,它更容易处理。


4.3.3. 使用 rboot

4.3.3.1. 获取 rbootd

如果您的旧机器需要使用 rboot 通过网络启动,请使用以下步骤设置和配置启动服务器,并使用 PA-RISC/Linux 内核启动。

旧机器,包括 Scorpio 715s,使用RBOOT协议。您需要 rbootd 来处理它们的启动请求。在您喜欢的发行版存档中查找它(假设您将从 Linux 机器处理启动请求)。以下是获取 rboot 守护程序的两种方法

  • 如果您正在使用 Debian 驱动的服务器(您真的应该这样做;o),那么您几乎完成了。从命令 shell 运行

    [user@machine ~/dir]> apt-get install rbootd
    							
  • 如果您找不到适用于您的系统的任何 rbootd 软件包(这很有可能,因为它是一个非常旧的网络启动协议),您可以在 Debian 存档中找到它的源代码:rbootd。您将必须从源代码构建它。


4.3.3.2. 配置 rbootd

正如我们已经说过的,要启动一个RBOOT系统,您需要一台单独的机器,该机器上安装了 rbootd(这是“启动服务器”),您将在其上存储您想要用来启动 PA-RISC 系统的 PA-RISC/Linux 内核 lifimage

安装 rbootd 服务器软件后,请阅读以下内容以配置它以与您的 PA-RISC 系统一起工作

/etc/rbootd.conf您将必须添加一行,例如

ethernet_addr            bootfile

  1. 替换bootfile与您的 PA-RISC/Linux 内核映像的名称,通常是'lifimage'.

  2. 现在通过在“BOOT_ADMIN>提示符下键入 lanaddress 获取您的 PA-RISC 系统的以太网地址(请参阅第 2.1.2.3 节)。

    它将返回一个类似于080009-7004b6的数字。记下这个数字。

  3. /etc/rbootd.conf在您的启动服务器上,以太网地址必须用冒号分隔。这意味着您必须修改您刚刚获得的数字,以便每两个字符(在删除“-”之后)都用冒号分隔。例如080009-7004b6变成08:00:09:70:04:b6。将冒号分隔的以太网地址添加到/etc/rbootd.conf在您的启动服务器上。生成的文件将如下所示

    # ethernet addr        boot file           comments
    
    08:00:09:87:e4:8f      lifimage_715        # PA/Linux kernel for 715/33
    08:00:09:70:04:b6      lifimage_720        # PA/Linux kernel for 720
    							

    rbootd.conf示例包含两台不同机器的以太网地址和启动文件名。

    更改配置文件后,重新启动 rbootd

默认情况下,rbootd 假定启动文件位于/var/lib/rbootd/。因此,您必须将可启动内核映像放在该目录中,或者,如果您出于某种原因真的讨厌该目录,您可以重建 rbootd 以使用不同的目录。

当然,最简单的方法是将您的内核映像放在默认目录中!


4.3.4. 使用 dhcp/tftp

我们将在这里看到如何设置DHCP服务器来处理BOOTP请求(因为 PA-RISC box 使用BOOTP,除非他们需要RBOOT,如上所述)。

Note

Windows™ 用户可能需要查看 附录 A


4.3.4.1. 获取 dhcp/tftp

Debian 用户只需使用以下命令安装软件包,以root:

[user@machine ~/dir]> apt-get install dhcp tftpd
					

如果您需要 rpm 软件包(对于 ISC dhcp 服务器),最好的方法是访问 http://rpmfind.net/

Note

dhcp 软件包可以做比简单的 bootp 守护程序更多的事情。然而,它也被认为更容易配置。如果您真的想尝试常规的 bootp,请跳过此步骤并转到第 4.3.5 节


4.3.4.2. 配置 dhcp/tftp

以下是在您的启动服务器上设置 dhcp 的说明。为了简化此说明,我们将假设您想为您的设备分配一个固定的 IP,而无需 DNS 更新。您的子网将是192.168.1.0/24,可选:网关位于192.168.1.1,域名foo.com和 DNS 位于192.168.1.4。请随意在接下来的部分中将这些值替换为适合您需求的值。

Note

本节专门针对 Debian 用户。对于其他发行版,它应该是相似的,尽管可能存在一些差异,例如默认目录。

  1. 编辑/etc/inetd.conf在您的启动服务器上添加以下行,如果它还不存在

    tftp           dgram   udp     wait    nobody  /usr/sbin/tcpd \
    														/usr/sbin/in.tftpd /tftpboot
    								
    在这里,/tftpboot/用作 tftpd 服务器的根目录(这是您将放置 lifimage 文件的位置)。您可以选择另一个目录,如果您愿意。根据 man tftpd,这是通常的默认目录。

    完成此操作后,使用以下命令重新加载 inetd/etc/init.d/inetd reload。非 Debian 用户也可以发出 killall -HUP inetd

  2. 根据 man 5 dhcpd.conf,编辑/etc/dhcpd.conf文件以包含类似的内容

    allow bootp;
    default-lease-time 600;
    max-lease-time 7200;
    # This will tell the box its hostname while booting:
    use-host-decl-names on;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
    		option routers 192.168.1.1;
    		option domain-name "foo.com";
    		option domain-name-server 192.168.1.4;
    }
    
    host [hostname] {
    		hardware ethernet [mac address];
    		fixed-address [ip address];
    		filename "[boot filename]";
    		option root-path "[root path]";
    }
    								
    您必须填写[hostname], [mac address], [ip address], [boot filename][root path]字段,其中

    • [hostname]是 PA-RISC 系统的名称。

    • [mac address]是 PA-RISC 系统的冒号分隔的以太网地址,可以通过在“BOOT_ADMIN>提示符下键入 lanaddress 获取您的 PA-RISC 系统的以太网地址(请参阅第 2.1.2.3 节)。

    • [ip address]是您希望分配给 PA-RISC 系统的 IP 地址。

    • [boot filename]是您希望用来启动系统的可启动内核映像的名称。

    • [root path]是服务器导出的 NFS 根文件系统的路径。

    • 此外,如果您要使用的 tftp 服务器与运行 dhcp 服务器的服务器不同,您可以添加next-server[ip address];,替换[ip address]为 tftp 服务器的实际 IP 地址,添加到 dhcp 配置。

    您最终会为每个要 netboot 的设备得到类似的东西

    host tatooine {
    		hardware ethernet 00:40:05:18:0c:dd;
    		fixed-address 192.168.1.22;
    		filename "lifimage-tatooine";
    		option root-path "/exports/tatooineroot";
    }
    								


4.3.5. 使用 bootp/tftp

4.3.5.1. 获取 bootp/tftp

对于 Debian 用户,您只需以用户身份键入这些命令来安装软件包root:

[user@machine ~/dir]> apt-get install bootp tftpd
						
如果您需要 rpm 软件包,最好的方法是访问 http://rpmfind.net/

Warning

您已经被警告过了!此守护程序的配置更加令人困惑。


4.3.5.2. 配置 bootp/tftp

按照这些说明在您的启动服务器上使用 bootp 守护程序

Note

本节专门针对 Debian 用户。对于其他发行版,它应该是相似的,尽管可能存在一些差异,例如默认目录。

  1. 编辑/etc/inetd.conf在您的启动服务器上添加以下行,如果它们还不存在

    tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd       \
    											/usr/sbin/in.tftpd /tftpboot
    bootps          dgram   udp     wait    root    /usr/sbin/bootpd     \
    														bootpd -i -t 120
    								
    在这里,/tftpboot/用作 tftpd 服务器的根目录(这是您将放置 lifimage 文件的位置)。您可以选择另一个目录,如果您愿意。根据 man tftpd,这是通常的默认目录。

    完成此操作后,使用以下命令重新加载 inetd/etc/init.d/inetd reload。非 Debian 用户也可以发出 killall -HUP inetd

  2. 根据 man 5 bootptab,编辑/etc/bootptab文件以包含

    [hostname]:hd=/tftpboot:\
    			:rp=[root path]:\
    			:ht=ethernet:\
    			:ha=[mac address]:\
    			:ip=[ip address]:\
    			:bf=[boot filename]:\
    			:sm=255.255.255.0:\
    			:to=7200:
    								
    您必须填写[hostname], [mac address], [ip address][root path]字段,其中

    • [hostname]是 PA-RISC 系统的名称。

    • [mac address]是 PA-RISC 系统的未分隔的以太网地址,可以通过在“BOOT_ADMIN>提示符下键入 lanaddress 获取您的 PA-RISC 系统的以太网地址(请参阅第 2.1.2.3 节)。

    • [ip address]是您希望分配给 PA-RISC 系统的 IP 地址。

    • [boot filename]是您希望用来启动系统的可启动内核映像的名称。

    • [root path]是服务器导出的 NFS 根文件系统的路径。

    您最终会得到类似这样的内容

    vodka:hd=/tftpboot:\
    	 :rp=/usr/src/parisc/:\
    	 :ht=ethernet:\
    	 :ha=080069088717:\
    	 :ip=140.244.9.208:\
    	 :bf=lifimage:\
    	 :sm=255.255.255.0:\
    	 :to=7200:
    							

4.3.6. 有效地从网络启动

为了总结开发人员启动内核的方式,本节将告诉您如何从网络服务器实际启动您的系统。但它越来越少被使用。大多数用户一旦他们的系统设置正确,就会更喜欢坚持使用 第 4.2 节

我们在这里。我们假设您已经完成了上面概述的所有操作,您的网络启动服务器与您的 PA-RISC 机器位于同一物理子网上,您在您的启动服务器上有一个可启动的 PA/Linux 内核 lifimage,并且您愿意尝试一下。如果一切准备就绪(包括您!),以下过程将向您介绍将您的 PA box 网络启动到 Linux 的乐趣。

  1. 启动您的 PA-RISC 系统。

  2. 观看您的 PA-RISC 设备启动。当以下消息在 PA-RISC 机器的启动过程中出现时,按住 Esc

    Searching for Potential Boot Devices.
    To terminate search, press and hold the ESCAPE key.
    							

  3. 如果需要,从菜单中选择 'a) 进入引导管理模式'。这将调出 'BOOT_ADMIN>' 提示符。

  4. 在提示符下键入以下内容:boot lan

  5. 观看您的 PA-RISC 系统神奇地变成一个 PA/Linux 系统。大功告成!

Note

当然,您应该一次只在您的网络上运行一个启动服务器,以避免冲突...


第五章. 构建和安装自定义内核

要构建 Linux 内核,您需要一个编译器和内核源代码。第一个元素不是一件容易找到的事情,因为它取决于您想要如何构建您的内核。第二个元素更容易,因为它可以在 官方 CVS 站点找到。首先,我们将讨论 GCC 编译器。然后,将解释构建的准备工作。最后一段将处理此新内核的安装。

Note

我们将只处理一个没有模块构建的内核,以简化解释。


5.1. GCC 编译器

您可以直接在您自己的 PA-RISC 设备上构建内核(自宿主原生构建)。但在旧系统上,您可能更喜欢使用另一台 - 更快的 - 非 PA-RISC 计算机来编译您的内核(交叉编译)。我们将看到这两种可能性。

Note

在发布此 howto 的 1.0 版本时,只有 gcc-3.0.X 能够构建工作内核。在更新的版本中存在一个错误,导致当网络活动发生时设备崩溃。现在应该已经修复了,所以使用最新版本的 gcc 应该没问题。如果发生上述错误,您就会知道问题出在哪里。无论如何,如果您想构建任何 2.6.12-rc3 之后的内核,您至少需要 gcc-3.3


5.1.1. 原生构建

由于 Debian 是第一个支持 PA-RISC 架构的发行版,如果您想使用超级奶牛功能,您需要对 Debian 软件包系统有一些基本了解。 我们将在此解释如何在您的 PA-RISC 机器上快速准备好 gcc 编译器。 如果您没有使用 Debian,那么,恐怕我们无能为力:您必须将下面所说的内容转换为您的发行版。 我们假设您知道如何使用

如果您正在使用自己的 PA-RISC 机器,您只需要古老的 GCC 编译器。 您可以通过执行以下命令安装构建内核所需的工具

[user@machine ~/dir]> apt-get install build-essential libncurses5-dev
				

本质上,这将安装构建内核所需的一切(甚至更多)。 这归结为 binutilsgcclibc-devmakefileutilslibncurses5-dev

完成此操作后,您可以继续进行内核设置。


5.1.2. 交叉编译构建

在这种内核构建方法中,一切都取决于您的构建机器的架构。 如果您想编译自己的工具链,有一个稍微过时的 HOWTO (O'Donell 2002)。 否则,我们假设您可以为您的构建主机找到一个交叉编译器包,或者自己创建一个。

Important

由于 HP-PA 上还没有 64 位用户空间,因此即使您在 64 位 PA-RISC 机器上构建,也必须交叉编译 64 位内核。 您可以通过运行以下命令获取 hppa64 编译器和 binutils 的非官方 deb 包

[user@machine ~/dir]> apt-get install gcc-3.3-hppa64 binutils-hppa64
					
有关详细信息,请参见 PA-RISC Linux 网站


5.2. 内核配置

如果您想利用最新的内核改进,我们建议您从官方的 PA-RISC/Linux CVS 中检索它。 请注意,在 https://linuxkernel.org.cn/ 上找到的原始内核通常与上述 CVS 内核不同步,并且此内核的快照也可用,请查看下载区域。 在下文中,我们将重点关注一个全新的 CVS 树。

获得可观性能的最佳方法是获得一个配置良好的内核。 对于 PA-RISC 平台,make oldconfig 是一种默认设置。 如果您想制作自己的内核,第一步是了解您拥有什么硬件。 获取有用信息的最佳方法是查看您的机器并找到最多的数据(型号名称、零件号、芯片组等等)。 如果您已经启动了您的机器,您可以查看 dmesg 输出。 然后,转到 官方硬件数据库HP partsurfer 网站

一旦您知道您的机器内部是什么以及您想用它做什么,只需运行 make menuconfig 或其他配置命令。


5.2.1. 配置 2.4 内核

这是 2.4 内核的架构相关菜单的简短列表。 您应该查看它们,以查看设置的值是否与您的硬件匹配。 请注意,无论如何 2.4 内核现在被认为是已弃用:您将不会获得社区支持。

Note

请记住,make oldconfig 是一个很好的起点,因为它几乎适用于任何机器。

  • 处理器类型 - 指示您的 CPU 型号

  • 常规选项 - 告诉您将在内核中启用什么(U2/Uturn、USC/GSC/HSC、Lasi、Wax、Dino、LBA/Elroy、SuperIO)

  • 并行端口支持 - 启用/禁用 Lasi/ASP 并行端口

  • SCSI 支持 - 在此处检查您的 SCSI 芯片组(Lasi、Zalon、NCR/SYM53C8XX 或其他)

  • 网络设备支持 - 用于设置您的网卡(Lasi、Tulip...)

  • 字符设备 - 定义您的 I/O 功能(Lasi、Dino、MUX 参见 第 5.2.1.3 节

  • HIL 支持 - 如果您有 HIL 控制器,则有用。 参见下文 第 5.2.1.1 节

  • 控制台驱动程序 - 直接与您的控制台模式相关(STI 控制台或 STI 帧缓冲区)

  • 声音 - 启用/禁用 Harmony 驱动程序

如您所见,与 PA-RISC 硬件特别相关的菜单并不多,但它们之间存在许多依赖关系。 现在,您必须根据您计划使用此机器做什么来配置内核。 以下是您应该经历的一些菜单的列表,以配置您可能需要的其他功能

  • 常规设置 - 负责内核处理的二进制格式。 您需要 ELF,并且可以尝试 SOM(支持 HP/UX 二进制文件。 它*可能*适用于某些静态可执行文件)。

  • 块设备 - 设置 ramdisk 和 loopback 支持。 您可能不会使用它们。

  • ATA/IDE/MFM/RLL 支持 - 您需要检查此项以启用 IDE。 参见 第 5.2.1.4 节

  • 文件系统/网络文件系统 - 在这里设置 EXT3 或 NFS 支持。

  • USB 支持 - 如果您已启用 SuperIO 并且想要 USB,请在此处查看:第 5.2.1.2 节

Note

在本 HOWTO 编写时,没有软盘驱动器支持; 更重要的是,预计永远不会支持它。

完成后,保存您的内核配置。 一切都写在.config文件中。 您应该备份它,因为 make distclean 会将其删除。 在此阶段,您可以执行 make dep vmlinux,如果一切顺利,您将在几分钟内拥有一个新的内核。

以下是有关特定硬件配置的简要信息。


5.2.1.1. 2.4 中的 HIL 支持

自从kernel-2.4.18-pa45以来,有完整的 HIL 支持,用于鼠标、平板电脑和键盘。 它基于 Linux Input Driver 模型。 请参见 PA-RISC/Linux FAQHelge Deller 在邮件列表中发布的 邮件。 以下是如何配置它

  1. 确保您有 2.4.18-pa45 或更高版本的内核源代码。

  2. 在您的内核配置中查找以下选项

    CONFIG_INPUT=y
    CONFIG_INPUT_KEYBDEV=y
    CONFIG_INPUT_MOUSEDEV=y
    CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
    CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
    CONFIG_INPUT_EVDEV=y
    
    CONFIG_INPUT_SERIO=y
    
    CONFIG_HIL=y
    CONFIG_HP_SDC=y
    CONFIG_HIL_MLC=y
    CONFIG_HP_SDC_MLC=y
    CONFIG_HIL_KBD=y
    CONFIG_HIL_PTR=y
    								

    Note

    不再有CONFIG_HIL_KBD_BASIC.

  3. 在您的目标系统上,检查以下设备是否可用

    /dev/input/mice
    /dev/input/mouseX
    /dev/input/eventX
    								
    如果它们尚未出现,请通过以下方式创建它们root通过运行
    [user@machine ~/dir]> cd /dev; MAKEDEV input
    								

  4. gpm 中使用以下选项配置 gpm/etc/gpm.conf:

    device=/dev/input/mice
    type=imps2
    								

  5. 这是一个示例/etc/X11/XF86Config-4:

    Section "InputDevice"
    		Identifier      "HIL Keyboard"
    		Driver          "keyboard"
    		Option          "CoreKeyboard"
    EndSection
    Section "InputDevice"
    		Identifier      "HIL Mouse"
    		Driver          "mouse"
    		Option          "CorePointer"
    		Option          "Device"                "/dev/input/mice"
    		Option          "Protocol"              "ImPS/2"
    		Option          "ZAxisMapping"          "4 5"
    EndSection
    Section "ServerLayout"
    		Identifier      "Default Layout"
    		Screen          "Default Screen"
    		InputDevice     "HIL Keyboard"
    		InputDevice     "HIL Mouse"
    EndSection
    								
    您也可以下载示例XF86Config-4此处:ftp://ftp.parisc-linux.org/XFree86/XF86Config-4,调整颜色深度和分辨率,并将其放入您的/etc/X11/.


5.2.1.2. 2.4 中的 USB 支持

HP-PA 上的 USB 支持仍然是实验性的,因此它仅在默认内核配置中配置为模块。 我们尝试安装具有内置 USB 支持的 B2000,无论是 32 位还是 64 位,它都工作正常,尽管存在一些键盘问题。 别担心,没有什么严重的:键盘主要部分(字母、退格键、回车键...)和数字键盘之间的按键范围已损坏。 它们的行为与预期完全不同。

Tip

您可以将数字键盘用作箭头键:当 NumLock 未激活时,它的行为类似于导航键盘。 例如 8向上箭头4向左箭头 等等。

  1. 确保您有 2.4.18 或更高版本的内核源代码。

  2. 在您的内核配置中查找以下选项

    CONFIG_SUPERIO=y
    CONFIG_HOTPLUG=y
    
    CONFIG_INPUT=y
    CONFIG_INPUT_KEYBDEV=y
    CONFIG_INPUT_MOUSEDEV=y
    CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
    CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
    CONFIG_INPUT_EVDEV=y
    
    CONFIG_USB=y
    CONFIG_USB_DEVICEFS=y
    CONFIG_USB_OHCI=y
    CONFIG_HID=y
    								

  3. 在您的目标系统上,检查以下设备是否可用

    /dev/input/mice
    /dev/input/mouseX
    /dev/input/eventX
    								
    如果它们尚未出现,请通过以下方式创建它们root通过运行
    [user@machine ~/dir]> cd /dev; MAKEDEV input
    								

  4. gpm 中使用以下选项配置 gpm/etc/gpm.conf:

    device=/dev/input/mice
    type=imps2
    								

  5. XF86-Config-4 类似于HIL,因为它也使用 Linux Input Driver


5.2.1.3. 2.4 中的 MUX 控制台支持

MUX 控制台已由 Richard Hirst 在 2.4.18-pa37 内核中进行了改进,尽管它仍然是一个非常实验性的功能。 预计将提供足够的MUX 控制台支持E-K 类机器。 非常感谢您的反馈。

现在按照以下步骤使其工作

  1. 确保您有 2.4.18-pa37 或更高版本的内核源代码。

  2. 在您的内核配置中查找以下选项

    CONFIG_SERIAL_CONSOLE=y
    
    CONFIG_SERIAL_GSC=y
    
    CONFIG_SERIAL_NONSTANDARD=y
    CONFIG_SERIAL_MUX=y
    								

  3. 在您的目标系统上,检查以下设备是否可用

    /dev/ttyB0
    								
    如果它们尚未出现,请通过以下方式创建它们root通过运行
    [user@machine ~/dir]> cd /dev; MAKEDEV ttyB0
    								

    Note

    它需要最新的MAKEDEV以这种方式创建的包。

  4. 现在您可以启动您的系统,注意 PALO 使用console=ttyB0.


5.2.1.4. 2.4 中的 IDE 设备支持

关于 IDE 支持没有什么特别的。 您必须检查内核是否支持您的机器中使用的 IDE 芯片组。 在 PA-RISC 硬件上找到的常见芯片组是NS87415。 您可以在 B2000、J5000 和 C3000 上找到它。 您将需要 IDE 支持才能使用某些 CD-ROM 设备。

这是一个示例,说明如何使 IDE 与此芯片组一起工作

  1. 确保您有最新的内核源代码。

  2. 在您的内核配置中查找以下选项

    CONFIG_IOMMU_CCIO=y
    CONFIG_PCI=y
    CONFIG_PCI_LBA=y
    CONFIG_IOSAPIC=y
    CONFIG_IOMMU_SBA=y
    CONFIG_SUPERIO=y
    
    CONFIG_IDE=y
    
    CONFIG_BLK_DEV_IDE=y
    
    CONFIG_BLK_DEV_IDEPCI=y
    CONFIG_BLK_DEV_IDEDMA=y
    CONFIG_BLK_DEV_ADMA=y
    CONFIG_BLK_DEV_IDEDMA=y
    CONFIG_BLK_DEV_NS87415=y
    								

  3. 在您的目标系统上,检查以下设备是否可用

    /dev/hd*
    								
    如果它们尚未出现,请通过以下方式创建它们root通过运行
    [user@machine ~/dir]> cd /dev; MAKEDEV hda hdb hdc hdd hde
    								

Note

当然,我们没有提及太多与架构无关的选项。 此外,以上设置可能因您的硬件而异。 这只是一个例子。


5.2.2. 配置 2.6 内核

这是 2.6 内核的架构相关菜单的简短列表。 您应该查看它们,以查看设置的值是否与您的硬件匹配

  • 处理器类型和功能 - 指示您的 CPU 型号和一些特定功能,例如 SMP 或 Discontigmem 支持

  • 总线选项 - 告诉您将在内核中启用哪些总线支持(U2/Uturn、USC/GSC/HSC、Lasi、Wax、Dino、LBA/Elroy、SuperIO)

  • PA-RISC 特定驱动程序 - 启用/禁用一些 PA-RISC 特定驱动程序,例如 LED 支持、GSP 和 Stable Storage 支持。

正如你所见,与 PA-RISC 硬件密切相关的菜单并不多,现在大部分都具有通用性。尽管如此,你必须根据你计划如何使用这台机器以及你想要支持哪些功能来相应地配置内核。许多其他驱动程序可以在它们各自的子菜单中找到,例如 SCSI,其中有 Zalon、Lasi SCSI 和 SYM2 驱动程序;或者图形支持菜单中的帧缓冲设备 (STI);或者声音菜单中的声卡驱动程序(Harmony 和 AD1889)。通常会提供帮助信息,请随时查阅。

Note

对于 2.4 版本所说的内容,在某种程度上仍然适用于 2.6 版本。


5.3. 内核安装

如果你已经在要安装的机器上进行了本地构建,你可以按照以下步骤设置新内核:在内核源代码树中linux/, 作为root执行

[user@machine ~/dir]> cp vmlinux /boot/vmlinux-[kernelversion]
[user@machine ~/dir]> cp System.map /boot/System.map-[kernelversion]
[user@machine ~/dir]> cp .config /boot/config-[kernelversion]
				
虽然不是强制性的,但我们建议你替换[kernelversion]为你构建的内核版本,例如vmlinux-2.4.18-pa44。这将帮助你处理同一机器上的多个内核版本。同样适用于.config。不需要有一个可以工作的内核,但是当配置新的内核时,它可能会很有帮助。现在,执行 cd /boot,确保vmlinux是一个指向另一个文件的符号链接,如下例所示
[user@machine ~/dir]> ls -l vmlinux
lrwxrwxrwx  1 root   root   35 Jun 23 01:38 vmlinux -> vmlinux-2.4.18-64-SMP
				
请务必记住你机器上实际运行的内核的名称,以防新内核无法正常工作。如果需要,你现在可以要求 PALO 从它启动(有关更多信息,请参见第 3 章)。现在执行以下操作
[user@machine ~/dir]> rm -f vmlinux
[user@machine ~/dir]> ln -s vmlinux-[kernelversion] vmlinux
[user@machine ~/dir]> sync
				
如果你想从网络启动,你可以忘记所有这些,因为你需要按照第 3.3 节中的说明设置 PALO,并运行 make palo 以创建可引导的 lifimage

如果你已经进行了交叉编译构建,或者在不是你想要安装的 PA 机器上构建了内核,你必须找到一种方法来放置vmlinux, System.map并最终放置.config/boot/如前所述。 你可以使用网络(如 ftp)或 CD 来完成,甚至可以直接复制到硬盘驱动器。


附录 A. Windows™ 2003 启动服务器指南

本附录由 Jeremy Drake 大力贡献。它描述了设置 Windows™ 2003 Server 以服务于 PA/Linux 机器的启动请求的过程。


A.1. 设置 DHCP 服务

对于基于 UNIX/Linux 的方法(在第 4.3 节中讨论),在设置所有内容之前,你需要收集一些信息和数据。首先,你需要 PA-RISC 机器的 MAC 地址。请查看 rboot 准备工作以了解详细信息。你将需要一个 lifimage 文件。请阅读 第 4.3.1 节

然后,你必须在 Windows™ 机器上启用 DHCP 服务。你可以通过进入控制面板,打开添加/删除程序,选择 Windows 组件,最后选择网络服务来完成此操作。在那里,启用动态主机配置协议 (DHCP)

你现在需要配置 DHCP 服务。通过进入控制面板,打开管理工具并选择 DHCP 来启动 DHCP 管理工具。

  • 展开服务器树。

  • 右键单击 保留->新建保留...

  • 保留名称中,输入工作站的主机名。输入一个未使用的 IP 地址。输入 PA-RISC 机器的 MAC 地址(没有分隔符,只有十六进制数字)。选择 Both 以确定它应该是 bootp 还是 dhcp。单击确定以关闭此窗口。

  • 保留下方的列表底部查找你新创建的保留,然后单击它。

  • 右键单击配置选项...

  • 它应该已继承服务器的默认选项,因此我们不会介绍设置路由器、dns、wins 和租约长度。

  • 向下滚动选项列表到 066:启动服务器主机名。选中选项 066 旁边的框。输入你的 tftp 服务器的 IP 地址,因为 IPL 无法解析主机名。

  • 选中选项 067:启动文件名并输入 lifimage 的名称。通常,这里 lifimage 是一个不错的选择。

  • 单击确定,你的 dhcp 服务器已准备就绪!


A.2. 获取并设置 TFTP 服务器

为了使网络引导过程正常运行,你需要 TFTP 服务,该服务在启动时提供基本的文件系统。从 http://tftpd32.jounin.net/ 获取 Tftpd。你必须下载 zip 格式的最新版本。解压缩它并将其存储在你喜欢的位置。然后,你必须设置这个怪物。

  • 运行 tftpd32。

  • 单击浏览按钮。

  • 浏览到你放置 lifimage 的位置,突出显示它,然后单击确定

  • 确保目录下的 IP 地址是你提供给 PA-RISC 机器的地址。

  • 让 tftpd32 打开。 tftp 服务器仅在显示 GUI 时运行。

如果你想将其作为 NT 服务运行,则必须下载一个 Microsoft™ 程序。请参阅 \ Tftpd32 常见问题解答


A.3. 尝试网络引导

现在,你已完全设置好,可以尝试通过网络引导你的 PA-RISC 机器。你可以按照第 4.3.6 节中的说明进行操作。

如果你有任何问题,请首先查看这些要点,然后询问 PA/Linux 邮件列表

  • DHCP 服务器上的设置(验证 PA-RISC MAC 地址是否正确)。

  • 你的 dhcp 服务器与 PA-RISC 机器位于同一物理网段。

  • 2 台机器的网络连接状态。

  • 尝试在通过 lan 引导 PA-RISC 机器时进行 tcpdump。


附录 B. 较旧的 PALO 转储

B.1. 使用 PALO 0.97 的 A500 会话转储

Main Menu: Enter command or menu > bo scsi.5.0 ipl
Interact with IPL (Y, N, or Cancel)?> y


Booting...
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 0.97 root@c3k Tue Nov 27 14:51:48 MST 2001
Information: Boot device can't seek past 2Gb (ignore next error).
byteio_read: seekread() returned -1 expected 2048

Partition Start(MB) End(MB) Id Type
1               1      15   f0 Palo
2              16     503   82 swap
3             504    2887   83 ext2

PALO(F0) partition contains:
	0/vmlinux64 3990942 bytes @ 0x44000

Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently  used by firmware (serial).
Current command line:
3/boot/vmlinux root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? 0
3/boot/vmlinux-2.4.17-pa3 initrd=0/root.bin
Current command line:
3/boot/vmlinux-2.4.17-pa3 initrd=root.bin root=/dev/sda3 HOME=/
										 console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: initrd=0/root.bin
 2: root=/dev/sda3
 3: HOME=/
 4: console=ttyS0
 5: TERM=vt102


Edit which field?
(or 'b' to boot with this command line)? 1

Current command line:
3/boot/vmlinux-2.4.17-pa3  root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? b
				

PALO 最初设置为引导内核文件vmlinux位于 SCSI 设备 ID 5 LUN 0 的第三个分区上。(我们知道这一点,因为我们已要求 BOOT_ADMIN 从此设备启动)。但是这次我们想要另一个内核。我们按下了 Enter 键(以验证默认选择 ')0')并修改了文本以满足我们的需求,这里是vmlinux-2.4.17-pa3。 我们还添加了一个initrd=0/root.bin参数到命令行。 我们通过按下 Enter 键验证了我们的更改。 最后,我们决定不需要这个额外的参数,所以我们选择了它并擦除了它。 最后,它再次询问我们要编辑哪个字段,我们只是键入了 'b' 而不是任何数字,然后按 Enter 键来启动我们的新内核。


附录 C. HOWTO 贡献者

以下人员以某种方式贡献或审查了本 HOWTO。

对于 Deb 的版本

对于 Thomas 的版本

对于 Thibaut 的版本

词汇表

这是 PA-RISC 特定术语的简要词汇表。 你可以在 http://www.parisc-linux.org/glossary/ 上找到更详细的词汇表。

启动控制台处理程序 (BCH)

这是在大多数 PA-RISC 机器上启动期间可用的早期启动控制台,由 处理器相关代码 (PDC) 提供。

另请参阅:BOOT_ADMIN

BOOT_ADMIN

这是存储在 PA 机器的启动 ROM 中的命令行实用程序,用于在早期启动序列期间配置计算机。 它是 PA-RISC 机器固件的一部分。

另请参阅:启动控制台处理程序 (BCH)

守护服务处理器 (GSP)

GSP 是某些 PA-RISC 系统上存在的控制台子系统,它提供多种功能,例如远程控制台、UPS 管理、系统低级控制。

高优先级机器检查 (HPMC)

致命系统错误。 处理器相关代码 (PDC) 将机器状态保存在 处理器内部存储器 (PIM) 中。

惠普精确架构 (HP-PA)

'HP-PA'(有时是 'hppa')是引用 HP PA-RISC 架构的简短方式。 它的真正含义是:'惠普精确架构'。 例如,DebianOpenBSD 使用它来指出他们的端口。

初始程序加载器 (IPL)

它是 HP 标准化系统引导程序,负责在 PA-RISC 系统上加载操作系统的内核。 它可以从 BOOT_ADMIN 启动。

另请参阅:BOOT_ADMIN

初始系统加载器 (ISL)

ISL 是将你带入 BOOT_ADMIN 的可执行文件。

另请参阅:初始程序加载器 (IPL)

逻辑交换格式 (LIF)

这是一种HP大容量存储格式,用于在HP计算机系统之间交换文件。 它基本上包含一个头部(标识其为LIF卷)和一个固定大小的目录,其中包含文件。 目录的大小在创建卷时是固定的,这解释了关于 PALO 工作方式的很多东西!

lifimage

它是LIF image的名称缩写,实际上是一个格式符合LIF标准的文件。 它可以被看作是与ISO文件等效的文件,具有LIF格式而不是ISO9660.

另请参阅:逻辑互换格式 (LIF)

低优先级机器检查 (LPMC)

通常是一个可恢复的系统错误。

另请参阅:高优先级机器检查 (HPMC)

管理处理器 (MP)

MPGSP 的一个较新的演进。

另请参阅:守护服务处理器 (GSP)

PA-RISC

PA 代表精确架构。 它是两代 HP 处理器的名称。 它们被分类为 PA-RISC 1.X 和 PA-RISC 2.0。 但是,基于 PA-RISC 处理器的系统通常被称为 HP-PA 盒。

另请参阅:惠普精确架构 (HP-PA)

PA 加载器 (PALO)

PALOPA/Linux 内核加载器。 它由 Paul Bame 设计,作为 PA-RISC 架构的 LILO 等价物。

处理器相关代码 (PDC)

它是处理所有处理器相关功能的固件,包括硬件初始化和自检程序。 一旦它完成了这些,它会将控制权传递给 ISL。

另请参阅:初始系统加载器 (ISL)

处理器内部存储器 (PIM)

机器状态在 高优先级机器检查 (HPMC)低优先级机器检查 (LPMC)控制权转移 (TOC) 之后保存到这里。 参见PDC_PIMPA-RISC I/O ACD 的“PDC 过程”章节(可从 http://www.parisc-linux.org/documentation/ 获得)。

另请参阅:初始系统加载器 (ISL)

netinst

这不是一个 PA-RISC 特有的术语,但它需要解释。 网络安装,也称为 netinst,是包含启动计算机并从网络安装它所需的一切的小型 ISO。 它们基于 Debian 发行版

SuckyIO

(应特殊要求添加)National Semiconductor PC87560UBD,又名 SuperIO。 提供 IDE、USB 1.1、软盘控制器、并行端口、2 个串行端口、UIR(红外)等。 但由于 National 否认该芯片的存在,并且 HP 是这个有缺陷的垃圾产品的唯一客户,因此名称 SuckyIO 已经流传开来。

SuperIO

SuckyIO 的官方术语。

另请参阅:SuckyIO

标准文本接口 (STI)

它定义了一种标准化方式来访问 HP-PA 上的图形子系统。

标准文本接口控制台层 (STIcon)

它是可以在任何支持 STI 的设备上运行的基本文本模式控制台。

另请参阅:标准文本接口 (STI)

标准文本接口帧缓冲层 (STIfb)

它是 STI 的超集,提供标准 API 来访问 HP-PA 上的帧缓冲设备。

另请参阅:标准文本接口 (STI)

控制权转移 (TOC)

这个缩写通常可以在一些 PA-RISC 盒子上找到,就在一个不常用的微小开关附近(希望如此)。 在 HP/UX 上,它会生成一个崩溃转储并重置盒子。 也可以从 守护服务处理器 (GSP) 请求它。 在 Linux 上,它将保存寄存器并重置,保存的寄存器可以在 处理器相关代码 (PDC) 中访问。


参考书目

这些文档可能有助于理解本文,或者打开新的视野

[Raymond 2000] E. S. Raymond, 2000, Installation-HOWTO .

如何获取和安装 Linux 软件。 这是新的 Linux 用户应该阅读的第一份文档,以便入门。

[Maor 1999] O. Maor, 1999, NFS-Root-Client Mini-HOWTO .

如何在服务器上创建客户端根目录,该服务器正在使用 NFS 根挂载的客户端。

[Kostyrka 1997] A. Kostyrka, 1997, NFS-Root Mini-HOWTO .

如何设置一个“无盘”Linux 工作站,该工作站通过 NFS 挂载其根文件系统。

[Harris et al. 1997] T. Harris 和 K. Koehntopp, 1997, Linux Partition HOWTO .

教你如何为你的 Linux 系统规划和布局磁盘空间。

[Dev 1998] A. Dev, 1998, CVS-RCS-HOWTO .

本文档是“实用指南”,可以非常快速地设置 CVS/RCS 源代码控制系统。

[Noronha Silva 2001] G. Noronha Silva, 2001, APT HOWTO .

将帮助你了解 Debian 包管理实用程序 APT 的工作方式。

[O'Donell 2002] C. O'Donell, 2002, The PARISC-Linux Cross Compiler HOWTO .

这是一个关于构建针对 PA-RISC 系统的交叉编译器工具链的半详细指南。

[Cornec 1997] B. Cornec, 1997, HP HOWTO .

描述了在 Linux 和一些免费软件中使用惠普 (HP) 目录中可用的产品。

[Perens et al. 1996] B. Perens, S. Rudolph, I. Grobman, J. Treacy, 和 A. Di Carlo, 1996, Debian GNU/Linux 3.0 安装文档索引 .

将帮助你安装和配置你的 Debian GNU/Linux 系统。

[Debian Installer Team 2005] Debian Installer Team, 2004, 2005, Debian GNU/Linux 3.1 安装文档 .

将帮助你安装和配置你的 Debian Sarge GNU/Linux 系统。

[Vermeulen et al. 2006] S. Vermeulen, R. Marples, D. Robbins, C. Houser, 和 J. Alexandratos, 2006, Gentoo HPPA Handbook .

Gentoo 用户必读。

[Brouwer 1993] A. Brouwer, 1993, The Linux keyboard and console HOWTO .

本说明包含有关 Linux 键盘和控制台以及使用非 ASCII 字符的一些信息。

[HP Booting]  HP 文档:启动系统 .

这是一份详细说明启动程序的 HP 文档。

笔记

[1]

在 hppa 上发布 Debian 的第一个版本之前,曾经有 Woody 快照的非官方版本,标题为“PA/Linux 版本”,编号为 0.x。 在发布 Woody 后,PA/Linux 端口立即切换到正常的 Debian 编号方案。 换句话说,Debian 3.0 与 PA/Linux 0.9.3 连续。

[2]

对于知识爱好者:PALO 实际上可以访问和读取 ext2/ext3 文件系统,因此可以遵循符号链接,而 LILO 引导加载程序只会知道访问内核的物理磁盘地址。 请参阅 这个 获取更多详细信息。

[3]

示例:/boot 从一个单独的分区挂载,根据 fdisk,该分区编号为 4。 从 Linux 的角度来看,文件的绝对路径是/boot/vmlinux,但从分区的角度来看,它是/vmlinux。 因此,命令行将以“4/vmlinux”开头。 我们希望这足够清楚!

[4]

format-as开关有点误导性。 与init-partitioned一起使用时,它是为了说明要格式化新分区的文件系统,但是与update-partitioned一起使用时,它是为了告诉 PALO 已经格式化的分区上使用的文件系统。

[5]

要保存你的更改,你必须在你的系统启动并运行后运行 /sbin/palo,它会将配置文件(/etc/palo.conf)中包含的所有参数写入磁盘,如果需要,你将需要正确修改它。

[6]

对于那些想知道最后一个 0 意味着什么的人来说,它是设备 LUN。 由于大多数 SCSI 设备只有一个 LUN(尤其是磁盘),因此你可以安全地使用 0,如本例所示。