网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 内核 > 文章  
编译内核以使其支持PS并口改装手柄
文章来源: www.linuxfans.org 文章作者: 未知 发布时间: 2007-01-08   字体: [ ]  
 

  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.1,执行make xconfig命令配置内核。

  先配置并口相关的:所标地方最好标配置成Y,选M应该也可以,但不推荐;这样就将并口支持功能内建于内核中,内核启动时会自动检测并口并让/dev/parport*起作用。

  3.配置input core support,将所标地方选M,这样将手柄功能配置成模块,当加载时,让/dev/js0这些起作用;虽然input core support的帮助文档中说是配置USB设备的,但实际上,这些是手柄设备通用的,不配置这个,则无法配置下一步(当初我就是没配置这个,结果搞了半天 joystice的选项都是灰色的,无法配置)----这步配置编译后将生成input.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,joydev和gamecon这三个模块,其中的gameport一般随声卡驱动自动加载。

  9.运行jstest /dev/js0(如果你的系统没有这个命令,请上www.rpmfind.net搜索joystick关键字,安装一个叫 joystickxxx.rpm的包就有了),这时你按一下手柄的按键,如果屏幕输出有相应的改变,那么,恭喜你,手柄驱动完全成功了!

  10.你现在可以运行一下一个模拟器,或其他游戏,用游戏中的手柄功能设置一下,就可以立即可以使用了;譬如epsxe这个模拟器,你可以用ammo joydevice pad driver这个插件,配置一下就可以用了,其中/dev/js0代表第一个手柄,/dev/js1代表第二个手柄,类推!经本人试验,凡是可以应用手柄的出程序都可以正常实现手柄的功能,效果一流!以后你可以将第8步中的modprobe那三行加载模块命令加入到rc.local中让它随启动自加载,则一进系统后就可以使用手柄了!或将它写成一个脚本,需要是再执行也可以!

  以上很多信息都是来自内核自带的说明文档,大家如果有什么不明白,请先阅读内核源码所在目录下Documentation/input目录下的joystick.txt和joystick-parport.txt文档。

  (参考链接: http://linux.ccidnet.com/art/741/20070105/994741_1.html)

 
推荐文章
·浅谈关于Linux系统内核的源代码
·打造适合自己Slackware机器的内
·自己动手做一个最小的Linux kern
·一个Linux爱好者的2.6.11内核编
·定制Linux系统内核,发挥Linux潜
·如何编译一个操作系统内核-Ubunt
·重新编译Linux操作系统的内核指
·快速编译Linux内核需要的模块方
·编译支持NTFS的Linux系统内核模
·配置、编译Linux系统内核的实用
·Linux操作系统的内核编译详细步
·Linux操作系统的内核编译内幕详
·Linux基础知识:内核编译-内核管
·教你一招,给Linux内核补IPVS补
 
 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·Linux中的Ramdisk与Init
·Linux 初始 RAM 磁盘(i
·一个Linux爱好者的2.6.1
·自己动手做一个最小的Li
·如何在Linux系统中添加
·如何编译一个操作系统内
·udev轻松上路
·Linux2.6内核驱动移植
相关文章
·快速编译Linux内核需要
·编译支持NTFS的Linux系
·配置、编译Linux系统内
·重新编译Linux操作系统
·如何编译一个操作系统内
·让你的Linux内核重编译
·Linux操作系统的内核编
·定制Linux系统内核,发
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统