TimeSys Linux 是由 TimeSys 公司 创建的 Linux 衍生版本。它包含一个完全可抢占的内核、一个恒定时间调度器、完全可调度的中断处理程序、完全可调度的软中断以及缩短的中断禁用时间。这些特性将延迟降低到 TimeSys Linux 可以用作实时操作系统 (RTOS) 的程度。
TimeSys Linux 有四种版本
TimeSys Linux/GPL — 基本的 TimeSys Linux 内核;在内核级别提供完全抢占、优先级中断处理程序等等。
TimeSys Linux/Real-time — 通过添加优先级继承和基于 POSIX 的高分辨率定时器 API,使 Linux 成为真正的 RTOS。
TimeSys Linux/CPU — 增加了对 CPU 预留的支持,这使得线程、进程或进程组可以独占使用 CPU。
TimeSys Linux/Net — 增加了对网络带宽预留的支持,保证您的线程或进程将获得其所需的带宽,而无需考虑其他进程中的网络活动。
本文档处理的是第一个变体 GPL,因为它是唯一免费提供的版本。GPL 版本不受 TimeSys 公司的支持(当然,除非您购买支持合同),因此关于它的文档有点缺乏。
公平地说,关于将 TimeSys Linux 安装到嵌入式板上并为其交叉编译代码的文档相当不错。问题在于 TimeSys 对交叉编译所需的工具链收费,即使这样,许多首次用户可能也不希望立即开始为目标板编译。他们可能只是想试用 TimeSys Linux,或者他们甚至可能没有嵌入式板。TimeSys 公司的文档对这些用户没有帮助。
在本迷你 HOWTO 中,我尝试通过解释如何在典型的“米色盒子”桌面工作站上安装 TimeSys Linux/GPL 来在某种程度上纠正这种情况。虽然这显然不是 TimeSys Linux 的目标平台,但将内核安装到普通的桌面电脑上是快速入门并试用一些实时应用程序(例如 RTSJ 参考实现)的简单方法。
本文档,《TimeSys Linux 安装迷你 HOWTO》,版权归 Trevor Harmon 所有,(c) 2005,并根据 Creative Commons Attribution-Sharealike 2.0 许可协议获得许可。有关分发的条款和条件,请访问 http://creativecommons.org/licenses/by-sa/2.0/。
TimeSys 是 TimeSys 公司的注册商标。
Linux 是 Linus Torvalds 的注册商标。
您的首要任务是在将要运行 TimeSys Linux 的桌面计算机上安装 Red Hat Linux 9。如果您已经有一台安装了 RHL9 的计算机(甚至只是一个包含它的引导分区),您可以跳过此步骤,但全新安装始终是最佳选择。请务必选择工作站安装选项,以便安装所有开发软件包。
接下来,请确保kernel-source软件包已安装。您可以通过键入以下命令来执行此操作
# rpm -q kernel-source |
如果未安装,请通过您喜欢的任何方式检索它,例如从 Red Hat 的 FTP 站点下载二进制 RPM,然后使用以下命令安装它
# rpm -Uvh kernel-source-2.4.20-8.i386.rpm |
将 TimeSys Linux 发行版存档复制到运行 RHL9 的计算机并解压缩。切换到创建的TimeSys-x86bsp目录,并以 root 身份运行 ./install。这将把所有 TimeSys Linux 文件放入/opt/timesys.
在编译 TimeSys Linux 内核之前,您需要设置源代码目录,以便内核了解系统上的所有驱动程序和内容。为此,请发出以下命令
# cd /usr/src # mv linux linux.old # Only if the linux directory already exists # mv linux-2.4 linux-2.4.old # ln -s /opt/timesys/linux/4.1/x86bsp/src/2.4.21-timesys-4.1/kernel linux # ln -s /opt/timesys/linux/4.1/x86bsp/src/2.4.21-timesys-4.1/kernel linux-2.4 |
请注意,在上述命令中,您可能需要根据您下载的 TimeSys Linux 软件包更改 x86bsp 和版本号。
现在您可以编译 TimeSys Linux 内核了。首先执行以下命令
# cd linux # make menuconfig |
请注意,您不能跳过上述步骤并自行编辑.config文件。运行配置实用程序并保存您的更改会生成编译内核所需的文件。
如果您执行了 Red Hat Linux 9 的全新安装,那么很可能您不需要更改出现的任何配置选项。但是,如果您有任何奇怪的硬件,或者只是想执行“健全性检查”,您应该浏览菜单并启用您需要的任何驱动程序和选项。例如,您可能需要为您拥有的任何网卡添加以太网驱动程序。如果要安装到笔记本电脑,请不要忘记在转到网络设备支持页面之前启用通用设置 --> PCMCIA/CardBus 支持,以便您可以看到 PCMCIA 以太网驱动程序。如果您有 USB 键盘或鼠标,请确保启用了 USB 设备。您还应确保启用块设备 --> 回环设备支持。并且检查其他可能的先决条件(例如网络选项 --> IP:DHCP 支持)也无妨。
当您对配置感到满意时,退出并保存。
下一步是编译 TimeSys Linux
# make dep # make bzImage [3] # make modules # make modules_install # make install |
make install 应该已将内核放入/boot甚至为您在 GRUB 中添加了一个 TimeSys 条目。如果您希望新内核默认启动,请编辑/etc/grub.conf并将 default 行更改为与 TimeSys 内核条目对应的从零开始的索引。(这可能是 0)。
此时,内核已准备就绪,但如果您现在重启,您的系统将无法恢复,因为设备文件系统错误。问题是 TimeSys Linux 依赖于 devfs 文件系统。
要解决此问题,请从 Richard Gooch 的站点 安装 devfsd。解压 tar 文件,然后将其复制到/usr/src/redhat/SOURCES/。切换到文件解压缩到的目录,然后运行
# rpmbuild -ba rpm.spec [4] |
这应该构建 devfs 软件包并将其放置在/usr/src/redhat/RPMS/i386/。然后您可以通过键入以下命令安装此 RPM
# rpm -Uvh /usr/src/redhat/RPMS/i386/devfsd-1.3.25-1.i386.rpm |
通常,您现在需要在/etc/rc.d/rc.sysinit中添加 /sbin/devfsd /dev 行,但 Red Hat Linux 9 应该已经在安装过程中为您完成了此操作。
以下是一些与 TimeSys Linux 相关的网站,您可能会觉得有用
SourceForge 上的 TimeSys Linux/GPL — 一个托管 TimeSys Linux/GPL 的独立项目
Linux Journal 对 TimeSys Linux/RT 的评论 — 简要了解 TimeSys Linux 的 RT 版本(非 GPL)
[1] | 其他 Linux 发行版与 TimeSys Linux 兼容,但我发现 RHL9 对 TimeSys 最友好。 |
[2] | 其他版本也应该可以工作,当然,但这是我测试的版本。另请注意,TimeSys 可能会偶尔使用安全修复程序更新其内核,因此建议获取最新版本。 |
[3] | 如果您收到关于找不到 i586-linux-gcc 的错误,请编辑Makefile并注释掉关于 CROSS_COMPILE 的行。 |
[4] | 如果您的系统找不到 rpmbuild,您可能需要先安装rpm-build软件包。 |