设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> Linux专题 >> 内核研究 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
嵌入式uClinux的内核结构…
Linux操作系统的内核编译…
调整内核网络参数提高Li…
关于Linux操作系统的NTF…
重新编译Linux内核必要性…
关于Linux操作系统的内核…
Linux操作系统的内核模块…
让你的Linux内核重编译之…
轻松自如的装卸Linux系统…
Linux中用GDB与QEMU来调…
  编译内核以使其支持PS并口改装手柄         
编译内核以使其支持PS并口改装手柄
 

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文档。

Linux联盟收集整理

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-2-4 20:24:48
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持