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

昨天通过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?
?(
这一堆乱码就是移动鼠标的时候输出的东西,说明鼠标可