您的位置:首页 > 运维架构 > Linux

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

2009-10-11 21:57 423 查看
昨天通过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 (此页面有几处讨论信息挺 好的,看看不错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: