歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Tiny6410 移植tslib1.4

系統:Ubuntu 11.04

  編譯工具:arm-linux-gcc 4.3.2

  編譯目標:tslib1.4

  (1)安裝 arm-linux-gcc 4.3.2 ,

  (2)將tslib-1.4.tar.gz解壓到任一目錄

  (3)進入tslib目錄 cd tslib

  由於tiny6410的一線觸摸,所以需要改程序,照別人的:

  打開tslib/plugins/input-raw.c

  把其中的ts_input_read 函數改成如下:

  [cpp] view plaincopyprint? static int ts_input_read(struct tslib_module_info *inf,

  struct ts_sample *samp, int nr)

  {

  printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");

  struct tslib_input *i = (struct tslib_input*)inf;

  struct tsdev *ts = inf->dev;

  struct input_event ev;

  int ret = nr;

  int total = 0;

  unsigned long jjts;

  while(total

  {

  ret =read(ts->fd, &jjts,sizeof(jjts));

  //if (ret==-1) continue;

  if (ret==-1) return 0;

  samp->pressure=(jjts>>31)& 0x01;

  samp->x=(jjts>>16)& 0xffff;

  samp->y=jjts & 0xffff;

  samp++;

  total++;

  }

  ret=total;

  return ret;

  }

  特別注意:

  參照網上許多資料,上面講的都是if (ret==-1) continue;做了以後,發現觸摸屏能校准,但是運行qt程序時,光標能移動,但是點擊無效。所以改成

  if (ret==-1) return 0;問題解決。

  (4)安裝庫支持:

  sudo apt-get install autoconf automake libtool

  (5)export PREFIX=/opt/tslib 設置目標位置

  (6)./autogen.sh 用於生成configure腳本

  (7)echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache 產生一個cache文件arm-linux.cache,欺騙configure

  (8)CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache

  (9)make

  (10)make install

  編譯成功後在目標位置產生/bin、/etc、/include、/lib 4個文件夾

  (11)修改/opt/tslib/etc/ts.conf 文件,刪除其中內容,改為

  module_raw input

  module pthres pmin=1

  module variance delta=30

  module dejitter delta=100

  module linear


 第一行是tslib從linux的輸入設備讀取數據時需要用到的模塊,這裡指定的模塊為input,具體需要用到哪個模塊,需要參考其他數據。

  第二行的pthres為Tslib提供的觸摸屏靈敏度門檻插件。

  第三行的variance為Tslib提供的觸摸屏濾波算法插件。

  第四行的dejitter為Tslib 提供的觸摸屏去噪算法插件。

  第五行linear為Tslib提供的觸摸屏坐標變換插件。

  (12)將/opt下的tslib文件夾拷貝到arm文件系統的/opt下

  (13)設置環境變量腳本tslib.sh

  [java] view plaincopyprint? #!/bin/sh

  export TSLIB_ROOT=/opt/tslib

  export TSLIB_TSDEVICE=/dev/touchscreen-1wire

  export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal

  export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

  export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

  export TSLIB_CONSOLEDEVICE=/dev/tty

  export TSLIB_FBDEVICE=/dev/fb0

  (14)啟動arm板,命令行下執行腳本

  source tslib.sh

  (15)校准觸摸屏

  cd /opt/tslib/bin

  ./ts_calibrate

  會出現校准畫面,完成後生成pointercal 文件

  (16)鏈接

  ln -s /opt/tslib/etc/pointercal /etc/pointercal

  至此,tslib1.4移植完成

Copyright © Linux教程網 All Rights Reserved