在PS3 FC7 Linux上编译安装RSX支持模块


如果你的firmware在2.10以上,可以不用看了。因为2.10之后索尼把RSX的访问彻底封死了。

首先,下载FC7 powerpc的DVD版本,烧录成盘片。跟在ps3上安装任何linux一样,先分区和安装otheros。启动otheros。把光盘放入光驱,重启机器。

随anaconda安装,把必要的东西勾上,开始安装。大约需要几个小时。

安装完毕后,系统重启。但这时系统无法重启,需要长按电源按钮5秒强制关闭机器。这个问题在稍后新安装的kernel中会解决。

启动后,root登入。从yum install几个必要的软件,如wget rsync等。然后从网上找geoffery的一个CELL-Linux addon iso。版本应该要20071023的。他本人(ps3版kernel的维护者)的网站上已经没有了,需要找个镜像。因为据试验下来,只有这里面带的2.6.23 kernel source是可以编译出可以在2.10以下firmware跑而且重启和关机正常的内核。

把iso mount起来,里面的src/linux-2.6.23-20071023.tar.bz2就是内核源码。tar jxvf一把把bz2文件解压到/usr/src中。然后到解压后的/usr/src/linux-2.6.23中,从./arch/ps3/中拷贝.config文件出来(路径可能有误),到内核源码的根目录。这包含了ps3内核所需的基本配置。但是有一个内核选项是安装rsx支持所必须要选择的,所以make menuconfig一把,菜单中在'enable loadable module support',勾上'module versioning'。然后存盘退出。

接着就是标准的编译内核。
make
make modules
make modules install

这个大约需要半个多小时吧,之后把/boot中的几个boot config和内核备份一下。然后懒人就make install以下,安装到/boot目录。把/boot/etc/yaboot.conf配置一下,依样画葫芦。

好吧,祈祷内核可以正常boot。如果无法启动,用原来的内核启动,再重新搞一下。其中的debug步骤就不说了。

启动成功?恭喜。接着从ps2dev.org的svn服务器上把IronsPeter的libps3rsx代码抓下来。当然你可能需要先yum install svn。svn地址是svn://svn.ps2dev.org/ps3ware

sync完以后,找到libps3rsx目录,在./src/init中有个startup.sh脚本,执行一下,会自动编译内核模块,并自动insmod进去。如果你没有做前面的内核重编译,dmesg |tail你将会得到一个magic version not match的错误。所以不能偷懒。

好了,如果上述都没有问题的话,libps3rsx已经安装在内核中了。这时候到./src/example/simple_dxt1中,make一把,运行./ps3gpu看看,有没有一个兽人?

如果需要X window也能受益于RSX,可以按照boxbuilder的教程来。下面简述:

首先yum install X11-server-sdk。然后:
git clone http://mandos.homelinux.org/~glaurung/git/xf86-video-ps3.git ./xf86-video-ps3.(todaysdate)

如果由于众所周知的问题git不能访问这个网站,那么可以把域名拿ip地址91.121.147.47代替。

抓下来的xf86-video-ps3代码
./configure -prefix=/usr
make
make install

然后将kernel启动option中的rhgb删除(我没有遇到这个问题,只是boxbuilder教程上有这么写)。

再修改/etc/X11/xorg.conf,记得做好备份:

将Driver "fbdev"改为Driver "ps3",并可以加以下extension:
Section "Extensions"
Option "Composite" "Enable"
EndSection

存盘重启。再次登录后,先确保ps3rsx.ko模块已经insmod且已初始化rsx(libps3rsx/src/init/init运行一下)的情况下:

startx &

即可启动利用RSX渲染的X Window了。如果没有初始化RSX或内核模块都没加载的话,X Window会hang在那里。这时候可以重启换回原来的fbdev版本,也可以重启后先加载内核模块、初始化RSX后,再进入X Window。

相关内容