1. 程式人生 > >詳解:tslib移植arm全過程

詳解: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