6.3. SHARP SL-5000/5500/C700-860/C3x00/6000 又名 Zaurus

SHARP Zaurus SL-5000/5500 不是第一款 Linux 掌上电脑,但它是在 Linux 社区及其他领域获得最大成功的掌上电脑。

图 6-2. SHARP Zaurus SL-5500 掌上电脑的屏幕截图。

6.3.1. SHARP 系统

您可以在 SHARP Japan (日语) 的官方网站上找到关于 Zaurus 上 Linux 的信息。您可以在那里获得官方内核,完整版本或仅限 Zaurus 的补丁。您还可以获得官方的根文件系统,即 initrd,但不包括 QTopia 环境。请查看 SHARP 的文档,了解如何为 Zaurus 刷 ROM 创建您的 zImage、bootflag 和 initrd,以进行自定义设置。或者访问您所在国家/地区的 SHARP 分部,以获取一个名为 "ospack" 的完整 ROM 文件,例如德国的 Zaurus.DE 或美国版本的 MyZaurus。内核相当旧:2.4.6,带有 2.4.6-rmk2-patches 以及来自 Lineo 的更多补丁。rmk-patches 来自 Linux ARM Community。SHARP 的根文件系统以其怪异的结构而闻名,到处都是符号链接。自定义编译有效。请记住在 Zaurus 显示 "Wait... " 时按下 "/" 键,这样您可以选择启动登录而不是 QTopia,因为那时 QTopia 不可用。除非您下载了 QTopia,进行了(交叉)编译并将其安装到根文件系统中。顺便说一句,您可以使用 "adduser" 创建新用户,这是一个由 BusyBox 提供的命令。BusyBox 提供了官方系统上几乎所有可用的 UNIX 命令。

6.3.2. 社区系统

目前我知道有两个正在运行的系统:OpenZaurus 和 Debian(非官方)。

6.3.2.1. OpenZaurus

OpenZaurus 尝试创建与 SHARP 相同的环境,但仅基于自由软件。目前,它仍然使用 Sharp 的旧内核,但在将 FLASH-ROM 用作 RAM 以及 RAMDISK 和 RAM 之间的 RAM 分配方面略有修改。不幸的是,SD 控制器的驱动程序是仅二进制的,因此是非自由的。但是 SHARP 本身也在尝试说服供应商 SDCA 公开提供源代码。此外,OpenZaurus 创建了一个我们从常规 Linux 系统中了解到的健全的根文件系统。它还用 Open Palmtop Integrated Environment - OPIE 替换了 QTopia,OPIE 是 QTopia 的一个分支,与 Trolltech 不再有关系。QTopia 的所有应用程序都应该在 OPIE 上运行,但并非完全如此:名为 Zraycast 的类 Doom 游戏在 OPIE 上无法运行,但在 QTopia 上可以运行(或多或少)。您可以直接下载现成的 zimage、bootflag 和 initrd,或从 CVS 检出源代码。下载的镜像工作正常。

6.3.2.2. Debian

当前的非官方版本 Debian Zaurus 真正尝试成为一个常规的 Debian 系统,带有 apt 和 X。一个简单的 dpkg 版本已经与 BusyBox 一起发布,这使其变得更容易一些。因此,维护者剥离了一些工具,以使其适应 Flash-ROM。它使用 OpenZaurus 提供的内核,因此也是来自 Sharp 的内核。RAMdisk、手写笔校准以及睡眠/关机/开机存在一些问题。一旦它处于更稳定的状态,它将与 EmDebian 联合,并且源代码将变得可用(可能已经应要求提供)。下载的镜像仍然需要调整。:) 包括来自 SHARP 的源代码在内的所有系统都设置为使用美国键盘布局(或德国键盘)。似乎可用的键映射在内核中是固定的,并且默认情况下未安装任何用户空间工具来更改它。也许我会尝试 Debian 上的 “console-tools” 软件包。

6.3.2.3. PocketWorkStation

