为了解决Tiny210电容屏失效问,让10年前的板子焕发第二春,故决定为其移植Tslib。
1.登录GitHub找到Tslib下载地址:GitHub - libts/tslib: Touchscreen access library
2.切换版本到1.21
3.复制下载链接到Ubuntu
4.下载完成进入Tslib目录
5.获取当前用户的所有分支,这个命令通常在Git版本控制系统中使用。
6.列出当前用户的所有标签,这个命令通常在Git版本控制系统中使用。
7.切换到1.21分支
前一个1.21为对这个分支的命名,后一个为找到的1.21分支
8. 查看切换后的分支
9.查看当前交叉编译工具版本
10.运行autogen.sh脚本
11.安装pkg-config工具
12.安装完pkg-config后再次编译源码并配置交叉编译器工具和tslib的编译安装路径
./configure --host=arm-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix= /opt/tslib/arm-linux-210-tslib
--cache-file=arm-linux.cache 这个选项用于指定Autoconf生成的缓存文件的名称和位置。缓存文件用于存储已经检查过的条件信息,以便在下次编译时直接使用,而不需要再次进行检查。在这个例子中,缓存文件名为arm-linux.cache
,并将其保存在当前目录下。这样,在下次编译时,Autoconf可以直接从缓存文件中读取条件信息,而不需要重新检查。
ac_cv_func_malloc_0_nonnull=yes 这是一个条件检查,用于检查系统是否支持malloc_0_nonnull
函数。malloc_0_nonnull
是一个在C语言标准库中定义的函数,它用于分配内存并确保返回的指针不为NULL。如果系统不支持这个函数,那么在编译过程中可能会出现错误。通过将ac_cv_func_malloc_0_nonnull
设置为yes
,告诉Autoconf系统支持这个函数。
arm-linux-gnueabi 为交叉编译工具的名字
/opt/tslib/arm-linux-210-tslib为交叉编译后的安装路径。
13. 编译Tslib源码
14.安装Tslib
15.检查生成库文件的格式
图中显示为ARM,表明交叉编译成功,若为X86则需要重新配置交叉编译环境。