关于usb鼠标键盘驱动的问题,请xtang和各位高手帮忙!

由comqute帖子里的指导:
devu-ohci
waitfor /dev/usb
devu-mouse
waitfor /dev/usbmouse0
devu-kbd
waitfor /dev/usbkbd0
devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0
驱动usb键盘鼠标,很成功。然而我将其写到rc.d的rc.local文件里,重起系统,执行到最后一句,显示:
/etc/system/sysinit:/etc/rc.d/rc.local:devi-hirun:notfound
然后进入photon界面:在terminal重新输入:
devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0
才能驱动键盘鼠标。
然而我所用的控制机器只有usb接口,必须用usb驱动鼠标键盘。请大家帮忙,十万火急!!!

找不到文件嘛,把全路径写出来就是了,如:
/usr/photon/bin/devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0

谢谢nakeyfish的热心帮助!
可是我按照您的建议添加了路径名还是不行,提示:
PhOpen at"scr/hardware/devi/lib/photon.c’’ 275 no such file or directory

我怎样才可以在photon界面启动后再执行:
devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0
也就是QNX系统初始化启动过程的文件在哪儿,我可以在系统启动poton后添加启动鼠标键盘的语句:devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0。
请高手帮忙啊!!!

If you have a $HOME/.ph/phapps script file, Photon launches the executables listed in this file. This is a good place to put applications that you want to start each time Photon boots. This file must be executable (use chmod +x phapps).

再次向nakeyfish表示感谢!可是我找不到$HOME/.ph/phapps ,所以没有办法。而且,我如果驱动成功,以后只能远程操作了,那么如果重启系统我怎么用usb键盘输入用户名,然后进入photon。搞得头疼。
请帮助我啊!

问题的关键是devi-hirun是一个photon程序,它启动时需要photon,看看它的位置(/usr/photon/bin)你也可以猜想得到.

所以,如何在Photon启动时,同时启动devi-hirun呢? 可以试试 nakeyfish的办法, 在$HOME/.ph/phapps里加那一行/usr/photon/bin/devi-hirun …, 如果你没有这个phapps文件,自己建一个就好了.像 nakeyfish 讲得,这就是一个普通脚本文件,没什么特殊的,自己建的话,别忘了给它加 chmod a+x

还一个办法是,在启动photon前,设环境变量 PHINPUT.

export PHINPUT=’/usr/photon/bin/devi-hirun … ’

/usr/bin/ph

顺便提一下, Photon的启动程序/usr/bin/ph也只是一个脚本文件,有什么问题也可以去那里看一下.

非常感谢xtang的分析和指导!
果然在$HOME/.ph/,我建立一个文件phapps,将rc.local里的内容改写入phapps。重启系统后,usb键盘和鼠标使用OK!
这样做的好处是可以用usb键盘输入用户名,登陆后再驱动usb鼠标键盘。
现在有以下问题:
1、用root用户登陆可以,用其他用户名登陆不可以,看来是执行不到$HOME/.ph/phapps;
2、再次驱动usb键盘后,使用usb键盘的上下左右键不起作用,会弹出我们平时截屏时的窗口。
这两个问题还有待解决。请高手们给出更加方案。继续努力!

还想请教**xtang:**您给出另一个办法是,在启动photon前,设环境变量 PHINPUT.

export PHINPUT=’/usr/photon/bin/devi-hirun … ’

/usr/bin/ph

在什么地方添加?
:blush:

不同的用户一般对应不同的$HOME,可以用#echo $HOME来看看。

不明白再驱动是什么意思。你试一下XTANG的方法。写在rc.local上。
如果你的QNX只是直接安装,没有做裁减的话。系统会在起来之后运行/etc/rc.d/rc.sysinit, 它又会调用rc.local. 你有兴趣可以看看rc.sysinit的内容。

明白之后,加在什么地方,其实就看你喜欢了。

详细情况参考http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/user_guide/starting.html

谢谢nakeyfish的回复,可惜还是不行,应该说放在rc.local里肯定不行。我彻底晕了!
现在是我怎么能够在系统重启输入用户名并登陆时也能执行驱动usb鼠标键盘的语句。这个可能放在什么地方比较合适,针对任何用户名?

我说的再驱动指的是usb键盘QNX本来就能驱动,但是为了驱动usb鼠标执行io-usb -duhci时,usb键盘就不能用了只有重新驱动了。现在发现不使用Num-lock键,上下左右键就可以正常使用。

期待新的答复。向各位热心帮助的朋友表示感谢! :smiley:

