Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104994220
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-18 12:53:17

请调整您的显示器

developerWorks
 

级别: 中级

Peter Seebach (developerworks@seebs.plethora.net), 自由职业者, plethora.net

2008 年 4 月 15 日

索尼的 PlayStation 3(PS3)能运行 Linux®,但是要运行得好,还需要做些调整。在本系列的第一篇文章中,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 作为未来的开发环境。本文是这个系列的第一部分,介绍了特定于 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 的机器。


Cell 宽带引擎有 8 个 SPE。PS3 Linux 有 6 个。一个由 hypervisor 保留。另一个 SPE 在哪?

答案是 PS3 禁用了一个 SPE。这样如果有一个 SPE 有缺陷,那么仍然还能使用该芯片组,从而提高芯片的成品率,降低成本。所以,虽然理论上 Cell/B.E. 有 8 个 SPE 内核,但是 PS3 硬件只能使用 7 个。其中一个只能运行 hypervisor 分配的安全性任务,其余 6 个供 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 播放器,包括有些游戏机(例如最新一代的 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 的比例显示。

最后,所有这些分辨率都包含过扫描(overscan) — 在标准电视上,显示的图像通常会略微超出显示器的边界,以确保图像周围不会出现难看的黑边。所以,默认的 Linux 处理只使用部分显示区域,并不是理论上的全部分辨率。对于每种视频模式,都有对应的 “全屏” 视频模式能够使用所有空间。Terra Soft 有一个专门介绍视频模式的网页(请参阅 参考资料)。

下面我们讨论修订的规格。PS3 Linux 在虚拟机上运行,虚拟机有一颗带 6 个 SPE 的 Cell/B.E. 处理器,大约 212MB 主内存,一个网络接口,一个 SCSI 磁盘(如果有读卡器,则会有更多 SCSI 磁盘),一个 SCSI 设备(可能是 DVD-ROM、CD-ROM,也可能是蓝光光驱),USB 和蓝牙端口。图形是通过特殊的帧缓冲设备提供的,支持各种视频模式(请参阅 理解消费者电子视频模式)。

为了更好地利用 PS3 进行开发,首先要确定需要什么样的开发环境。如果愿意完全取消 X,那会节省大量内存(Fedora 默认运行 Gnome,这可能不是最省内存的策略)。许多系统设置工具都可以通过 X 访问,但是运行的时间很长。我在 Gnome 下运行图形包更新程序时花了几个小时才完成。这可能是因为该过程总共需要 375MB 的内存,严重超出了可用的物理内存。大多数时间都花在等待交换磁盘上,就像 VAX 上的 Emacs 一样。

由此得到的教训是:可用内存将是 PS3 上的最大弱点。请尽快关闭那些不需要的服务。用 xterm 代替 gnome 终端。如果需要多个窗口,可以考虑运行 screen 而不是多个 xterm。

如果只是玩玩,那么不用对这些问题太过担心。但是如果在运行的时候需要查看显示结果,那就需要考虑显示选项。PS3 的 HDMI 输出质量最好。如果有计算机监视器,那么 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,但是要将信号分解到两个独立通道中,一个通道传输亮度,一个通道传输色度(即 “亮度” 和 “颜色” )。他的清晰度比最后一个选项 —— 复合视频 —— 要好些。复合视频是旧式的 RCA 接头,通常是黄色,几乎与任何电视兼容。如果能不用复合视频,就不要用。

注意,Fedora 7 安装程序实际上不能在 720p 下使用,除非采用它的文本模式。实际上,如果打算采用 PS3 作为开发系统,最好是使用更高的分辨率模式。Linux 系统适合于较大的显示器,Fedora 的窗口环境在低分辨率显示器上的效果非常差。而且,低分辨率显示 —— 特别是通过复合视频线传输时 —— 很难看清楚,界面非常模糊。

我的系统设置为通过 DVI 传输的 WXGA (1280x768),这个设置比较有用。足够不重叠地显示两个窗口。







现在 Fedora DVD 应该下载完了,所以下一步是安装它。请按 PS3 的操作说明将硬盘分区(这样做会丢失所有数据,所以请备份!)并载入 “Other OS” 引导程序。然后插入 Fedora DVD,从 DVD 启动,在 kboot 提示符下输入 linux64 textlinux64 video=720p。720p 是安装时能够使用的最低视频大小;如果没有分量或 DVI 输出,请使用文本模式。如果用默认方式启动,安装程序会在屏幕上一直停留在 Fedora 徽标上;实际上,安装程序的窗口比默认显示区域大,所以除了关闭计算机重新启动之外,别无选择。

然后,从 Fedora 的更新服务器获取全部最新更新,并安装更新。这需要较长时间,同初始安装一样。不论在哪种情况下,只要一开始,就可以转身做其他事情,等几个小时再回来。







本系列的第 2 部分将介绍如何在系统上安装和更新最新的 PS3 增值软件,介绍如何对配置稍做修改,减少基本的内存需求,直到留出足够的空间。



学习

获得产品和技术

讨论


Peter Seebach 多年来一直在搜集视频游戏机,但是只有最近才开始在游戏机上运行 Linux。他现在依然不能确定这到底是一台能玩视频游戏的 Linux 机器,还是一台运行 Linux 的游戏机。

阅读(254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~