荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: XBS.bbs@bbs.cqupt.edu.cn (玉不琢,不成器!), 信区: Linux
标  题: 编译内核让之支持ps并口改装手柄
发信站: 幽幽黄桷兰BBS (Sun Nov 17 13:37:23 2002)
转信站: SZU!news.tiaozhan.com!news.feeling.smth.org!news.happynet.org!CquptBBS

PS并口改装手柄是接在打印机口上的手柄,相比传统的接在声卡MIDI多功能口的模拟手柄
,它是纯数字的,因此有定位正确(不用像模拟手柄需要调校才能正确定位),而且,支持的
按键可以达到十多个(比模拟手柄多很多),完全可以满足任何游戏的需要;由于是数字式
的手柄,因此手柄的电路非常简单,价格低廉,在广州这里,一对PS改装手柄才16块,通街都
有得卖,效果却非常好!(相信很多朋友也是用它吧!)
PS手柄的WIN版驱动非常多,但在linux下,对它的支持的资料却一直非常缺乏,在网络上也
没见过有人提起过;由于我经常在linux下玩各种各样的模拟器,对此无法支持手柄这事一
直耿耿于怀.近来无意之中竟然发现内核之中,其实早就已经提供了支持,一番试验+翻阅
内核自带文档,终于试验成功!下面介绍一下方法:
系统:红旗3.0desktop,内核2.4.18(更早一点的可能也支持,不过我还没试验过)
1.由于PS并口手柄用到并口,而且是手柄设备,因此,请先检查你有没有/dev/parport*,/
dev/js*,/dev/input/js*这些设备,如果有,可以忽略这步;如果没有,请先建立,方法是:

cd /dev
rm js*
mkdir input
mknod input/js0 c 13 0
mknod input/js1 c 13 1
mknod input/js2 c 13 2
mknod input/js3 c 13 3
ln -s input/js0 js0
ln -s input/js1 js1
ln -s input/js2 js2
ln -s input/js3 js3
2.进你的内核源码文件所在目录(譬如我的是/usr/src/2.4.18),执行make xconfig命令
配置内核(图一所标为配置过程中改动的大选项)
先配置并口相关的:如图二,所标地方最好标配置成Y,选M应该也可以,但不推荐;这样就将
并口支持功能内建于内核中,内核启动时会自动检测并口并让/dev/parport*起作用
3.配置input core support,如图三,将所标地方选M,这样将手柄功能配置成模块,当加载
时,让/dev/js0这些起作用;虽然input core support的帮助文档中说是配置USB设备的,
但实际上,这些是手柄设备通用的,不配置这个,则无法配置下一步(当初我就是没配置这
个,结果搞了半天joystice的选项都是灰色的,无法配置)----这步配置编译后将生成inp
ut.o和joydev.o这两个模块
4.配置joystick:点击character device里的joystick选项(图十二)进入手柄配置窗口(
图四,图五),将所标地方选M,一个是配置声卡上的MIDI口(这个应该可以省略,据内核文档
说明,是对模拟手柄提供支持的,对数字手柄没用,但我还没试验过),一个是PSX手柄的支
持----这步配置编译后将生成gameport.o和gamecon.o这两个模块
5.保存配置退出,重新编译内核和模块并安装,这里就不罗嗦了,关于编译内核的资料本站
的"技术论坛"就有不少
6.进入"/lib/modules/your kernel/kernel/drivers/"(譬如我的是/lib/modules/2.4.
18/kernel/drivers)目录下,应该见到input目录下有input.o和joydev.o两个模块;char
/joystick目录下应该有gamecon.o和gameport.o模块;见图六
7.编辑/etc/modules.conf文件,加入如下两行语句:
alias pspad gamecon
options gamecon gc=0,7,7,7,7,7
第一行的意思是给gamecon.o这个模块起个别名pspad,那以后就可以用modprobe pspad这
个命令加载;第二行的意思是给gamecon这个模块加上gc这个参数,其中"0,7,7,7,7,7"的
"0"表示手柄是接在第一个打印机口(/dev/parport0),如果你的手柄是接在第二个,则用
1,类推;后面的第一个"7"代表第一手柄,类型是PS手柄改装的,第二个"7"代表第二个手柄
,类型也是PS手柄,由于并口可以同时接5个手柄,所以有5个7,如果你只有一个接上,只写
一个"7"就可以了(1是代表超任改装手柄,2是代表红白机改装手柄,6是代表N64改装手柄
,7代表PS改装手柄);这两行很重要,特别是第二行,不加这个参数的话加载gamecon模块会
报错说参数错误!(图七)
8.重起,使用新内核,启动过程中,你会发现有并口检测信息出现,这是因为并口支持功能
已经在内核中起作用;进入系统后,开一个终端窗口,依次执行下面命令:
modprobe input
modprobe joydev
modprobe pspad
没任何出错信息的话,再lsmod一下,应该可以看到类似图八的输出,确认其中有input,jo
ydev和gamecon这三个模块,其中的gameport一般随声卡驱动自动加载
9.运行jstest /dev/js0(如果你的系统没有这个命令,请上www.rpmfind.net搜索joysti
ck关键字,安装一个叫joystickxxx.rpm的包就有了),应该可以见到图九的输出,这时你按
一下手柄的按键,如果屏幕输出有相应的改变,那么,恭喜你,手柄驱动完全成功了!
10.你现在可以运行一下一个模拟器,或其他游戏,用游戏中的手柄功能设置一下,就可以
立即可以使用了;譬如epsxe这个模拟器,你可以用ammo joydevice pad driver这个插件
(图十),配置一下(图十一)就可以用了,其中/dev/js0代表第一个手柄,/dev/js1代表第二
个手柄,类推!经本人试验,凡是可以应用手柄的出程序都可以正常实现手柄的功能,效果
一流!以后你可以将第8步中的modprobe那三行加载模块命令加入到rc.local中让它随启
动自加载,则一进系统后就可以使用手柄了!或将它写成一个脚本,需要是再执行也可以!

以上很多信息都是来自内核自带的说明文档,大家如果有什么不明白,请先阅读内核源码
所在目录下Documentation/input目录下的joystick.txt和joystick-parport.txt这些文
档,当然可以回贴!
(绝对原创!转贴请注明www.linuxcn.org)
_________________
redflag 3.0 desktop!
返回页首
llc
公社软件部部长
加入于: Jun 16, 2002
文章: 1017
位置: 广东-江门-台山
 发表于: 2002,星期三 九月 11, 5:31 pm    发表主题:
----------------------------------------------------------------------------
----
经过再次编译内核证明:上述第4步中,对gameport的支持可以选N去掉,手柄仍然可以驱动
;根据内核文档说,gameport只是对接在声卡上的手柄提供支持.
_________________
redflag 3.0 desktop!
返回页首
llc
公社软件部部长
加入于: Jun 16, 2002
文章: 1017
位置: 广东-江门-台山
 发表于: 2002,星期六 九月 14, 9:51 pm    发表主题:
----------------------------------------------------------------------------
----
唯一的缺陷是:
启动了驱动后,玩游戏时会出现速度下降(帧速减小)的现象!
这应该是此版本手柄驱动的bug之一,在win下的驱动虽然也有这个问题,但不明显;只有期
待下一个版本的驱动了,这个已经是最新的了...[/i]
_________________
redflag 3.0 desktop!
--
※ 来源:·幽幽黄桷兰 bbs.cqupt.edu.cn·[FROM: 172.18.92.47]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店