从 Sony PLAYSTATION 3 构建 Linux 实验设备

http://tech.ddvip.com   2008年06月11日    社区交流

内容摘要:在本系列文章中,Lewin Edwards 将向您展示如何从游戏控制台转到音频带宽频谱分析器和函数生成器。首先,他将介绍本项目的设计内容,然后在您开始着手在 Cell/B.E. 处理器上生成并分析信号时详细介绍用户接口的实现。

default=ydl
timeout=10
root=/dev/sda1
ydl='/dev/sda1:/vmlinux-2.6.16-20061110.ydl.2ps3
initrd=/dev/sda1:/initrd-2.6.16-20061110.ydl.2ps3.img root=/dev/sda3
init=/sbin/init video=ps3fb:mode:33 rhgb'

  对 kboot.conf 所做的修改会在下次重新启动时立即生效;您不需要执行任何特殊操作将新配置告诉引导程序。

  如果您正在使用电视机,并且所在的位置是欧洲,那么就可能希望以 38 模式运行;这样可以在上面的清单中简单地将 mode:33 修改为 mode:38 即可。如果感兴趣,可以使用 ps3videomode -h 命令查看所有的可用模式清单。您也可以使用 ps3videomode -v <number> 命令动态地体验各种模式。

  现在我们已经完成了将像素写入空白显存所需要执行的操作了。

  PS3 视频子系统受到了 Sony GameOS “系统管理程序” 的严格保护,它不能在其他 Linux 上显示出来。尚不清楚它们之所以这样做有多大程度是由于害怕有人会在某些特定情况下复制 PS3 游戏,或者能够看到一个 HD 视频内容的未加密字节;或者有多大程度上是由于 Sony 需要开发一种方法向 Linux 公开视频接口,而不需要对外公布有关 GPU 的任何注册表级文档(研究标明这可能会产生 GPL 的副作用,例如需要公布与 nVidia 达成的非公开协议所隐藏的代码)。

  不管动机如何,ps3fb 视频设备的工作方式与其他 Linux framebuffer 都有些不同,这既是一个缺点,又是一个优点。参考资料 中给出了有关它的工作方式的详细文档,不过上面对讨厌的 bug 却只字未提。您需要了解的内容简单总结如下:

  通常,framebuffer 设备都会让您直接访问显卡内存。

  使用 ps3fb 设备,您的应用程序会写入主存(offscreen)缓冲区。对于垂直方向上的每个空格来说,管理程序都会采用 DMA 方式将自己的缓冲区读到 GPU 的内存中,然后将 GPU 的可视页刷新为与垂直空格信号同步的数据。

来源:ibm    作者:Lewin Edwards    责编:豆豆技术应用

正在加载评论...