热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux2.6.22.6移植到S3C2440之通过NFS启动QT并添加USB鼠标支持

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

昨天通过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.


推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
author-avatar
mobiledu2502878137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有