打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux 2.6.37内核移植到Mini2440(六)

Linux 2.6.37内核移植到Mini2440(六)

1.         触摸屏库Tslib移植

                   (1)      解压下载的tslib1.4压缩包

下载地址:

笔者这里没有使用tslib1.4。发现根本就无法测试。总是得不到按下信号。于是就下载了最新版的tslib。

#tar -zxvf kergoth-tslib-1.0-89.tar.gz   

#cd tslib- kergoth-tslib-1.0-89

                   (2)      配置tslib编译项

#./autogen.sh  (注意,就能执行一次,多执行的话可能linux重启后会崩溃很麻烦,要慎用哦)

./configure --prefix=/usr/local/tslib1.4/ CC=arm-linux-gcc \--host=arm-linux ac_cv_func_malloc_0_nonnull=yes --enable-inputapi=no

【注意】

./configure --prefix=/usr/local/tslib1.4/ CC=arm-linux-gcc \--host=arm-linux ac_cv_func_malloc_0_nonnull=yes --enable-inputapi=no

1)上面的—prefix后的/usr/local/tslib1.4/表示触摸屏tslib在目标板的路径!在编译安装的时候,先安装到宿主机的/usr/local/tslib1.4下,下载到开发板后依然要放在/usr/local/tslib1.4/下。

2)如果不添加ac_cv_func_malloc_0_nonnull=yes,则编译会出现错误:

undefined reference to `rpl_malloc'

                   (3)      编译tslib

#make

经过一小段时间的编译,如果没出错就OK了

                   (4)      安装tslib到宿主机的/usr/local/tslib1.4

#make  install

                   (5)      修改/usr/local/tslib1.4/etc/ts.conf

把第二行的#号去掉,但其前面不能有空格!!!

                   (6)      复制tslib到开发板的相同路径(下面的路径是NFS中开发板的根位置)

#mkdir   rootfs/usr/local                     //rootfs根据自己的根文件系统位置修改

#cp    -arf  /usr/local/tslib1.4/    /root/mywork/mini2440/rootfs/usr/local/

注意:/usr/local/tslib1.4/下的bin、lib、etc复制到开发板根文件系统下的/usr/local/tslib1.4下。

开发板中挂载linux:mount -t nfs -o nolock 192.168.40.101:/mnt /mnt/mywork/

注意,挂载时,linux中要关闭防火墙service iptables stop

重启nfs服务 service nfs restart

                   (7)      配置tslib环境变量

(1) 检查开发板中的触摸屏设备

一种方式,观察启动过程,寻找touchscreen 字样。

在开发板根文件系统的/etc/profile中加入(黄色):

#LD_LIBRARY_PATH     =/usr/lib:/lib                                   #库的默认位置

export TSLIB_ROOT=/usr/local/tslib1.4                    #触摸屏程序的根

export TSLIB_TSDEVICE=/dev/event0               #该行要根据触摸屏设备驱动生成设备号修改

export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH                 #TSLIB库添加到搜索列表中

export TSLIB_FBDEVICE=/dev/fb0                              #LCD设备

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts                  #插件目录

export TSLIB_CONSOLEDEVICE=none                                  #控制台设备

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf            #配置文件

export POINTERCAL_FILE=/etc/pointercal                          #鼠标校准文件

export TSLIB_CALIBFILE=/etc/pointercal                   #触摸校准文件

export QWS_MOUSE_PROTO='TSLIB:/dev/mouse0'                   #鼠标设备 

 

保存退出后,执行如下命令重新加载环境变量(开发板中):

#source  /etc/profile

                   (8)      触摸屏校准

校准的办法是进入开发板的tslib1.4文件夹:

#cd  /usr/local/tslib1.4/bin

执行校准:

进入开发板的:

#cd  /usr/local/tslib1.4/bin

执行:

#./ts_calibrate

这时候,屏幕上会出现“+”提示,用触摸笔点击“+”中心,随后会出现另外一个,同样的操作。依次完成5个“+”的校准。校准程序就会生成一个校准文件:/etc/pointercal

我的校准文件的内容如下:

-15552 96 1104588 32 21984 -19944688 -55648

该校准文件就是很多GUI程序使用的。比如QT等。

                   (9)      校准中错误的解决

           Segmentation fault

说明ts.conf中的行前面有空格。删除非注释行前的空格即可。

           No raw modules loaded.

则将ts.conf文件中的 #module_raw inpu 的注释符号去掉(左边不能留空格)。

           selected device is not a touchscreen I understand

将ts.conf文件中的#module_raw h3600 的注释符号去掉(左边不能留空格)。如果依然错误,就尝试其它行的。

           ts_config: No such file or directory

           ts_read: Invalid argument

说明ts.conf中的配置项错误,比如module_raw h3600行前加注释,修改为其他的等待。

2.          USB鼠标、键盘和扫描仪驱动

Linux-2.6.37内核对USB外设的支持是相当丰富的,并且已经包含了S3C2440的USB Host 驱动支持,因此只要配置一下内核就可以了,下面是各种USB 外设的详细配置步骤。

在内核源代码目录的终端输入:make menuconfig,依次选择如下子菜单项:

Device Drivers --->

[*] HID Devices --->

[*]USB Human Interface Device (full HID) support--->

键选中“USB Human Interface Device (full HID) support”,这样就配置好了USB键盘和鼠标项。这里的配置选项对应的内核源代码目录是:drivers/hid/usbhid,USB 键盘和条码扫描器的原理是一样的,因此它们的代码是相同的。重新编译进行测试即可。

#cd ../linux-2.6.37                              //返回内核根目录

删除linux-2.6.37下的zImage并将arch/arm/boot/zImage复制到linux-2.6.37

执行如下代码

./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'jyb365_linux' kernel_uImage

执行命令make

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Tap anywhere on the screen to continue
编译安装tslib1.4
Qt 4.6.0 嵌入式开发环境的搭建、移植
Tslib和Qt 4.8.4与在开发板上的移植
Qt5.8与触摸Tslib
Embedded Linux Multitouch with Qt, TUIO, and TSLIB 
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服