步骤1:下载工具包
如下图
链接在此,点我。
步骤2:将tslib文件放入Linux虚拟机中,
步骤3:解压源码
tar -xvf tslib-1.4.tar
cd tslib-1.4
步骤4:执行autogen.sh脚本产生configure文件。
chmod 777 autogen.sh 赋予执行权限
./autogen.sh
若出现以下问题(绿字),说明是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是因为没有安装automake 工具。(没有连接网络时,需连接)
./autogen.sh: 4: autoreconf: not found
用一下命令即可。
sudo apt-get install autoconf automake libtool
步骤5:执行configure生成Makefile文件。
先查看交叉编译工具的全名
(好像有点尴尬,用已知的全名查询全名。。。。。不过可以输入前几个字母按tab键补全,会弹出全名)
$ echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
$ vi tslib-1.4/plugins/input-raw.c
$ ./configure --host=arm-cortex_a8-linux-gnueabi --prefix=/home/linux/tslib --cache-file=$ARCH-linux.cache
说明:
--host是指你的交叉编译器的前缀;例如:你的交叉编译器是arm-linux-gcc,则--host=arm-linux.如果是arm-none-linux-gnueabi-gcc
则--host=arm-none-linux-gnueabi
--prefix 是你执行make install 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录,这个目录不能和tslib源码目录相同;
步骤6:编译安装
$ make
有图示错误,这是因为open函数的语法不符合最新的gcc,解决方法是在/tests/ts_calibrate.c中加入open的第三个参数0777:
修改如下。
1 if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) { 2 cal_fd = open (calfile, O_CREAT | O_RDWR, 0777); 3 } else { 4 cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777); 5 }
①查找 grep calfile ./tests/ts_calibrate.c -n
由图可知,在文件226行左右修改。
sudo vim ./test/ts_calibrate.c
修改之后,重新make,问题不见了
$ make install
步骤7:将与安装目录同级下的tslib文件复制到挂宅文件系统中。
$ cp -a /home/linux/tslib/ /source/rootfs
步骤8:修改/rootfs/tslib下的etc目录中ts.conf文件
将第二行的#module_raw input修改成module_raw input,注意一定要顶格写,否则程序执行时会发生读取ts.conf错误每次重编译tslib并安装后,都要重新修改/etc/ts.conf
# cd tslib/etc/
# vi ts.conf 修改长如下。
步骤9:导出环境变量
在/source/rootfs/etc/profile中添加如下代码:
步骤10:开发板上运行/tslib/bin下的测试程序
# /tslib/bin/ts_calibrate