本章介绍在 JavaStation 上启用 Linux 的基本硬件和软件需求。
对于硬件,您将需要一台或多台 JavaStation 客户端以及一台服务器,用于向其提供 Linux 镜像,所有设备都在同一网段上联网。
您使用的此服务器可以是任何支持 DHCP、TFTP 和 RARP 的服务器。 这些是执行 JavaStations 网络启动所需的基本协议。 您可能还需要 NFS 服务,但这在本文档描述的一种配置中不是必需的。 此外,在 Krups 和 Espresso 型号上,您可以无需 RARP。
本文档将介绍如何设置从运行 SparcLinux 的 Sun 服务器向 JavaStation 提供网络 Linux OS 镜像。 虽然您不需要 Sun 服务器来提供您的 Linux 镜像,但如果您希望编译自己的内核,或为您的 JavaStations 原型化新的文件系统,则建议使用 Sun SparcLinux 服务器。 否则,您将需要使用其他人预先构建并公开提供的预打包内核和文件系统。(您也可以使用交叉编译器来生成内核镜像,但在 Sun SparcLinux 服务器上原型化文件系统是最好的。)
已成功使用的启动服务器报告包括运行 Sparclinux 的 Sun 服务器、运行 Solaris 的 Sun 服务器和运行 MS Windows 的 PC。 仅当您构建新的内核或文件系统时,运行 Linux 的 Sun 服务器才变得有价值。
您的网络可以是简单的 10 Mbps 以太网 LAN,但是当您开始一次使用超过 50 台 JavaStations 时,交换式 100 Mbps 网络对于您的服务器处理多个并发启动请求来说变得理想。
本 HOWTO 包括指向示例内核、文件系统和完整开箱即用解决方案的指针,供您使用,从而消除您对 Linux/SPARC 服务器的需求,但您仍然需要某种类型的服务器来在 JavaStations 启动时向其提供镜像。
正如上一节讨论的那样,JavaStation 启动周期将使用 DHCP 和 TFTP,可能还会使用 NFS 和 RARP。 要了解原因,请阅读下一节中的 JavaStation 启动顺序。
JavaStations 遵循典型的无盘工作站启动顺序。
通电后,JavaStation 发送广播请求以获取其 IP。 它通过 RARP 或 DHCP 获取其 IP 信息。 通过 DHCP 响应,它获取有关其所在网络的信息,以及从何处通过 TFTP 下载其启动镜像的信息。
从一台无盘机器到下一台无盘机器,无盘启动存在细微差异。 例如,有时可以用 BOOTP 代替 DHCP,并且可以取消 RARP 而支持两者中的任何一个。 但总的来说,客户端和服务器之间的顺序通常是相同的
客户端:“我是谁?”
服务器:“你是 xxx”
客户端:“我应该去哪里获取我的启动镜像?”
服务器:“你去这里。”
客户端:“请从这里给我我的镜像……拜托?”
服务器:“这是你的镜像。”
内核加载完成后,您的无盘客户端通常通过 NFS 从网络挂载其根文件系统。 或者,它可以从 RAM 磁盘加载并挂载它。
最初的 JavaOS 和 Hotjava Views 环境在 JavaStation 上运行时,需要设置和维护上述核心服务,以及 NIS、HTTP、DNS、POP 和 NTP 服务器。 如果设置 JavaStation 启动服务器看起来工作量很大,请想象一下将这些额外的服务也添加到其中。
JavaStations 配备了两种不同的 PROM。 版本 2.30 随最早的 Mr. Coffee 型号一起发布,并通过更高版本的 Sun Netra J 软件环境更新为 3.11。Krups 和 Espresso 默认配备了 3.x 版本的 PROM。
事实证明,后来的 3.x 系列 PROM 不利于启动 Linux。 幸运的是,现在存在一个名为 PROLL 的完整 PROM 替代品来克服此限制。
PROLL 成为您的 JavaStation 通过 TFTP 获取的第一个镜像。 然后,它将加载您的真实内核镜像并启动进入 Linux 。
无论您拥有哪个 PROM 版本,都获取 PROLL。 这可以使新的安装故障排除更容易。
当前的 PROLL 主版本可从以下网址获取: http://people.redhat.com/zaitcev/linux/。
在撰写本文时,当前版本为 “14”。
PROLL 也可以在 “VGER ”上找到镜像,也可以在本 HOWTO 的发行站点上找到: http://dubinski-family.org/~jshowto/Files/proll/proll_14.tar.bz2(HOWTO 网站镜像 - 版本 14)
在开始之前,您必须决定要为您的无盘 JavaStation 使用的根文件系统类型。 有两种可能性。
在此设置中,在从网络检索启动内核后,运行的 JavaStation 为其根文件系统建立 NFS 连接。 根目录 “/” 从网络挂载,持续当前会话。
对于初学者来说,“NFS-Root” 解决方案是推荐的方式,因为它在出现问题时更容易排除故障。 它还可以更轻松地原型化正确的文件系统,因为您在运行系统上所做的任何更改都可以为下一个启动周期传播(只要您处于读写模式,当然)。
这种类型系统的缺点是网络活动增加,因为运行的 JavaStations 查找和执行文件,以及大型环境中的文件组织。
在此设置中,根文件系统直接加载到 RAM 中并从那里访问。
此设置的优点是不必担心 NFS 流量,从而产生简洁的解决方案。
此配置的缺点是您不能再对文件系统进行快速原型设计,因为您对运行系统所做的任何更改都会丢失。 如果您没有可用的 “NFS-Root” 设置,您可以通过进行小的调整和执行重启来测试来开发嵌入式文件系统。 其他缺点包括需要将完整的文件系统放入可用 RAM 中; 由于 PROLL 的限制,此要求在 JavaStations 上远低于预期。 尽管如此,嵌入式根目录仍然是获得最简洁环境的方式。
首次用户将希望设置 “NFS-Root” 配置。 当您使事情稳定下来后,请移动到 “嵌入式-Root” 以利用其优势。
当您开始考虑在 JavaStation 上安装 Linux 时,要参考的一个网站是内核黑客 Pete Zaitcev 的网站: http://people.redhat.com/zaitcev/linux/,在本文档中通篇被称为 “ZLS” 站点(“Zaitcev's Linux Site”的缩写)。 在这里,您将找到最新版本的 PROLL 以及有关处理 JavaStations 的许多底层细节。 ZLS 上的许多项目已合并到本文档中,但并非全部。
2001 年 10 月更新:在深入设置 JavaStation 和 Linux 之前,您最好查看 Pete 站点、本文档以及指向的参考文献中的所有信息。 人们在设置系统时遇到的几乎所有问题都已在提供的材料中涵盖。