【转自IBM】 索尼的 PlayStation 3(PS3)能运行 Linux®,但是要运行得好,还需要做些调整。在本系列的{dy}篇文章中,Peter Seebach 介绍了 PS3 Linux 的功能和好处,解释了稍做调整就能解决的一些问题。
当索尼首次宣布 PlayStation 3 将能够直接运行 Linux 的时候,非常令人兴奋。最初,直接安装 Linux 会有些困难。PS 3 支持的安装程序运行自定义脚本,手工将 Fedora Core 5 或 6 安装 DVD 改造成使用特殊 PS3 内核运行的系统。人们花了许多时间来让其他系统(例如 Ubuntu)工作。Terrasoft 的黄狗(Yellow Dog)Linux 带有真正能在 PS3 上运行的图形安装程序,它就这种努力的成果之一。
随着时间流逝,许多事都已经发生了变化。现在能够将 Fedora 7 直接安装到 PS3 上,安装过程最难的部分就是,选择 PS3 的存储驱动器以便让它能够找到安装 DVD,还要记得在初始安装命令行中指定视频模式以便能够看到安装程序。
所以,在 PS3 上是能够运行 Linux 的。问题是目前运行得还不太好。如果将 PS3 作为便宜的 Cell 开发系统,那么您肯定会有点失望地发现:执行默认安装过程之后,在进入 shell 提示符之前就已经用去了数百兆甚至更多的交换空间。
本系列的三篇文章将 PS3 Linux 作为未来的开发环境。本文是这个系列的{dy}部分,介绍了特定于 PS3 的基本配置项,展示了如何有效地使用它们,并给出了一些可以改进性能或显示效果的建议技巧。第 2 部分和第 3 部分则深入介绍一些性能和调优问题,尽管这些问题适合于任何系统,但在 PS3 上应用时会特别有用,能够将 PS3 从一个概念证明演示变成真正能工作的系统。
获取 Fedora 7(Fedora 8 可能也适合,但在写作本系列的时候,我手上用的是 Fedora 7)。显然,如果使用经过专门调优的或者针对小巧和效率进行构建的发行版,那么可能会得到更佳的效果,但是 Fedora 7 有一个巨大的优势:它受 Cell/B.E. SDK 支持(也支持 RHEL 5.1,但对 Fedora 7 的支持更好)。
我非常喜欢用 Bittorrent 下载,因为 BT 能够把负载分散开。这意味着您应该一直开着客户端,直到上载的数据量不少于下载的数据量。开源软件意味着合作,而在带宽成本上的合作是个好的起点。下载整张 DVD 映像需要比较长的时间(请参阅 ),所以在下载过程中,您可以了解一下 PS3 Linux 的一些背景知识。
PlayStation 2 也能运行 Linux,但是比较麻烦。为此,索尼发布了专门的工具包,但是只能在更早的厚重的 PS2 机器上运行,而且要求使用附加硬盘。不支持后来的(更普遍的)“苗条” PS2 机器,所以这个工具包很快就消失了。但是,它消失的主要原因是它几乎只是个概念证明;PS2 系统上没有足够的内存,也没有专门的编译工具,CPU 只是标准的 MIPS 内核。除了索尼专用的工具之外,矢量单元没有得到广泛支持,也没有充足的文档。
对比之下,在 PS3 推出之前,就已经有运行 Linux 的支持,而且索尼还大量提供了支持代码和支持包。在系统发布前后推出的 “Cell addons” 光盘上包含对 Fedora 5 和 6 的直接支持,而且还提供了其他 Linux 发行版开发 PS3 移植所需的所有文件。所以,不用单独的光盘就能在 PS3 上运行 Fedora 7,不过仍然需要从索尼下载并安装引导加载程序。增值软件光盘(请参阅 )将继续用新版内核进行更新。
PS3 的基本规格是 256MB 主内存,一个 Cell/B.E. 处理器,有线以太网卡(有些型号上有 802.11b/g 无线网卡),称为 RSX 的图形处理单元(自带 256MB 内存)和一块 SATA 硬盘。还有些外部设备,包括 USB 端口、蓝牙,某些型号上还有读卡器。但是,这并不是运行 PS3 Linux 的机器。
在 PS3 上,Linux 在 hypervisor 控制下运行 — 实际上,PS3 Linux 是在与 Xen 类似的虚拟机上运行的。hypervisor 提供了对 PS3 硬件的受约束和经过过滤的访问。例如,Linux 代码不能直接访问 RSX 图形处理器,但是可以使用其提供的专门设备对 RSX 进行有限访问,从而实现不错的 2D 帧缓冲效率。
hypervisor 提供了许多转换。例如,正如前面提到的,hypervisor 为 Linux 提供了一个虚拟的帧缓冲设备,是 hypervisor 随后用 RSX 图形内核实现的。类似的,Linux 不能访问 SATA 硬盘,只能访问 SCSI 驱动程序,由后者映射到内部驱动器中分配给 “其他操作系统” 分区的区域。不能从物理上访问 PS3 游戏软件使用的磁盘部分。
网络硬件可能是最有趣的部分。PS3 Linux 既能够访问千兆以太网络,也能够访问 802.11g 无线网络,但不能同时访问。在配置网络接口时,如果用 SSID 将其指定为无线接口,那么 hypervisor 就使用无线接口,否则使用有线接口。
|
如果从 PC 硬件的角度阅读本文,那么这里的视频模式可能听起来很怪。在这里不是用整体分辨率(“1024x768”)或给定的缩写名称(“XGA”、“SXGA” 等)描述视频模式,而是以垂直解析的行数描述。在美国,使用 NTSC 标准,标准清晰度电视(SDTV)的常见分辨率是 480 行 — 但是请等一下!
实际上,由于信号中没有足够的带宽用来每帧绘制 480 行,所以实际得到的是两个交替的帧,其中每帧绘制 240 行,然后同时显示两个帧。奇数行来自一帧,偶数行来自另一帧。这称为 “480i”,其中 i 表示隔行(interlaced)分辨率(有些系统甚至不使用 480i,而只用 240 行)。
许多 DVD 播放器,包括有些游戏机(例如{zx1}一代的 Xbox,有些 GameCubes 和 PS2),在使用分量视频线的时候,还支持一个称为 “480p” 的附加选项。其中 “p” 代表逐行(progressive),表示一次绘制整个 480 行的帧。有些电视厂商用 480p 支持表示增强清晰度电视(Enhanced Definition TV,EDTV),与高清晰度电视(High Definition TV,HDTV)对应。
更高的分辨率还有 720p(720 行,逐行扫描)、1080i(1080 行,隔行扫描,由两个 540 行的帧组成),1080p(1080 行,逐行扫描)。由于考虑到竞争和硬件预算,有些设备只支持其中一些分辨率。
这些分辨率都没有指定水平分辨率,但是在 PS3 上,默认的输出通常会调整为 16x9 的比例显示。
{zh1},所有这些分辨率都包含过扫描(overscan) — 在标准电视上,显示的图像通常会略微超出显示器的边界,以确保图像周围不会出现难看的黑边。所以,默认的 Linux 处理只使用部分显示区域,并不是理论上的全部分辨率。对于每种视频模式,都有对应的 “全屏” 视频模式能够使用所有空间。Terra Soft 有一个专门介绍视频模式的网页(请参阅 )。
|
|
下面我们讨论修订的规格。PS3 Linux 在虚拟机上运行,虚拟机有一颗带 6 个 SPE 的 Cell/B.E. 处理器,大约 212MB 主内存,一个网络接口,一个 SCSI 磁盘(如果有读卡器,则会有更多 SCSI 磁盘),一个 SCSI 设备(可能是 DVD-ROM、CD-ROM,也可能是蓝光光驱),USB 和蓝牙端口。图形是通过特殊的帧缓冲设备提供的,支持各种视频模式(请参阅 )。
为了更好地利用 PS3 进行开发,首先要确定需要什么样的开发环境。如果愿意xx取消 X,那会节省大量内存(Fedora 默认运行 Gnome,这可能不是最省内存的策略)。许多系统设置工具都可以通过 X 访问,但是运行的时间很长。我在 Gnome 下运行图形包更新程序时花了几个小时才完成。这可能是因为该过程总共需要 375MB 的内存,严重超出了可用的物理内存。大多数时间都花在等待交换磁盘上,就像 VAX 上的 Emacs 一样。
由此得到的教训是:可用内存将是 PS3 上的{zd0}弱点。请尽快关闭那些不需要的服务。用 xterm 代替 gnome 终端。如果需要多个窗口,可以考虑运行 screen 而不是多个 xterm。
如果只是玩玩,那么不用对这些问题太过担心。但是如果在运行的时候需要查看显示结果,那就需要考虑显示选项。PS3 的 HDMI 输出质量{zh0}。如果有计算机监视器,那么 HDMI 转 DVI 线很便宜,但是要确定监视器支持高带宽数字内容保护(High-bandwidth Digital Content Protection,HDCP)。如果监示器不支持,那么只会看到一个黑色屏幕,或者可能是一片明亮的彩色状态。如果正在使用 KVM 开关,请注意开关也必须支持 HDCP!不幸的是,似乎无法关闭这项 “功能”;无法得到未加密的信号。虽然这种做法是为了保护高清晰电影,但是查看 X 桌面也需要特殊许可还是有点讨厌。HDMI/DVI 支持 PS3 提供的每种视频模式,包括消费者电子模式(例如 720p)和 PC 模式(例如 WXGA)。
如果没有 HDCP,也没有支持 DVI 的监视器,那么只能改用分量视频。大多数电视都接受分量视频,有些计算机监视器也支持。分量视频的效果与早期的 VGA 类似,只是它带有三个 RCA 连接器,一个输出红色,一个输出绿色,一个输出蓝色。分量视频线要单独收费 — 不过与 PS2 的分量视频线相同,如果有 PS2 的线,可以继续用。分量视频支持 720p 和 1080i 显示,但是可能不支持 1080p(如果不知道这些是什么,请参阅 )。分量视频提供的分辨率和清晰度比下面两个选项高。
如果没有分量视频,那么可以使用支持 S-video 的设备。S-video 支持 480i,但是要将信号分解到两个独立通道中,一个通道传输亮度,一个通道传输色度(即 “亮度” 和 “颜色” )。他的清晰度比{zh1}一个选项 —— 复合视频 —— 要好些。复合视频是旧式的 RCA 接头,通常是黄色,几乎与任何电视兼容。如果能不用复合视频,就不要用。
注意,Fedora 7 安装程序实际上不能在 720p 下使用,除非采用它的文本模式。实际上,如果打算采用 PS3 作为开发系统,{zh0}是使用更高的分辨率模式。Linux 系统适合于较大的显示器,Fedora 的窗口环境在低分辨率显示器上的效果非常差。而且,低分辨率显示 —— 特别是通过复合视频线传输时 —— 很难看清楚,界面非常模糊。
我的系统设置为通过 DVI 传输的 WXGA (1280x768),这个设置比较有用。足够不重叠地显示两个窗口。
现在 Fedora DVD 应该下载完了,所以下一步是安装它。请按 PS3 的操作说明将硬盘分区(这样做会丢失所有数据,所以请备份!)并载入 “Other OS” 引导程序。然后插入 Fedora DVD,从 DVD 启动,在 kboot 提示符下输入 linux64 text 或 linux64 video=720p 。720p 是安装时能够使用的{zd1}视频大小;如果没有分量或 DVI 输出,请使用文本模式。如果用默认方式启动,安装程序会在屏幕上一直停留在 Fedora 徽标上;实际上,安装程序的窗口比默认显示区域大,所以除了关闭计算机重新启动之外,别无选择。
然后,从 Fedora 的更新服务器获取全部{zx1}更新,并安装更新。这需要较长时间,同初始安装一样。不论在哪种情况下,只要一开始,就可以转身做其他事情,等几个小时再回来。
本系列的第 2 部分将介绍如何在系统上安装和更新{zx1}的 PS3 增值软件,介绍如何对配置稍做修改,减少基本的内存需求,直到留出足够的空间。
|