在 iPAQ 上安装 Linux™ 对于赋予成熟的硬件以新的活力或者使已有的工具变得更好,可能是一种很好的方式,尤其当您是桌面 Linux 的拥趸者时更是如此。在这个过程中您可以充分利用已有的知识,还可以享受到熟悉(双关语,Familiar)而且免费的开放源代码软件的益处。在本文中,学习如何用 Linux 来武装您的 HP-Compaq iPAQ PDA。
iPAQ 是 Hewlett Packard 生产的一类 PDA 的品牌(较老的型号品牌是 Compaq)。最初的型号是于 1999 年发布的 3600,其拥有一个 206-Mhz 的 StrongArm 处理器、32 MB ROM 和 32 MB RAM,运行 PocketPC 2000 操作系统。从那时起,已经推出了具有多种不同选择的很多型号。当前最新的型号具备内置的 Bluetooth、Wi-Fi 和 SDIO 能力,运行 PocketPC 2003 操作系统。所有这些设备足够强大,可以流畅地运行 Linux。本文论述了为什么您可能选择这样做并研究了一些可能的选择。
为什么运行 Linux 而不是 Pocket PC?
开始进入在 iPAQ 上安装并使用 Linux 的细节之前,需要考虑的一个显而易见的问题是,为什么从 PocketPC 200x 转而使用 Linux?
不再以已经被滥用的(多少次,我在寻找你,Slashdot 读者)“因为您可以”这一理由作为答复,其实有很多正当的理由,包括:
个人感觉:很多人只是觉得作为用户或开发者使用 Linux 环境更舒服。
持续的升级/支持:Linux 正不断地得到改进,安全缺陷正得到修复。然而,其原来的软件可能已经完全得不到支持,在很多情况下不能升级到最新的版本。即使操作系统/应用程序可以被升级,但这也不可能是免费的。
自由:出于意识形态的观点,或者因为希望得到很多其他益处(比如自己修复缺陷的能力和更强大的用户社区,等等),很多人更喜欢使用开放源代码软件。
实际能力:运行 Linux,使得很多在使用 PocketPC 时难以达到、代价高昂或者不可能达到的事情成为可能。
应用程序:通过运行一个标准的 Linux 发行版本,您可以轻松地移植很多应用程序(某些根本不需要做任何改动,很多只需要很少改动)。
操作系统功能性:此操作系统具备远程 X(Remote X)和原始的套接字。
选择硬件
一旦决定下来想要在 iPAQ 上尝试 Linux,您首先需要选择要使用的 iPAQ 硬件。通常,更老的硬件会得到更好的支持(因为开发者有更多的时间进行与之相关的工作)。可靠的选择是 H3100、H3600、H3700、H3800、H3900、H5100、H5400 和 H5500。随时都在添加对较新的设备的支持,所以,如果您的 iPAQ 是较新的,也不是完全没有希望 ―― 您可以选择参与开发版本(即便仅仅是为了测试软件,如果您没有开发经验),或者保持观望,直到您的硬件得到官方支持。同时,如果不想等待,您随时可以找一个二手的旧机器来用。为了进行测试,我使用的是一个扔在办公室里的相当古老的 H3650 型号。
下载发行版本
好,既然您已经挑选出了一些硬件,那么接下来就是要确定去哪里获得 Linux 以及如何将它安装到设备上。
假设您不打算改造您自己的系统(这是完全可行的,也是极其耗时),那么将 Linux 安装到您的设备的最简单办法就是获得一个支持这些设备的可用的特殊发行版本。最流行的发行版本之一(这也是我已经决定要使用的)是由 Familiar Project(参见 参考资料 中 Web 站点的链接)所提供的,以下简称为“Familiar”。
与大部分桌面 Linux 发行版本类似,Familiar 由两个独立的组件构成:
内核和基本系统。
GUI/桌面环境。
可以下载三种截然不同风格的 Familiar(第四种风格只面向开发者,它没有 GUI,但也是可用的)。这些风格每一个都有相同的内核和基本系统,但是有不同的 GUI。在桌面 Linux 领域中可以与此类比的是,安装一个发行版本,比如 Red Hat 或者 Mandrake,并选择一个桌面环境,比如 KDE 或者 GNOME。确实,一旦开始查看选项,您就可以更深入地体会到不同桌面环境之间的类似之处。
这三种风格是:
GPE(GPE 掌上电脑环境,即 GPE Palmtop Environment),基于 GTK,最类似于桌面领域中的 GNOME。
OPIE(开放掌上电脑集成环境,即 Open Palmtop Integrated Environment),基于 Qtopia,最类似于桌面领域中的 KDE。
pypaq,基于 Python 和 GTK。
前两者,即 GPE 和 OPIE,比 pypaq 应用更为广泛。如果您没有充足的理由在选择了一个之后再选择另一个,那么就只要选一个(安装所需时间并不长,所以,如果您不喜欢所做的选择,随时可以重新开始另一个风格)。
选择了要下载的适当文件后(我想要的是 GPE),就可以安装了。
安装 Linux
要获得详细的安装说明,请查阅 Familiar Web 站点的版本注解。下面的说明将使您对此过程有所了解,但是,如以前在 Linux 领域中一样,这些步骤可能会完全改变。
安装的第一个步骤是安装一个新的引导加载器(bootloader)。与通常的桌面系统中的 LILO 或 GRUB 类似,这是当 iPAQ 启动并允许您加载 Linux 时运行的初始程序。
引导加载器安装包含两个文件:WindowsCE 可执行文件(BootBlaster.exe)和引导加载器本身。要安装引导加载器,您首先需要将这些文件传输到 iPAQ 上。有很多方法可以完成此任务,比如通过 ActiveSync、通过存储卡(CF/SD/MMC,如果您的手持设备支持)或者通过网络连接(如果已经配置)。
当设备上有了引导加载器程序和引导加载器文件后,只需要运行 .exe,并遵循屏幕上的说明来备份现有的引导加载器和操作系统(以防万一您什么时候希望返回到现在的配置)。需要注意两点:
如果您通过一个串行链接备份现在的操作系统,请耐心:在我的机器上这需要大约 15 分钟。
引导加载器安装程序好像要求引导加载器文件位于 My Documents 文件夹中(或者一个子文件夹)。
既然已经安装了引导加载器,如果您重新启动设备,您应该会看到一个与常见的不同的屏幕 ―― 那就是新的引导加载器的。
下一步是安装操作系统本身,它发布为一个单一的 jffs2(journaling flash file system 版本 2)存档文件。取决于您所使用的硬件,有三个独立的如何继续进行的选项:
如果您有一个 CompactFlash 盒(Jacket)和一个 CompactFlash 存储卡(此过程不支持 SD/MMC 卡),那么最简单的方法就是,使用 WinCE 或另一台机器将三个文件(jffs2 文件、reflash.ctl 和 md5sums)拷贝到 CF 卡的根并将卡放入盒中(显然,也将 iPAQ 放入盒中)。现在,只需要按下 record 按钮(在左边)来重设设备,然后您应该会看到卡上的一个映像列表(通常只有一个)。通过 joypad 选择映像,然后直接安装 ―― 这需要几分钟。
如果没有 CF 盒/卡,那么您需要使用串行线缆/支架(cradle)。不幸的是,不能使用 USB 线缆/支架,所以如果您的设备只附带了其中之一,那么您将需要购买一个(到处都可以找到,而且相当便宜)。另外,最好查阅随设备提供的安装说明,以获得详细说明,不过,基本的方法是,将 iPAQ 连接到一个主机计算机,然后通过串行线将 jffs2 文件传输到 iPAQ 上(使用 ymodem 协议)。一旦文件到了设备上之后,就可以使用 boot 命令来快速存储(flash)该文件,该命令将与前面一样快速存储设备。
注意,传输可能得需要一段时间(我用了 20 多分钟)。
如果您有一个 CF 盒,那么有可能在一个 CF 内存卡上安装 Linux,而不用重新快速存储内部设备,这样就可以使 PocketPC 相对不会被改动。我之所以说是“相对”,原因在于 PocketPC 存储用户数据的方式(在 DRAM 中),当 Linux 引导时,它将抹去所有的用户数据(因为 Linux 使用所有可用的 DRAM)。这仍是一种实用的方法,因为它支持了一种基本形式的双引导(虽然在切换到 Linux 或者切换出 Linux 时需要进行额外的备份/还原)。不幸的是,关于此方法的资料很少;它也没有得到 Familiar 发行版本的直接支持,因为它要求用户创建一个定制的 initrd 文件系统。对那些对此方法感兴趣的人来说,有一个为名为 Intimate 的大容量(160 Mb 以上)CF 卡量身定制的专用发行版本(Familiar 的一个分支)。不幸的是,好像这个发行版本的开发工作已经停止了:最后一次发布是在 2001 年 11 月, Web 页上最新的一条新闻的日期是 2003 年 6 月。
不管您决定使用哪种方法,快速存储过程现在已经完成 ―― 恭喜!如果一切顺利,您现在应该已经拥有了一个基于 Linux 的 PDA。
连接起来
现在您的 PDA 本身已经是一个功能完整、完全可用的系统。取决于您要使用的 GUI 组件(GPE、OPIE 等等),一般来说确切可用的应用程序将是不同的。不过,基本层次上的功能是相同的:每个发行版本都包括一个 Web 浏览器、日记、地址簿、电子邮件客户机等等 ―― 所有都是您期望 PDA 要具备的。
除非您打算在完全非连接模式下使用 PDA,不然首先应该做的就是建立起某些连接。最基本层次的连接是与主机 PC 的简单的 串行/USB 同步,以获得最大限度的灵活性。另外,根据您的硬件的不同,确切的步骤也将不同 ―― 其范围很大,可以是完全无线访问(如果您有得到支持的(内置的/CF/PCMCIA)Wi-Fi 卡),LAN 访问(也需要一个得到支持的卡),基于 Bluetooth 的 TCP/IP,使用得到支持的调制解调器进行拨号上网,以及通过主机 PC 在 USB 或者串行线缆之上进行 TCP/IP 的隧道传输。
由于缺乏硬件,我只能使用连接到一台 Linux 桌面机的 PPP 来设置串行线缆上的 TCP/IP,以及设置 Linux 机器来