日期:2014-05-16  浏览次数:20570 次

PSP开发一 linux菜鸟fedora下配置psp开发环境

????? 虽然从我去年拿到psp的时候就很想自己能写一个能在psp上运行的什么,之前也在windows上尝试过几次配置psp开发环境,但是都没有成功。十一放假,看了下运势,说这个星期适合学习第二专长,想想自己很早之前就想好好学习下C,为什么不在linux下配置一个psp的开发环境呢!正好是一方两便。

于是折腾开始了。下载了psptoolchain后果断运行toolchain.sh,随后错误接踵而来,我淹没其中,以下就是今天遇到的错误。

1、无法访问/usr/include/mpfr.h
????? 首先想到去/usr/include下面去找,发现果然没有mpfr.h,网上搜了一下,也不知道mpfr.h是什么,但是没有就要让他有,不然没办法走下去了,发现一个地址:http://petio.org/tools/mpfr.html ,照着上面的命令敲(虽然对linux不是很了解,但是里面的命令是什么意思还是知道的),弄完过后再去/usr/include下面一看,果然mpfr.h有了!
继续
2、ERROR: set $PSPDEV before continuing
???? 我居然一眼就看出是没有设环境变量,真是佩服我自己!可是linux下环境变量是怎么设的,我也不知道,还好有google,一搜,发现第一条就是这个地址:http://forums.qj.net/psp-development-forum/113149-le-urgent-error-set-pspdev-before-continuing.html ,看了一下(虽然英语四级没过,但是纯英文的文档可没少看)。照着上面的最佳答案:

cd ~
echo 'export PSPDEV=/usr/local/pspdev' >> .bashrc
echo 'export PATH=$PATH:$PSPDEV/bin' >> .bashrc

敲(上面两句的前半部分大致知道什么意思,后面不清楚,后来才知道是个文件名? )。
敲完后没用!居然没用!

再搜,再vi ~/.bashrc,后来发现好多人在ubuntu上面配置psp环境的,一路看下来,发现ubuntu上配置完环境变量后可以用source ~/.bashrc来读取新环境变量,我也用这个命令在fedora下面试一试。结果,没报错,再用export命令看一下,仔细查看发现已经有了,但是不是我最新修改的。搜一下fedora下面关于环境变量的主题,初步得出结果修改环境变量后要注销才能起作用,算了注销吧。
注销再进来,export发现变成最新修改的了,./toolchain.sh!还是这个错误,难道环境变量还是不对!,再export,再三仔细查看,真是坑爹啊!PSPDEV=/usr/local/pspdev我居然写成PSPSDEV=/usr/local/pspdev!粗心害死人啊!修改、注销、登录、./toolchain.sh,终于前进了!
3、文件 “binutils-2.16.1.tar.bz2” 不存在。
????? 到下载文件了,第一个就报错!真是…………
????? 照着上面下载的路径:ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.16.1.tar.bz2 ,在浏览器中用http访问,发现是 404 not found,往上一级,发现有个列表,仔细查看,果然没有报错的这个文件名。
怎么办?修改那个什么文件!?还是先搜索一下吧。
搜索后发现很多人都手动下载这些下载文件,说省时间,我想我是不是可以手动下载避过这个错误呢!没有binutils-2.16.1.tar.bz2这个文件我就下载一个跟他很像的吧,wget http://ftp.gnu.org/pub/gnu/binutils/binutils-2.16.1a.tar.bz2下载到build文件夹下,rename为binutils-2.16.1.tar.bz2。再./toolchain.sh结果,还是不行,估计是要删掉那个script才行,不过我不敢啊,算了,修改scripts/001-binutils-2.16.1.sh吧,把ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.16.1.tar.bz2 改为:ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.16.1a.tar.bz2 (就为了这个小小的"a",我……)。

执行./toolchain.sh
继续了!听说时间很长,我先去洗衣服,然后再洗个澡,如果还没有结束我再去逛个街。
4、svn: 无法连接主机“svn.ps2dev.org”: 连接超时
???? 好吧生活肯定不会都让你如愿以偿。

???? 当我准备去洗澡的时候新的错误出现了,svn: 无法连接主机“svn.ps2dev.org”: 连接超时,这个之前已经看到别人有遇到这个问题了,没办法该改吧
按照:http://blog.csdn.net/mimepp/article/details/5893695 说的方法改了,没用还是找不到。上面说ps2dev.org的东西都拷贝到psp.jim.sh上了,所以去psp.jim.sh上找吧,看看里面需要修改的路径在psp.jim.sh上是什么路径,很快就搞定,新路径http://psp.jim.sh/svn/psp/trunk/pspsdk;http://psp.jim.sh/svn/psp/trunk/pspsdk; http://psp.jim.sh/svn/psp/trunk/psplinkusb。保存好修改的./scripts/003-pspsdk-stage1.sh ./scripts/006-pspsdk-stage2.sh ./scripts/009-psplinkusb.sh三个文件。
继续./toolchain.sh
5、文件 “gdb-6.8.tar.bz2” 不存在。
???? 抽空去逛了下街回来,意料之中,错误出现。

???? 这个错误之前已经有类似的出现了,解决轻车熟路。在文件007-gdb-6.8.sh中把ftp://ftp.gnu.org/pub/gnu/gdb/gdb-6.8.tar.bz2 改为ftp://ftp.gnu.org/pub/gnu/gdb/gdb-6.8a.tar.bz2 (到这里我才发现原来光改这个地方还不行,在错误3这样改可以是因为,我之前手动下载了文件,然后手动将下载下来的文件重命名为shell脚本里正确的文件名,所以这样做可以。所以还需要修改其他的解压shell,不过算了,我还是用我之前的方法,进入build文件夹把文新的文件名手动改成旧的吧。)
继续
6、致命错误:usb.h:没有那个文件或目录
???? 多灾多难啊!没办法,找原因吧。
???? 这个问题比较让我觉得棘手,关键是不知道usb.h在什么地方,先不急,我打开main.c看看先。一打开里面很多头文件,我把它们都拷出来仔细看了看,发现里面有我大学很熟悉的stdio.h等,看里面的路径,我想应该再/usr/include下面去那里看看,果然没有usb.h,google一下,在看了无数外国朋友的问题与回答后,大致得出结论,这个是psp的usb链接用的,不过看我下载下来的文件命名的文件夹来看好像是windows用的啊,在fedora下有用吗!不管了,上面有人说这些文件是和psplinkusb下载下来的退到build文件夹,抄起find -name usb.h,果然找到,顺便把其他几个include下面没有的头文件给找到,顺便cp usb.h /usr/include下继续编译,发现有效果。
但是接着就给我来个:致命错误:windows.h:没有那个文件或目录。这下我彻底傻了。

忙了一天体力消耗殆尽,明天再整吧,今天前后连续弄了8个小时。还是没能写个hello psp出来,不过看到网上有人说这个009-psplinkusb.sh不是开发必备的,不过我也不知道,还没有验证,今天累了就到这吧。

另:不断的尝试,不断的./toolchain.sh,每次都重头来好浪费时间,到最后我实在忍不住了,建了一个备份文件夹,google了一下mv指令的用法:mv 006-pspsdk-stage2.sh ../scripts_bak把前面成功执行的sh文件全都移动到备份文件夹去,这样快多了!