以下是 PocketWorkStation 的一些功能,它是 PDA 的 Debian/GNU Linux 发行版

  • 完整的 Debian GNU/Linux 操作系统环境,可以轻松访问许多 GB 的可用软件。想要 Konqueror 网络浏览器并在您的 SD 卡上有 50MB 的可用空间?运行 apt-get install konqueror,去吃午饭,回来后发现它已准备好运行。无需移植。

  • 包括 X11,能够运行大多数 Linux 应用程序 - 它支持大于物理屏幕的虚拟屏幕、实时抗锯齿缩放和旋转、3 键鼠标模拟和一个全键盘(例如,如果您需要向应用程序发送 Ctrl-Alt-Del,这将非常有用)。

  • VNC 客户端 fbvnc(与上面的 X11 具有相同的功能)- 从您的 Zaurus 远程管理您的 NT 计算机。

  • 完全从单个目录运行(256MB SD 卡是理想选择),无需重新刷机或修改现有的操作系统。

  • 随时在 QTopia 和 X11 之间切换,无需重启或停止任何 X11 应用程序。

6.3.3. 与您的 Linux PC 同步

QTopia-Desktop 可以从 Trolltech 免费下载(啤酒免费):有一个 FAQ,其中解释了设置所需的步骤(USB 以太网)。它不是最新的,因为 SHARP 在其当前的 ROM 版本中加强了安全性,因此您必须为您的 usb0 网络设备提供 IP 地址 192.168.129.1。您必须下载并编译内核补丁才能使用驱动程序 usbdnet(请参阅上述网站)。之后,QTopia-Desktop 和 Zaurus 之间可以建立连接。我的系统的 usb 网络层出现了很多问题,无法正确同步。将我的主机的驱动程序从 uhci 切换到 usb-uhci 解决了问题。就在最近,由于相应的 usb-net 驱动程序出现故障,我不得不重启我的笔记本电脑和 Zaurus。通过 CF 卡槽中的以太网卡进行网络连接比通过 usb 的连接更可靠,并且您仍然可以使用键盘。缺点是,当您在线时,您不能在 CF 卡槽中使用存储设备。

6.3.4. 外部串行键盘

