本章节旨在为在 JavaStations 上启用 Linux 时经常遇到和偶尔遇到的问题提供解决方案。
在具有较旧 OpenBoot 2.3 版本且未设置为使用 PROLL 的系统上,当尝试启动不是 AOUT 格式的内核镜像时,您将收到此消息。请务必运行elftoaout在您的内核镜像上,如“内核构建”章节中所述。
在设置为使用 PROLL 的系统上,当尝试启动不是 AOUT 格式的内核镜像时,您将看到此消息。请务必运行elftoaout在您的内核镜像上,如“内核构建”章节中所述。
这很可能意味着您安装了闪存 SIMM,并且闪存 SIMM 上加载了 JavaOS。移除 SIMM,问题应该会消失。
使用 “嵌入式根” 启动镜像选项时,存在 8 MB 的已知限制。
造成这种情况的原因是当前版本的 PROLL 软件,它仅映射 8 MB 的低内存。任何更大的内存都需要为其添加内存库支持。
如果需要,此限制可以由某人修复,因为 PROLL 的源代码已根据通用公共许可证 (GPL) 的条款发布。
因此,实际上,嵌入式镜像大小限制实际上是 8 MB,而不是 10 MB。如果 10 MB 以某种方式对您有效,那纯粹是“运气”!
这有几种可能性。其中包括
您为 tty0 设置了不正确的设备号。
加载的 “键盘映射表” 不正确。如果您使用键盘映射表程序,请确保使用 “sun” 而不是 “PC”。查找键盘映射表配置文件(如果存在)。
如果您执行到 Solaris 服务器的 X 会话,并且发现您的会话不再打开新窗口,则很可能是 Solaris 主机上的字体服务器已崩溃。这是 Solaris 2.6 和 2.7 中的一个已知错误,当您运行大约 2 打 X 终端 会话时会出现此问题。
解决方法是将字体服务器移动到不同的操作系统,并将您的 JavaStations 指向那里,或者将您的 Solaris 升级到 2.7 11/99 维护版本或 Solaris 8,这两者(显然)都修复了此问题。
恭喜您!您可能在 Solaris 7 服务器上安装了补丁编号 107180-12 到 107180-19 之一。您需要升级到 107180-20 或更高版本以修复此问题。
我(您的 HOWTO 指南作者)在 1999 年 11 月向 Sun 报告了此问题,当时我被告知没有计划进行修复,因为我使用的是 “不支持的配置。”。别介意客户端是 Sun 自己制造的硬件。也无需在意间接 XDMCP 查询本身就是一个标准,但被 Sun 破坏了。在 2000 年 1 月下旬的一次回访电话中,我得知我之前的通话记录不存在,但修复程序现在正在进行中。修复程序最终在 2000 年 4 月发布,距离首次报告问题过去了五个月。考虑到在有缺陷的 XDMCP 期间对该补丁的修订处理了修复系统安全问题,我们被迫运行较旧的不安全软件五个月,同时等待修复一个本应立即修补的问题。
故事的寓意:针对未处于生产模式的升级服务器测试您的 JavaStation 配置。
如果您遇到与这些有缺陷的 Solaris 补丁无关的 XDMCP 问题,则可能是新问题,请报告它。
这是在本文档首次发布后由用户报告的。
在 SUSE 6.3 中,使用来自 netkit rpm 的 'a' 包的 tftpd,您必须确保您的 /etc/inetd.conf 中的 tftpd 行具有 -s 标志。否则,您需要指定完整路径。
此外,没有必要以 root 身份运行 tftpd,因此 SUSE 6.3 上 tftpd 的建议用户名和组是 'nobody' 和 'nogroup'
尚不清楚较新版本的 SUSE 是否需要这些更改。
对于 Krups 或 Espresso 型号和最新的 PROLL 软件,不需要 RARP。RARP 对于 Mr. Coffee 是必需的。
“服务器配置”章节解释了如何在 2.2.x 系统上设置内核级 RARP。
在内核版本为 2.3.x/2.4.x 的服务器上,内核级 RARP 支持已被移除。ZLS 持有来自 SuSE 的 Andi Klein 的 ANK 用户空间 RARP 版本,该版本适用于 Linux/SPARC。可从以下网址获取: http://people.redhat.com/zaitcev/linux/rarpd-ap1.tar.bz2。那时要使用的命令是rarpd-ank -e eth0。“-e” 使其忽略 /tftpboot 检查,如果您在防火墙后面,则需要 “eth0”。
目前不支持此功能,但读卡器遵循 ISO 标准 (ISO 7816-3)。在 Espresso 上,如果您查看 PROLL,则在 “eeprom.c” 中有 GPIO 智能卡数据/时钟的定义。因此,从技术上讲,程序员应该能够使智能卡插槽运行起来。
Dover 和 Espresso 上的智能卡读卡器是否等效尚不清楚。
是的,这是可能的。早期的 ISC 守护进程在处理 JavaStations 的 1514 字节请求时存在问题,而 Solaris 服务器能够毫无问题地处理它们。此外,JavaOS 的前用户可能已经激活了他们的 Solaris DHCP 服务器,并希望将所有内容保留在一台机器上。
以下是如何配置它
首先,填写您的 /var/dhcp/“networks” 文件,用以太网到 IP 信息和适当的最短租约时间填充它。
# This example uses "infinite" leastime # 0108002081C2AE 03 192.168.128.1 192.168.128.100 -1 java01 # JavaStation 010800208E4CF6 03 192.168.128.2 192.168.128.100 -1 java02 # JavaStation |
接下来,填写您的 /var/dhcp/dhcptab 文件,条目类似于
## # First, some network info # Locale m :UTCoffst=21600: www m :Include=Locale:Timeserv=192.168.128.100:DNSdmain=my.own.net:DNSserv=192.168.128.100: 192.168.128.0 m :Broadcst=192.168.128.255:Subnet=255.255.255.0:MTU=1500:BootSrvA=192.168.128.100:Router=192.168.128.101:NISdmain=my.own.net:NISservs=192.168.128.100: # # note: BootServA can point to a different TFTP server to get the kernel image # off of. # # ## # Now we define the JavaStation TFTPboot parameters # SUNW.Linux m :Include=www:JOSchksm=0x155dbf97:Rootpath=/tftpboot:BootFile=proll.mrcoffee:BootSrvA=192.168.128.100:TFTPsrvN=lnxserv: SUNW.Linux.Krups m :Include=www:Rootpath=/tftpboot:BootFile=proll.krups:BootSrvA=192.168.128.100:TFTPsrvN=lnxserv: # # # note: different classes are defined for the different PROLL images. # ## # Lastly, we list our hosts and which boot class each one gets. java01 m :LeaseTim=-1:Include=SUNW.Linux: java02 m :LeaseTim=-1:Include=SUNW.Linux.Krups: # # # ### |
PROLL 出厂时禁用了 DHCP 选项,但可以更改。然后您可以执行类似 “/tftpboot/0A0A0000.ARGS” 的操作来获取这些参数。
如果您从闪存启动,PROLL 会获取 SILO 选项(其中 SILO 是 > 版本 0.9.6,PROLL 是 >= 版本 11)
这是一个非常常见的问题。
在 JavaStation 上启用 X 是可能的。
首先,请确保您已启用内核配置中适当的帧缓冲设备,如“内核构建”章节中所述。
接下来,您将需要使用通用的 Sun 帧缓冲 X 服务器 和 “XF86Config” 文件。您可以自己构建它,或者您可以尝试某人的预构建二进制文件,例如“文件系统构建”章节中指向的示例。
据报告,与 XFree 4 一致的最新版本的帧缓冲服务器无法工作。请使用基于 XFree 3.3 的旧版本,或修复新版本并成为数千人的英雄。
有两个邮件列表专门用于在基于 SPARC 处理器 的机器(如 JavaStations)上运行 Linux 。
第一个邮件列表是 VGER 上的 sparclinux 列表,地址为<sparclinux@vger.kernel.org>。您应该首先订阅它,方法是发送消息至<majordomo@vger.kernel.org>,主题和正文行为 “subscribe sparclinux <您的电子邮件地址>”。您可以省略您的电子邮件地址,但如果您在您的站点有多个有效地址,则最好将其添加进去。
VGER sparclinux 邮件列表的存档保存在: http://www.progressive-comp.com/Lists/?l=linux-sparc&r=1&w=2"
第二个邮件列表是 Debian 项目的 debian-sparc 列表,地址为<debian-sparc@lists.debian.org>。您应该首先订阅它,方法是发送消息至<debian-sparc-request@lists.debian.org>,主题和正文行为 “subscribe <您的电子邮件地址>”。您可以省略您的电子邮件地址,但如果您在您的站点有多个有效地址,则最好将其添加进去。
由于许多 SPARC 内核黑客运行 Debian,因此订阅这两个列表都很有帮助。
请勿向任何一个列表报告有关本文档的问题,而是将它们发送至<rsd@dubinski-family.org>。此外,请使用列表存档。JavaStations 在 Linux 上已获得支持一段时间了,您未在本文档中找到答案的任何问题很可能在存档中都有答案。
可以从闪存启动 JavaStation-NC,但这目前需要太多的神秘知识才能推荐。即使您确实走了这条路,一个问题是闪存只能以只读方式挂载。这对于许多事情来说都是一个问题,例如 X,它需要写入套接字文件。将需要混合 ramdisk/闪存解决方案。
随着 JavaStations 出色的嵌入式根解决方案的出现,问题出现了,是否可以为标准的 x86 硬件做类似的事情。虽然有一些 x86 网卡带有启动 ROM,但您还需要 piggyback 程序来将所有内容放在一起。根据 Eric Brower 的说法,这目前是不可能的,因为 piggyback 程序查找特定于 SPARC 平台的标头。(2000 年 4 月 28 日)
Robert Thornburrow<robert@tsac.fsnet.co.uk>发送了一个 piggyback 版本,该版本可在 Linux/x86 和 Solaris 等非 SPARCLinux 架构上运行。这自动化了创建嵌入式根镜像的任务。您可以从以下网址获取他更新的 piggyback 包: http://dubinski-family.org/~jshowto/Files/tools/piggyback_nonsparc.tar.gz
您是否碰巧使用了 EDO 内存?Mr. Coffee 仅使用快速页面内存,而不是 EDO。
JavaStation 支持现在也适用于 NetBSD 操作系统以及 Linux。
截至今日(2001 年 10 月 31 日),当前稳定 Linux 内核版本为 2.4.13。稳定 2.4 系列中的内核应该与 JavaStations 一起工作,但它们可能对您不起作用的原因有几个。有关详细信息,请查看“内核构建”章节中关于受支持内核的条目。
从技术上讲,应该可以在非 Sun 工作站(例如 PC)上编译内核。目前还没有任何人这样做过的报告,但如果您想这样做,首先要查看的地方是 GCC 交叉编译 HOWTO。
当然,如果您的文件系统镜像支持,您也可以在工作的 JavaStation 上编译新内核。
当您向 JavaStation 发送中断信号时,会发生一件奇怪的事情:它会重置,而不是像其他 Sun 设备一样中断到 openboot prom 提示符。这可以在 Krups 上通过设置跳线 J1300,引脚 7-8 来更改。这样做可以通过 PS/2 键盘上的 Ctrl-Alt-Break 或通过串行终端的中断来获得 OBP ok 提示符。
您也可以在 Dover 设备上获得 ok 提示符,但这需要硬件修复。要在此设备上执行此操作,您必须在 R362 位置(FDD 连接器附近)焊接一个 220K 欧姆电阻。
虽然不太可能,但您的 javastation 可能设置为错误的输入设备模式。要纠正此问题,您需要启用 openboot prom 提示符(如本 HOWTO 指南的其他地方所述),然后相应地设置 ‘input-device’ 指令。或者,正如一位贡献者在发现 OBP 设置之前所做的那样,在您的 JavaStation 上加载 NetBSD,并在那里运行 eeprom 命令。复杂,但它也有效。
据报告,当 PROLL 查找的文件不可用时,就会发生这种情况。在重试之前,请仔细检查您的配置。
Krups 上使用 Linux 的真彩色有点争议。有些人认为这是可能的,而另一些人则不认为。
首先,Krups 被列为具有 IGS C1682 帧缓冲,而 Espresso 具有 IGS C2000 芯片。
根据一位内核黑客的早期报告,Krups 不支持真彩色的原因是缺少内核对 Cyber2000 芯片的支持。也许 Espresso 的 C2000 是 ‘Cyber2000’?也许 C2000 接近于 C1682。ZLS 网站上的注释似乎指向这一点。
最近的 2.4.x 系列内核有一个标记为 ‘Cyber2000’ 的条目。也许这有效?一位贡献者尝试过但失败了。
好的,有一个名为 ‘fbset’ 的用户空间实用程序可以更改帧缓冲的模式。那有效吗?一位贡献者说没有。
在 sparclinux 存档中,有一位用户使用 24 位 TCX 帧缓冲并取得成功的报告。但 TCX 芯片在 Mr. Coffee 中,而不是 Krups 中,并且 Mr. Coffee 上的板载 TCX 最大为 8 位,而不是 24 位。
那么 Krups 上 24 位色彩的真实情况是什么?在其他人尝试并说出来之前,我们不知道。
Dover 不是基于 SPARC 的 JavaStation,本 HOWTO 指南是针对后者的。您必须使用 x86 程序才能使其正常工作。您确实阅读了 Dover 介绍部分中的警告,不是吗?
我收到了多份关于 Dover 设备内核加载失败的报告。随着更多信息的到来,本 HOWTO 指南将会介绍它。
如果您通过串行控制台启动 JavaStation,则帧缓冲控制台将完全禁用。是否有任何方法可以在启动后激活帧缓冲控制台?(在 Sparclinux 邮件列表 2001-05-11 上提出的问题)。
据我们所知,没有。
那你最好忙起来。
那就问吧。电邮<rsd@dubinski-family.org>我会尽力帮忙。如果我无法提供帮助,我会将您转到邮件列表或合适的联系人。