请参阅:虚拟鼠标驱动程序和用户空间应用程序代码 和 一步一步 使用此驱动程序。
1.)我编译了用户空间应用程序和驱动程序的代码。
2.) 接下来,我通过检查
dmesg
输出来确认,并得到以下信息,
3.) sysfs 节点在初始化期间被正确创建(可以在input: Unspecified device as /class/input/input32
Virtual Mouse Driver Initialized
/sys/devices/platform/vms/coordinates
中找到)。4.) 通过检查以下内容,我知道虚拟鼠标驱动程序 (input32) 链接到 event5:
5.) 接下来,我将GPM服务器附加到事件接口:$ 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
gpm -m /dev/input/event5 -t evdev
。6.) 运行用户空间应用程序以为虚拟鼠标生成随机坐标,并使用
od -x /dev/input/event5
观察生成的坐标。但什么也没有发生。为什么呢? 此外,这里的作者提到应停止
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/devices/platform/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) 没有指定输入驱动程序/标识符(忽略)