falken@bigfoot.com
修订历史 | ||
---|---|---|
修订 1.04 | 2007-9-1 | 修订者: tjc |
修正 XF86Config URL,拼写 | ||
修订 1.03 | 2006-1-13 | 修订者: tjc |
关于 root-path 选项和拒绝 DHCP OFFER 的注释,关于引导自有内核的注释! | ||
修订 1.02 | 2005-4-22 | 修订者: tjc |
URL 更改,调整,NFS null 解决方案! | ||
修订 1.01 | 2002-3-17 | 修订者: gea |
转换为 Docbook 格式 | ||
修订 1.0 | 2002-03-11 | 修订者: tjc |
LDP 发布 | ||
修订 0.85 | 2001-12-13 | 修订者: tjc |
安全提示。XFree。 | ||
修订 0.8 | 2001-12-13 | 修订者: tjc |
内核传输问题修复 (NFS null)。常规整理。 | ||
修订 0.7 | 2001-09-11 | 修订者: tjc |
添加了大量 FLASH 和挂载注释 | ||
修订 0.61 | 2001-08-20 | 修订者: tjc |
调整 debian 解包注释。添加 URL。关于重新 FLASH 的注释 | ||
修订 0.6 | 2001-07-28 | 修订者: tjc |
添加示例 syslog 输出。添加 securetty 更改 | ||
修订 0.5 | 2001-07-28 | 修订者: tjc |
初始版本发布以征求社区的反馈和意见 |
T1500 是一款基于 Linux 的无盘瘦客户端,能够从内部 FLASH RAM 启动到 X。它将从 DHCP 获取 TCP/IP 信息,并包含 telnet 和 WWW 浏览器。在这种配置中,T1500 可用作小型 Internet 访问设备。然而,T1500 也可以作为无盘客户端运行,从远程机器获取其初始内核和根文件系统(第一阶段使用“TFTP”,后者使用“NFS”)。 Compaq 提供了一张 CD,其中包含内核镜像和根文件系统,以及管理工具,但这些工具不是必需的,并且已发现在某些系统上会失败。这将在“Compaq 方式”部分中讨论。
也可以使用 Compaq 内核来引导正常的基于 Linux 的发行版。我们以 Debian 为例,但该过程相当通用,并在“唯一正确的方式”部分中讨论。
我们将假设:192.168.1.1 (bookcase) 上有一个工作的 DNS 服务器,并且该机器将服务于内核和文件系统。T1500 将安装为 192.168.1.52 (box)。域是 'house'。不需要特殊的路由。示例中使用的是 RedHat 服务器,但具体细节应适用于任何基于 GNU 的系统。
在服务器上为内核和文件系统创建目录,挂载并从 Compaq CD 复制文件。解包文件系统
mkdir /exports/T1500 mkdir /exports/T1500/root mkdir /exports/T1500/tftpboot mount /cdrom cp /cdrom/product/vmlinux /exports/T1500/tftpboot cd /exports/T1500/root tar xvf /cdrom/product/netboot.tar |
通过在您的 /etc/dhcpd.conf 中添加如下部分来配置 DHCP
将以太网地址更改为您的 T1500 的地址。
group { #little black box host box { hardware ethernet 00:80:64:10:1d:1c; fixed-address box.house; option host-name "box"; server-name "192.168.1.1"; filename "/exports/T1500/tftpboot/vmlinux"; option root-path "192.168.1.1:/exports/T1500/root"; } } |
在 DNS 中配置新主机
db.192.168.1.1: 52 in ptr box. |
db.house: box in a 192.168.1.52 |
通过添加导出根文件系统
/exports/T1500/root box(rw,no_root_squash) |
到
/etc/exports |
通过在 /etc/inetd.conf 中添加/更改行来配置 tftp
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /exports/T1500/tftpboot |
现在重启 inetd,dhcpd,nfs 和 named。在 T1500 上选择“netboot”选项,然后重启。 T1500 现在将启动到与其正常 O/S 非常相似的系统中。您可能想要添加
exec /nor/Xbin/xterm & |
作为倒数第二行在
/exports/T1500/root/root/.xinitrc |
然后注销并重新登录,以获得一个 xterm。
我们以 debian 'potato' (2.2) 版本为例。无论您选择哪个发行版,该过程都应类似,前提是它可以在 2.0.35 内核上运行。
在服务器上为内核和文件系统创建目录,挂载并从 Compaq CD 复制文件。解包文件系统(这里我使用了一些预制的 debian 发行版 tar 包,这里不是进一步讨论的地方)
mkdir /exports/T1500 mkdir /exports/T1500/root mkdir /exports/T1500/tftpboot |
mount /cdrom cp /cdrom/product/vmlinux /exports/T1500/tftpboot CD /exports/T1500/root tar zxvf /tmp/base2_2.tgz tar zxvf /tmp/telnetd*.tgz |
通过在您的 /etc/dhcpd.conf 中添加如下部分来配置 DHCP。更改您的 T1500 的以太网地址。
Group { #little black box host box { hardware ethernet 00:80:64:10:1d:1c; fixed-address box.house; option host-name "box"; server-name "192.168.1.1"; filename "/exports/T1500/tftpboot/vmlinux"; option root-path "192.168.1.1:/exports/T1500/root"; } } |
在 DNS 中配置新主机
db.192.168.1.1: 52 in ptr box. |
db.house: box in a 192.168.1.52 |
通过添加导出根文件系统
/exports/T1500/root box(rw,no_root_squash) |
到 /etc/exports
通过在 /etc/inetd.conf 中添加/更改行来配置 tftp
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /exports/T1500/tftpboot |
现在重启 inetd,dhcpd,nfs 和 named
通过将 root 密码设置为 'pass',暴露 telnetd 来配置文件系统
/exports/T1500/root/etc/passwd, 更改第 1 行: root:Z/U2u32VhNJoA:0:0:,,,:/root:/bin/bash
/exports/T1500/root/etc/inetd.conf, 添加: telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
将远程终端附加到 /etc/securetty 以允许远程 root 访问。
tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 tty12 ttyp0 ttyp1 ttyp2 ttyp3 |
在 T1500 上选择网络启动并重启它。
一旦启动,您应该能够 telnet 进入 T1500。此时,您应该配置 SSH,并关闭 inetd 中的 telnet 漏洞。
T1500 配备了一个名为 'makeflash' 的实用程序(它位于 /sbin 中,也随 CD 一起提供)。您可以使用它从 tar.gz 生成 flash 文件系统镜像,tar.gz 可以是本地文件,也可以是 NFS / SMB 文件。此实用程序也会生成所有必要的校验和。
1. 使用 Slackware 8.0 镜像刷写不起作用,即使使用计算出的校验和也是如此。这向我表明,对 vmlinux 本身进行了进一步的检查。
2. 在剖析了设备随附的 leo.boot 和 vmlinux 文件后,我怀疑 leo.boot 检查 vmlinux 中是否包含字符串“xxxxyyyyWYSEwysexxxx”,该字符串已正确包含在他们使用的自定义内核中。
3. Leo.boot 实际上是一个与 Win CE 相关的东西,带有一个奇怪的附加组件以允许 linux 启动。正常的 Win CE leo.boot 大约只有一半大小。它将 Eboot 协议用于以太网和并行端口 flash 编程。有一些免费的 Linux 工具可用于正确格式化镜像以替换 leo.boot 和操作系统镜像,但它们依赖于您提供 bootrom 的适当编译的对象版本。
但在运行它时要小心 - 可能会将设备刷写到一种状态,在这种状态下,使其再次启动的唯一方法是使用 Wyse 提供的 DOS 实用程序/ laplink 电缆设置。
此外,如果有人设法在非终端设备上运行 makeflash,您能否告诉我如何操作? AFAICT,它试图与非常旧的 glibc 和 libforms 链接。您应该能够对 T1500 进行几次 10 万次的 flash 更新。
显然,T1500 是 Wyse WT3X15,基于他们所谓的“Leo Board”。您可以从英国 Wyse 网站的客户支持部分的固件页面下载 DOS 重新刷写实用程序以及一些文档。它需要并行 laplink 电缆。
在运行下面的 mknod 命令后,您可以挂载 /dev/fnand 和 /dev/fnand1,它们都是 16Mb flashfs 分区。您还可以挂载 /dev/fram 并对其进行写入,但是数据在卸载并重新挂载后消失了。它可以用作交换空间。
mknod /dev/fcard b 63 0 mknod /dev/fcard.fmt b 63 128 mknod /dev/fcard1 b 63 1 mknod /dev/fcard1.fmt b 63 129 mknod /dev/fnand b 62 0 mknod /dev/fnand.fmt b 62 128 mknod /dev/fnand1 b 62 2 mknod /dev/fnand1.fmt b 62 120 mknod /dev/fnor b 65 0 mknod /dev/fnor.2m b 65 128 mknod /dev/fram b 64 128 |
要启动到 XFree86,请抓取并安装正常的 XFree 软件包。从 http://www.falkensweb.com/t1500.html 抓取并安装 XF86Config 文件。使用如下行
xinit -- -bpp 16 & |
在 rc.local(或您的发行版的等效文件)中自动启动它。为了安全起见并以用户身份运行 X,创建用户并使用如下内容来启动和停止它(我将其放在 init.d 目录中并从 rc.4 链接)。将第 5 行的 'mplayer' 更改为您的用户名。
#! /bin/sh case "$1" in start) echo -n "Automatically logging into X" su -c 'cd ~mplayer && xinit -- -bpp 16' - mplayer & echo "." ;; stop|restart) ;; *) echo "Usage: /etc/init.d/mplayer {start|stop|restart}" exit 1 esac exit 0 |
服务器的日志文件 (/var/log/messages) 应包含有关您在启动过程中所处位置的提示,因为它应记录 TFTP 传输、NFS 挂载等。如果没有,请添加
*.* /var/log/messages |
到
/etc/syslogd.conf |
并重启 syslog
tcpdump 允许您查看正在传输的数据包及其 NFS 文件名。
tcpdump -i eth0 -s 500 host box |
您的 syslog 输出应类似于
Jul 24 21:37:00 bookcase dhcpd: DHCPDISCOVER from 00:80:64:10:1d:1c via eth0 Jul 24 21:37:00 bookcase dhcpd: DHCPOFFER on 192.168.1.52 to 00:80:64:10:1d:1c via eth0 Jul 24 21:37:04 bookcase dhcpd: DHCPREQUEST for 192.168.1.52 from 00:80:64:10:1d:1c via eth0 Jul 24 21:37:04 bookcase dhcpd: DHCPACK on 192.168.1.52 to 00:80:64:10:1d:1c via eth0 Jul 24 21:37:04 bookcase tftpd[5003]: tftpd: trying to get file: /exports/T1500/tftpboot/vmlinux Jul 24 21:37:24 bookcase mountd[4853]: authenticated mount request from box:600 |
您的 tcpdump 输出应如下所示(空闲时)
17:31:41.450000 box.8022008 > bookcase.nfs: 116 lookup fh Unknown/1 "initctl" 17:31:41.450000 bookcase.nfs > box.8022008: reply ok 128 lookup fh Unknown/1 |
存在一个已知问题,有时会导致 T1500 无法重启,显然是因为它在重启后无法 tftp 内核。发生这种情况的 tcpdump 将类似于
12:04:38.506153 box.2049 > bookcase.house.tftp: 39 RRQ "/exports/T1500/tftpboot/vmlinux" 12:04:38.556153 bookcase.house.1199 > box.2049: udp 516 12:04:38.556153 box.2049 > bookcase.house.1199: udp 4 12:04:38.556153 bookcase.house.196610 > box.nfs: 516 null 12:04:38.556153 box.2049 > bookcase.house.1199: udp 4 12:04:38.556153 bookcase.house.196611 > box.nfs: 516 null 12:04:38.556153 box.2049 > bookcase.house.1199: udp 4 12:04:38.556153 bookcase.house.196612 > box.nfs: 516 null 12:04:38.556153 box.2049 > bookcase.house.1199: udp 4 12:04:38.566153 bookcase.house.196613 > box.nfs: 516 null 12:04:38.566153 box.2049 > bookcase.house.1199: udp 4 12:04:38.566153 bookcase.house.196614 > box.nfs: 516 null 12:04:38.566153 box.2049 > bookcase.house.1199: udp 4 12:04:38.566153 bookcase.house.196615 > box.nfs: 516 null |
然后您将看到来自 tftp 的 syslog 条目,指示它正在发送内核,但没有交换数据包。 ARP 请求未得到响应。
这可以解决,但如果您的 T1500 无头地放在角落里,则会很麻烦。如果不存在,请连接显示器、键盘和 PS/2 鼠标。重启 T1500,并在第一次蜂鸣声后按“L”。 T1500 现在将在本地启动。将启动模式更改为“本地”(“开始”->“系统”菜单),然后重启。将启动模式改回“网络”
如果这种情况经常发生在您身上,请尝试使用 tiggers-magic-tftpd。您可以在本文档给出 T1500 HOWTO 当前主页的同一 URL 找到它。它需要 python,并且据报道已解决该问题。请告诉我您的进展如何!