Linux 2.6.22.6移植到S3C2440之通过nfs启动qt并添加USB鼠标支持

2019-07-13 08:01发布

昨天通过nfs挂接qt成功,但是界面不知道为什么 老闪烁(暂不理会),qt显示个欢迎界面提示需要进行初次使用设置,就停这了,因为没有触摸屏,所以我今天 就先添加了usb鼠标支持。 qt相关的: 我的qt和文件系统是按照韦东山的<嵌入式linux应用开发完全手册>介绍编译制作的。在运行qt时参照了<天嵌科技出品-qt移植文档 >。 在nfs启动时遇到了如下问题: 1、
# could not open for writing `/root/Settings/locale_new.conf'
QCopChannel::send: Must construct a QApplication before using QCopChannel
【解决方案】:$HOME环境变量没有设置或者设置的位置不可写。
              更改/bin/qpe.sh文件中HOME=/  即可。原来HOME=/root些位置不可写,不知为啥...

2、
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0 【解决方案】:在这困了好久不知道如何解决,后来参照天嵌科技提供的带qt的文件系统进行修改,修改成功,主要修改了/etc目录、字体相关的东东和时区信息(其实是直接复制了/etc目录、/opt/qtopia/lib/fonts目录和提供时区信息的/usr/share目录) 之后qt启动起来了,显示了欢迎界面。      
usb鼠标移植方法如下:   我的内核是linux2.6.22.6,新内核的USB鼠标在内核drivers/hid/usbhid目录下,文件名:usbmouse.c,如果你需要对鼠标驱动修改就看这个文件,我的开发板暂时不需要对鼠标驱动定制特别的操作,于是在保证2410配置文件默认的情况下,make menuconfig然后选择 Device Drivers -->进入 选中HID Devices ---> 进入 USB HID Boot Protocol drivers ---> 看到 USB HIDBP Mouse (simple Boot) support,选中它,如果没有出现该项说明你在上边的步骤中选中了其他多余项,可以根据打开的kconfig文件中看到。 之后编译内核用它来启动qt。 之后usb鼠标就能用了,呵呵... (其实做完这些工作后鼠标还是不能用,之后我重启了一次电脑 再测试时居然能用了, 为什么会这样? 我也不知道为何,反正鼠标能用了...进行了一些初次使用设置后进入了qt界面了 )   后来参照如下进行了些许修改内容如下(直接复制啦哈...):   3、鼠标的问题
我的是usb鼠标。
3.1要支持鼠标首先要在内核中加入驱动支持:(执行完上面的内核配置后查看 .config文件中usb这一段,与这基本吻合,有些宏定义不相同因为内核版本不同)
#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT_POWERBOOK=y
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
CONFIG_PANTHERLORD_FF=y
CONFIG_THRUSTMASTER_FF=y
CONFIG_ZEROPLUS_FF=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
大概这个样子

3.2 然后创建节点
查看/proc/bus/input/devices文件
#cat /proc/bus/input/devices(启动qt后在终端执行这个命令能检查有没有连上鼠标)
I: Bus="0003" Vendor="15d9" Product="0a33" Version="0110"
N: Name="USB Mouse"
P: Phys="usb-s3c24xx-1/input0"
S: Sysfs="/class/input/input0"
U: Uniq=
H: Handlers="mouse0"
B: EV="17"
B: KEY="70000" 0 0 0 0 0 0 0 0
B: REL="103"
B: MSC="10"
确定已经鼠标已经连接上了
然后查看/proc/bus/input/handler
# cat /proc/bus/input/handler
N: Number="0" Name="kbd"
N: Number="1" Name="mousedev" Minor="32"
看到Number=1 Name="mousedev" Minor="32这个东西了"

# cat /proc/devices
Character devices:
 10 misc
 13 input
 29 fb

到/dev下创建(这一步我没做,我用的是mdev动态机制管理设备
#mknod /dev/input/mouse c 13 32

crw-r--r--    1 root     root      13,  32 Jan  1 00:25 input/mouse
其中13是设备号的高位 32低位上面的Minor=32和13 input定的,不小的是不是这么会事情,反正鼠标可以工作了.
可以用下面的命令测试一下:
# cat /dev/input/mouse
??(?(?(?(8??8??8??8??8??8??8??8?
?(
这一堆乱码就是移动鼠标的时候输出的东西,说明鼠标可以工作了。
创建一个符号连接:
ln -s /dev/input/mouse  /dev/mouse

修改权限
chmod go+r /dev/mouse
chmod go+r /dev/input/mouse.   参考页面: 1、http://blog.ednchina.com/woshishui1413801/188175/message.aspx 2、http://www.hzlitai.com.cn/bbs/viewthread.php?tid=11504   (此页面有几处讨论信息挺 好的,看看不错 )