詳解:tslib移植arm全過程
環境:Ubuntu,交叉編譯器,tslib-1.4
移植步驟:
第一步:獲取tslib的原始碼
使用git獲取tslib原始碼:
$ git clone https://github.com/15903016222/tslib.git
$ cd tslib
第二步:編譯,安裝tslib-1.4
注意:在編譯tslib之前確認自己的電腦上已經安裝了automake autoconf libtool libsysfs-dev軟體
sudo apt-get install automake autoconf libtool libsysfs-dev
開始編譯,安裝
0. clean原始碼
./autogen-clean.sh
1. 自動配置
./autogen.sh
注意:如果沒有安裝automake autoconf,則這一步會報以下錯誤
如果沒有安裝libtool libsysfs-dev,則會報以下錯誤
[email protected]:~/project/tslib$ ./autogen.sh configure.ac:24: error: possibly undefined macro: AC_DISABLE_STATIC If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:25: error: possibly undefined macro: AC_ENABLE_SHARED configure.ac:26: error: possibly undefined macro: AC_LIBTOOL_DLOPEN configure.ac:27: error: possibly undefined macro: AC_PROG_LIBTOOL autoreconf: /usr/bin/autoconf failed with exit status: 1
configure.ac:17: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
2. 為configure做準備, 防止編譯時出錯
echo "ac_cv_func_malloc_0_nonnull=yes" > tmp.cache
3. 配置
./configure --host=arm-linux --cache-file=tmp.cache --prefix=/opt/project/tslib CC=/stuff/bitbake/bin/tmp/sysroots/i686-linux/usr/armv7a/bin/arm-linux-gcc
--prefix=/opt/project/tslib // 安裝路徑 (注意一定要寫自己的安裝路徑)
CC=/stuff/bitbake/bin/tmp/sysroots/i686-linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi-gcc // 指定編譯器的絕對路徑(注意:必須是絕對路徑,否則報錯) (注意一定是你交叉編譯器的arm-linux-gcc的絕對安裝路徑)
4. 編譯 安裝
make && make install
如果你的安裝路徑需要許可權,可以使用下邊的命令
sudo make install
這一步也可能出錯,對於一些編譯器可能會出錯如果一直報 以下錯誤
tslib line 8968: arm-angstrom-linux-gnueabi-gcc: command not found
install: error: relink `linear.la' with the above command before install
說明你的3. ./configure 沒有正確配置CC這個環境變數第三步:配置,測試移植的tslib
測試移植網上有很多,以下參考:
將安裝路徑下的整個tslib資料夾,下載至開發班的上,我存放的路徑為/usr/local
$ vi /etc/profile
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
其中,TSLIB_ROOT更換為自己實際存放的路徑;
另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO這兩項需要檢視自己的板子的觸控式螢幕裝置對應/dev/input/下那個檔案
測試:
重啟開發板
使用ts_calibare 測試觸控式螢幕是否可以校準即可
tslib移植,測試參考網址:http://blog.163.com/zhuandi_h/blog/static/180270288201222310291262/
相關推薦
詳解:tslib移植arm全過程
環境:Ubuntu,交叉編譯器,tslib-1.4移植步驟:第一步:獲取tslib的原始碼使用git獲取tslib原始碼:$ git clone https://github.com/15903016222/tslib.git $ cd tslib第二步:編譯,安裝tslib
技術詳解:實現互動直播全過程
本文主要整理互動直播中各端的邏輯,重點是與前端相關的教師端IM的部分和Web/Wap學生端。希望通過這份整理,對於前端在維護時可以儘快的理解互動直播的流程,提高專案的可維護性;對於客戶端和教師端來說,可以瞭解到前端提供的介面和訊息的實現。也能提高對整個請麥過程的理解,便於聯調
ThinkPHP函數詳解:F方法
過濾 thinkphp 子目錄 讀取 數據緩存 文件 快速 由於 寫入 我們已體味了ThinkPHP中的S編制的用法,F編制其實是S編制的一個子集功用,僅用於復雜數據緩存,而且只能支撐文件方式,不支撐緩存有用期,由於采取的是PHP前往編制,所以其效率較S編制較高,是以我
【轉載】瀏覽器緩存詳解:expires cache-control last-modified
導致 lang -c csdn 判斷 屬性 lan -m load 最近在對CDN進行優化,對瀏覽器緩存深入研究了一下,記錄一下,方便後來者 畫了一個草圖: 每個狀態的詳細說明如下: 1、Last-Modified 在瀏覽器第一次請求某一個URL時,服務器端的返回
PHP面向對象詳解:繼承、封裝與多態
gets key copy nes col 成員變量 ret 封裝 文字 首先,在解釋面向對象之前先解釋下什麽是面向對象? [面向對象]1、什麽是類? 具有相同屬性(特征)和方法(行為)的一系列個體的集合,類是一個抽象的概念2、什麽是對象?從類中拿到的具有具體屬性值得個體,
ES6的箭頭函數詳解:
() nbsp console set 箭頭 settime argument style 生成 箭頭函數是ES6中新增一個函數表達形式,它是對函數的一種簡化ES6允許使用“箭頭”(=>)定義函數。 Eg: var f = v => v; 等同於之前 var f
Spring Boot 配置文件詳解:Properties和YAML
列表 config 其他 操作系統 des num mat 變量 onf 一.配置文件的生效順序,會對值進行覆蓋: 1. @TestPropertySource 註解 2. 命令行參數 3. Java系統屬性(System.getProperties
redis 下key的過期時間詳解 :expire
編寫 抽樣 通過 字符串 n) 開發包 有序集合 memcache jedis Redis是一個開源的Key-Value數據緩存,和Memcached類似。 Redis多種類型的value,包括string(字符串)、list(鏈表)、set(集合)、zset(sort
PHP函數詳解:call_user_func()使用方法
func instead 實例 div style bsp color can this call_user_func函數類似於一種特別的調用函數的方法,使用方法如下: <?php function nowamagic($a,$b) { echo
15年資深架構師詳解:一個大型互聯網公司的微服務轉型實踐
微服務 架構 單片服務 微服務是一個比較大的話題,基於我的過往經歷,本文將以 Netflix 為例,分享一個大型互聯網公司如何從一個 Monolithic 的 APP 成功轉型到微服務。文章主要涉及微服務的產生歷史,應用場景,與單片服務區別,微服務帶來的技術、企業組織結構等方面挑戰,以及如何合
IP地址的分類及範圍詳解:A、B、C、D、E五類是如何劃分的?
網絡地址分類 IP地址分類 IP地址劃分 IP地址類型 IP地址範圍 IP地址的分類及範圍詳解:A、B、C、D、E五類是如何劃分的?最近在考證,有一項內容是網絡IP地址劃分的題目,一直從事IT的猛然發現回答這個問題時產生了懷疑,於是習慣百度了一下,發現網上廣泛流傳的有關IP地址劃分的文章居
dva.js 用法詳解:列表展示
def bpa clas 開發 cal switch lan 點擊 code 本教程案例github:https://github.com/axel10/dva_demo-Counter-and-list/tree/master 這次主要通過在線獲取用戶數據並且渲染成列
zabbix_agentd.conf zabbix客戶端配置文件的相關參數的詳解:(二)
Zabbix客戶端 配置文件zabbix_agentd.conf zabbix客戶端配置文件的相關參數的詳解:Aliaskey的別名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用戶ID
UX術語幸運飛艇源碼下載詳解:任務流,用戶流,流程圖以及其它全新術語
希望 演示 重要 職位 flow 重新 生成 img 所有 用戶幸運飛艇源碼下載【大神源碼論壇】dsluntan.com 【布丁源碼論壇】budingbbs.com 企娥3393756370 體驗擁有一長串專業的術語和可交付內容。當在線查看UX相關職位描述時,所羅列的這類
Sql 註入詳解:寬字節註入+二次註入
.com 主動 一個 from 攻擊 過濾 分享圖片 size 就是 sql註入漏洞 原理:由於開發者在編寫操作數據庫代碼時,直接將外部可控參數拼接到sql 語句中,沒有經過任何過濾就直接放入到數據庫引擎中執行了。 攻擊方式: (1) 權限較大時,直接寫入webshell
第20講 | 區塊鏈項目詳解:比特股BTS
代理服 work 直接 使用 代碼 for doc 地址 投資者 前面兩篇我們都聊了智能合約的話題,智能合約可以說是當下區塊鏈最熱的概念了,在多數人眼裏,沒有智能合約的區塊鏈價值幾乎就大打折扣。 那麽說,實際上是不是這樣呢,我們今天就來聊聊一個並沒有開放式智能合約
magento快取系列詳解:實施正確的快取策略及不同快取結構分析
本篇文章主要介紹一下在maegnto裡cache(File System, APC, Memcached, Redis)的使用,及在不同的伺服器環境中改怎麼使用讓其效能達到最佳。 理解magento的Two-Level Caching magento預設使用zend framework的
詳解:Linux Chrony 設置服務器集群同步時間
mar led ack www 我們 num lld 註意 orm 導讀: Chrony是一個開源的自由軟件,像CentOS 7或基於RHEL 7操作系統,已經是默認服務,默認配置文件在 /etc/chrony.conf 它能保持系統時間與時間服務器(NTP)同步,讓時間
詳解:(cron , crontab , anacron)
users 文件的 世紀 文件包含 尋找 簡單 win delete 納秒 導讀: 人類把時間做了切割,想象一條筆直的線永遠向前,本來這條直線上什麽都沒有,但是人類根據時間的長短(單位)在這條直線上做了密密麻麻的標記(世紀-年-月-日-時-分-秒-納秒......),通過
大資料篇:Spark入門第一個Spark應用程式詳解:WordCount
任務要求 編寫一個Spark應用程式,對某個檔案中的單詞進行詞頻統計。 備註:本文spark的根目錄名:spark-1.6.3-bin-hadoop2.6 #準備工作 cd /usr/local/spark-1.6.3-bin-hadoop2.6 mkdir mycode