我正在尝试根据Essential Linux设备驱动程序手册实现虚拟鼠标驱动程序.有一个用户空间应用程序,它生成坐标和内核模块.
1.)我编译了用户空间应用程序和驱动程序的代码.
2.)接下来我检查了dmesg输出并且,
input: Unspecified device as /class/input/input32
Virtual Mouse Driver Initialized
3.)sysfs节点在初始化期间正确创建(在/ sys / devices / platform / vms / coordinates中找到)
4.)我知道虚拟鼠标驱动程序(input32)通过检查以下内容链接到event5:
$cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name=””
P: Phys=
S: Sysfs=/devices/virtual/input/input32
U: Uniq=
H: Handlers=event5
B: EV=5
B: REL=3
5.)接下来我将GPM服务器连接到事件接口:gpm -m / dev / input / event5 -t evdev
6.)运行用户空间应用程序以生成虚拟鼠标的随机坐标,并使用od -x / dev / input / event5观察生成的坐标.
没有任何反应.为什么?
另外here作者提到应该停止gdm,使用/etc/init.d/gdm stop,但是当停止gdm时我得到“没有这样的服务”.
这是我构建和运行虚拟鼠标的完整脚本:
make -C /usr/src/kernel/2.6.35.6-45.fc14.i686/ SUBDIRS=$PWD modules
gcc -o app_userspace app_userspace.c
insmod app.ko
gpm -m /dev/input-event5 -t evdev
./app_userspace
Makefile文件:
obj-m+=app.o
内核版本:2.6.35.6
正如我之前所说,我可以通过od收到结果,但我通过你的程序收到了它
echo 9 19> / SYS /设备/平台/ virmouse / vmevent
得到:
时间1368284298.207654类型2代码0值9
时间1368284298.207657类型2代码1值19
时间1368284298.207662类型0代码0值0
所以现在的问题是:X11出了什么问题?我想强调,我在两个不同的发行版Ubuntu 11.04和Fedora 14下尝试了这个代码.
也许这会有所帮助:在Xorg.0.log中,我看到以下内容:
[21.022](II)未指定输入驱动程序/标识符(忽略)
[272.987](II)config / udev:添加输入设备(/ dev / input / event5)
[272.987](II)未指定输入驱动程序/标识符(忽略)
[666.521](II)config / udev:添加输入设备(/ dev / input / event5)
[666.521](II)未指定输入驱动程序/标识符(忽略)