Linux 下移植QT(1)---tslib 1.4.0移植

2022-11-06,,,

步骤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:

  修改如下。

 if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {
cal_fd = open (calfile, O_CREAT | O_RDWR, );
} else {
cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, );
}

  ①查找 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

Linux 下移植QT(1)---tslib 1.4.0移植的相关教程结束。

《Linux 下移植QT(1)---tslib 1.4.0移植.doc》

下载本文的Word格式文档,以方便收藏与打印。