tslib移植实践

移植准备

开发环境
PC系统:ubuntu-16.04-desktop-amd64.iso
交叉编译器:arm-Linux-gcc 4.4.3
硬件平台:mini2440开发板

文件系统镜像制作工具

mkyaffs2image-128M

镜像下载工具

MiniTools

tslib源码下载
https://github.com/libts/tslib/releases 下载 tslib-1.0.tar.gz

开始移植

开始前请先安装交叉编译工具arm-Linux-gcc 4.4.3 。

提示下面我们实践的是第一种方案:
【方案1:制作文件系统镜像+tslib移植】
可以直接移植到制作好的文件系统再打包成镜像下载到开发板。
【方案2:直接移植tslib到已有文件系统的开发板】
也可以把编译好的tslib直接移植到已经安装了文件系统的开发板。

1、解压 tslib-1.0.tar.gz ,进入解压后的路径

root@ubuntu:/opt/studyarm# tar xzf tslib-1.0.tar.gz
root@ubuntu:/opt/studyarm# cd tslib-1.0

2、配置、编译和安装tslib,安装成功后可以在/usr/tslib4arm下看到bin、lib、include等目录

root@ubuntu:/opt/studyarm# ./autogen.sh
root@ubuntu:/opt/studyarm# echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache
root@ubuntu:/opt/studyarm# ./configure --host=arm-linux --prefix=/usr/tslib4arm  --cache-file=arm-linux.cache
./autogen.sh执行出错(解决方法如下): ./autogen.sh: 4: ./autogen.sh: autoreconf: not found 上网查了查说是我的版本没有安装automake工具。 先后执行命令:

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

这时候再次执行./autogen.sh就不出错了。

3、在你要制作的根文件系统usr目录下创建tslib4arm目录,将PC机/usr/tslib4arm目录下的bin、lib和etc目录复制到你要制作的根文件系统的/usr/tslib4arm目录下

cd  /opt/rootfs/usr/tslib4arm/(进入你根文件系统下的/usr/tslib4arm/目录)
cp  /usr/tslib4arm/bin  /usr/tslib4arm/etc  /usr/tslib4arm/lib   ./ -dr     (复制bin、lib和etc)

4、创建tslib环境变量设置脚本,命名为ts_init,放入你创建的根文件系统的sbin/目录
注意是sbin目录,不是usr/sbin。

#!/bin/sh
export T_ROOT=/usr/tslib4arm                        #目录
export TSLIB_TSDEVICE=/dev/event0                     #触摸屏设备文件
export TSLIB_CALIBFILE=/etc/pointercal                #指定触摸屏校准文件pintercal的存放位置
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf             #tslib模块配置文件
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts/                #tslib插件库目录
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_FBDEVICE=/dev/fb0                        #framebuffer设备文件
echo "tslib init success!"

把ts_init添加入根文件系统etc/profile文件中,以便开机时加载这些环境变量。

root@ubuntu:/opt/studyarm# cd ./rootfs
root@ubuntu:/opt/studyarm/rootfs#vim  ./etc/profile
#在后面加入. ts_init,前面有个点是保证ts_init脚本中设置的变量成为全局变量。
. ts_init

5、修改你创建的根文件系统etc/目录下的ts.conf(由tslib编译自动生成的)

root@ubuntu:/opt/studyarm/rootfs#  vim ./etc/ts.conf
编辑ts.conf去掉module_raw  input 前面的注释,注意前面不能有空格,否则会报“Segmentation fault”错误。

6、打包镜像
将文件移植了tslib后的文件系统打包成镜像。

 root@ubuntu:/opt/studyarm# mkyaffs2image-128M  rootfs rootfs_tslib.img

7、下载运行
如下图所示这里只下载前面做好的文件系统,因为bootloader和Linux内核之前都已经下载到nandflash了。

在这里插入图片描述
8、在开发板上手动测试tslib是否移植成功

开发板连接串口终端,执行如下命令,可以看到xres = 240, yres = 320,说明移植成功了。

#cd /usr/tslib4arm/bin
#./ts_calibrate

在这里插入图片描述

如果执行#./ts_calibrate,出现Segmentation fault错误。
解决方法参考这篇文章:https://blog.csdn.net/u012577474/article/details/101387541

当执行#./ts_calibrate ,显示屏显示如下:
在这里插入图片描述
当执行#./ts_test ,显示屏显示如下:

在这里插入图片描述

9、设置开机自动启动校准程序
重新编辑上面的 ts_init脚本文件,在后面加入下面脚本:

if [ ! -e “${TSLIB_CALIBFILE}” ]; then
echo “start ts_calibrate!”
/usr/tslib4arm/bin/ts_calibrate
fi

重启开发板。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yfw&武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值