我都无言了。不就是多加一句话嘛。唯一要求就是它们起来的顺序要正确。

在rc.local里写:

devu-ohci
waitfor /dev/usb
devu-mouse
waitfor /dev/usbmouse0
devu-kbd
waitfor /dev/usbkbd0

export PHINPUT='devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0 ’
/usr/bin/ph

或:
devu-ohci
waitfor /dev/usb
devu-mouse
waitfor /dev/usbmouse0
devu-kbd
waitfor /dev/usbkbd0

/usr/bin/ph
waitfor /dev/photon

devi-hirun msoft fd -d/dev/usbmouse0 -R fd -d/dev/usbkbd0




不可以吗?
不可以的话,用pidin a看看系统自动的和你想要的程序顺序有什么不同,再改改。另不知道需不需要加/ect/system/config/nophoton这个文件。你可以试试。加了rc.sysinit就不帮你自动运行photon。

你系统重启后,是直接进入图形介面的吗?还是先进入文本介面,你login后,再自己启动Photon的?

还有一个办法是把那一行/usr/photon/bin/devi-hirun 放到 /etc/system/trap/input 里面试试看。

谢谢二位的热心回复。
你们给出的各种方案我都试过了,还是不行。
Nakeyfish给出的命令pidin a很好用,能够看到系统初始化的各种运行情况。我很奇怪:
/usr/photon/bin/devi-hirun kbd fd -d/dev/kbd ps2 mousedev
这一语句是由哪里执行的呢?可以看到是在Photon之后执行的。应该说如果驱动usb鼠标的语句也放在和驱动ps2 mouse的地方,一定会成功的。可惜我还没有找到。请帮助我吧!? :cry:

/usr/bin/ph里有一段话,相信是用来检测输入设备的:

if test -z "$PHINPUT"; then
         phin -TPK -q && inputtrap start
else
         phin -TPK -q && $PHINPUT
fi

你可以看一下inputtrap的用法。
其中有一段话,大概是XTANG所说的意思:
Using a trapfile
To override the options that inputtrap uses by default, probe the devices, using the query option as described above, redirect the output to a file, and then edit the file. When the options are correct, move or copy the trapfile to /etc/system/trap/input.${HOSTNAME}.


看你喜欢改ph文件,还是增加input.${HOSTNAME}文件吧。

注:
#inputtrap query
得到的结果放到input.localhost(用echo看一下你的$HOSTNAME是什么)文件中,再修改。 把两句devi-hid合成一句放在文件中。

看这个脚本,应该你指定$PHINPUT的话,它就帮你直接运行。也不需要用intuttrap了。

结果系统在detect device处死了。
重装系统继续摸索中…

注:我的是QNX6.2,将QNX6.3中的usb驱动copy过来的。现在root用户已可以完成usb键盘鼠标的使用。

Nakeyfish,请继续给我好建议。Thanking…

太高兴了,终于搞定。这要多谢nakeyfish和xtang的不懈指点。
具体是在rc.local里加入:

if test /dev/photon;then
   io-usb -duhci -dehci -dohci
   waitfor /dev/io-usb/io-usb 30
   devb-umass
   devu-mouse
   waitfor /dev/usbmouse0
   devu-kbd
   waitfor /dev/usbkbd0
   export PHINPUT='/usr/photon/bin'
   /usr/bin/ph
   /usr/photon/bin/devi-hirun msoft fd -d/dev/usbmouse0
   /usr/photon/bin/devi-hirun kbd fd -d/dev/usbkbd0 msoft -R 
fi

希望对需要的人有帮助。

再谈谈不足之处:
1、鼠标的滚轴不能使用;
2、键盘的Numlock和上下左右键不能同时使用。否则用方向键时会弹出按PrtScr键时出现的对话框。
暂时发现的缺陷。

再次对热心的朋友表示感谢!

费了九牛二虎之力,却做的是无用功。悲伤啊!
用usb键盘鼠标延长器一试,发现鼠标只能上下移动不能左右移动。为什么?
wuwuwu… 我这么多天的努力啊!:cry:

我从网上下了个QNX6.3SP3试用版,发现系统启动时检测设备时就可以检测到usb硬盘、鼠标键盘等,而且使用延长器鼠标键盘可以正常使用,是因为对usb的驱动不一样吗?usb1.0,usb2.0?
怎样可以将这些移植到QNX6.2中呢?我试过将相关usb的文件烤过来可是不行?探索中。

为什么要移植到6.2啊?6.3.2都可以公开下载了。