到目前为止,我还没有成功。有一个网站提供 串行键盘驱动程序和 iPAQ 的补丁。由于 iPAQ 和 Zaurus 都基于相同的 CPU 架构 StrongArm,我希望那里提供的驱动程序也适用于 Zaurus。您还需要一个名为 inputattach 的用户空间工具,您也可以从那里获得(源代码或 ARM 的二进制文件)。我有一个带有 PS/2 连接器的 Happy Hacking Keyboard Lite。一个适配器将其转换为串行,然后将其插入 Collie 串行 <-> 串行连接器。我不知道这个链条是否有可能工作。提供的补丁只应用了一个失败的 hunk,这使得对源代码 (include/linux/serio.h) 进行微不足道的更改是必要的;检查输出。在重新配置 SHARP 内核配置并编译模块后,我将它们传输到 Zaurus。标记和创建的模块是:newtonkbd.o、serio.o、serport.o 以及来自 drivers/char/joystick/ 的 stowaway.o 和来自 drivers/input/ 的 input.o 和 keybdev.o。当您启动 inputattach 时,您必须使用 inputattach --newtonkbd /dev/ttyS0 行,_而不是_ 网站上所述的 ttySA0。由于某些奇怪的原因,Collie 串行驱动程序不符合内核的官方 StrongARM 文档,该文档声明串行端口可以通过 /dev/ttySAx 访问。并且由于 serial_collie.o 已经编译到 Sharp 内核中,因此您不必加载通用模块 serial.o。好吧,我也尝试过将 serial_collie.o 作为模块,同时它仍然编译到内核中。加载它时没有报错,但是系统不可预测地冻结,所以我不得不经常进行软复位。我想知道,为什么我可以加载一个代码已经在内核中的模块... 总之,它不起作用。:( 我在 --dump 模式下尝试了 inputattach(您必须取消定义源代码中的变量并重新编译),并且似乎串行端口和键盘之间没有任何反应。由于超时,select 的调用 (man 2 select) 失败。

6.3.5. 交叉编译

6.3.5.1. 内核

为了构建内核、initrd 和应用程序,您需要一个交叉编译环境,首选 GCC。EmDebian 为 Debian GNU/Linux i386 提供 .deb 软件包。注意:您必须在旧站点中查找下载链接(新站点上提供了链接),因为它们在新站点上丢失了(尽管下载页面存在)。g++ 和 libstdc++-dev 软件包存在一些依赖问题,可以使用 --force-depends “解决”。软件包 libstdc++-dev 在查找 info 文件时遇到一些问题:只需从/usr/share/info/iostream.ifo.gz/usr/share/info/iostream-295.info.gz创建一个符号链接即可。您应该可以在 Linux ARM Community 找到其他系统的一些指针。安装完成后,您可以获取标准内核,应用当前的 ARM 补丁,并修改顶层 Makefile 以针对 arm 架构。到目前为止,我还没有尝试过。

6.3.5.2. 应用程序

有关更多信息,请查看 QTopia 页面和 QTopia - 开发 页面。

6.3.5.3. 工具链

Werner Schulte 解释了如何构建 OPIE 开发 Live CD。该 CD 包含一个 ISO 镜像,其中包含他的 Opie Development HOWTO - LiveCD 章节 中描述的工具和方法。该 CD 允许用户交叉编译 OPIE 程序,而无需在他的 linux-box(也提供 i386 嵌入式)上安装交叉编译器。

构建 Mac OS X 下 Zaurus 的交叉编译 GCC 的说明。

DemoLinux 发行版,用于展示 Trolltech Qtopia 开发环境,适用于 SHARP Zaurus Personal Mobility Tool 或任何运行 Pellico Systems 提供的 Trolltech QPE 系统的基于 ARM 的设备。

使用 Damn Small Linux 进行 Zaurus 开发 提供了一个交叉开发环境,用于为 SHARP Zaurus Linux PDA 中使用的 ARM 处理器构建二进制文件。您可以在 QEMU 虚拟机中或从 Live CD 中运行它。

KernelKit 是一个 Knoppix 衍生版本,专门为 Linux 设备驱动程序和自由软件嵌入式系统的开发人员而设计。特别是,它包括用于多种嵌入式架构(目前为 ARM、i386、MIPS、mipsel、PPC 和 m68k)和模拟器(目前为 qemu 和 SkyEye)的 uClibc 交叉编译工具链。它可用于演示或培训目的,或供无法在其工作站上安装 GNU/Linux 的开发人员使用。

6.3.6. 注意事项

SHARP 在 Zaurus SL-5x00 系列的底部引入了专有的串行接口。您可以从他们那里购买一个到常规串行接口的适配器,但不幸的是,插头非常厚,您无法再打开键盘的滑盖。希望您仍然可以将外部键盘插入此端口!您至少可以将电源线插入适配器,这样您就不必使用电池供电。有第三方适配器可用,可以克服此注意事项。

SL-5500 的声卡没有扬声器。您必须使用耳机插孔才能听到 OggVorbis 和类似的音频。蜂鸣器目前仅支持 <kernel-source>/include/asm-arm/sharp_char.h 中定义的 14 种不同的声音<kernel-source>/include/asm-arm/sharp_char.h,检查 SHARP_BUZ_ALL_SOUNDS

6.3.7. 资源

6.3.7.2. 内核和社区发行版

  1. ARM Linux

  2. Emdebian

  3. OpenZaurus 项目

  4. Linux 串行键盘

6.3.7.4. 应用程序、桌面环境

  1. Open Palmtop Integrated Environment (OPIE)

  2. GPE Palmtop Environment,基于 GTK 的 OPIE 替代方案

  3. QTopia

  4. QTopia-Desktop

  5. Werner Schulte 的 iPAQ 和 Zaurus 使用 QPE 手册开发 描述了如何在 Compaq iPAQ Handheld(和 SHARP Zaurus)上安装 Familiar Linux 和 Qtopia / OPIE,以及如何使用 Familiar 发行版和来自 Trolltech 或 OPIE(免费克隆版)的 QPE 桌面为 iPAQ/Zaurus 开发应用程序。

6.3.8. 从 Palm Pilot 转换为 Zaurus

请参阅我的 应用程序和转换工具调查,关于传统 PDA 操作系统(目前只有 PalmOS,WinCE/Pocket PC 和 Epoc 将在稍后跟进)和 Linux PDA 之间的转换。