主题 : mini2440 tslib1.4移植 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 102526
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2014-04-03
最后登录: 2018-02-08
楼主  发表于: 2014-11-14 18:51

 mini2440 tslib1.4移植

tslib版本:tslib-1.4
交叉编译器版本: arm-linux-gcc 4.4.3
操作系统平台:  ubuntu12.04
开发板平台: mini2440

tslib下载地址:
http://www.aiothome.net/read.php?tid-16105.html
经测试其他的tslib库也可以:
http://download.csdn.net/download/liuqiqi677/3177449


移植过程:
1,生成配置文件:
./autogen.sh

2,产生一个cache文件arm-linux.cache,欺骗configure,避免undefined reference to 'rpl_malloc'错误:
echo ac_cv_func_malloc_0_nonnull=yes>arm-linux.cache


3,配置:
./configure CC=/home/zhs/share/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc \
CXX=/home/zhs/share/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ \
--host=arm-linux --cache-file=arm-linux.cache --prefix=/home/zhs/mini2440/tslib

4,编译和安装
make
make install

5,将tslib文件夹拷贝到开发板/usr/local中。

6,设置环境变量开发板/etc/profile文件中:
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

export TSLIB_TSDEVICE=/dev/touchscreen-1wire    指定触屏设备 可以通过cat /dev/touchscreen-1wire来测试触屏设备(点击触屏有反应)
export TSLIB_TSDEVICE=/dev/input/event0    指定触屏设备
export TSLIB_CALIBFILE=/etc/pointercal    指定触摸屏校准文件 pintercal 的存放位置
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf    指定 TSLIB 配置文件的位置
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts    指定触摸屏插件所在路径
export TSLIB_FBDEVICE=/dev/fb0    指定帧缓冲设备
export TSLIB_CONSOLEDEVICE=none    设定控制台设备为 none ,否则默认为 /dev/tty ,这样可以避免出现“  open consoledevice: No such file or directory KDSETMODE: Bad file descriptor ” 的错误
LD_LIBRARY_PATH 指定链接库的路径

7,修改tslib/etc/ts.conf的内容:
module_raw friendlyarm-ts-input

8,将友善之臂跟文件系统中/rootfs_qtopia_qt4/usr/local/lib/ts文件夹中的friendlyarm-ts-input.so拷贝到开发板文件系统相应目录。
usr/local/tslib/lib/ts

9,触摸屏校准:
./usr/local/bin/ts_calibrate
[ 此帖被huishun1314在2014-11-14 19:01重新编辑 ]
级别: 新手上路
UID: 102526
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2014-04-03
最后登录: 2018-02-08
1楼  发表于: 2014-11-14 18:58
第8步是最关键的,我网上查了几天的资料才偶然发现的。不敢私藏,共享出来。
级别: 新手上路
UID: 105379
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2014-06-22
最后登录: 2015-06-02
2楼  发表于: 2014-11-16 22:37
怎么将将tslib文件夹拷贝到开发板/usr/local中呢?我将其打包之后,发到开发板,解压时显示:tar: short read,找了半天也没找到原因,楼主,求解释啊?
级别: 新手上路
UID: 102526
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2014-04-03
最后登录: 2018-02-08
3楼  发表于: 2014-11-17 16:08

 回 2楼(fundyqds) 的帖子

我是直接将pc上的文件夹挂载到 开发板上的。
级别: 新手上路
UID: 102526
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2014-04-03
最后登录: 2018-02-08
4楼  发表于: 2014-11-17 16:10

 回 2楼(fundyqds) 的帖子

通过nfs 挂载的

nfs服务器安装:

sudo apt-get install nfs-kernel-server


环境变量:

sudo vi /etc/exports


添加以下内容:

/home/zhs/armMount *(rw,sync,no_root_squash)
*代表允许所有的网络段访问

rw是可读写权限;

sync是资料同步写入内存和硬盘;

来访的root用户保持root帐号权限;



最后重新扫描配置文件,使用户修改/etc/exports配置文件不必重启NFS服务:
sudo exportfs –ra

重启服务器:
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart

查看服务目录和权限
showmount -e

查询结果:


Export list for ubuntu:
/home/zhs/armMount *
/opt               *


测试 NFS(ubuntu上)

sudo mkdir /mnt/nfs

挂载:

sudo mount -t nfs 192.168.0.194:/home/zhs/armMount  /mnt/nfs

取消挂载:

sudo umount /mnt/nfs

挂载到开发板:(在开发板上运行命令)

mount -t nfs -o nolock 192.168.0.194:/home/zhs/armMount /mnt/nfs -o nolock,proto=tcp,nfsvers=3

配置其他机器对主机的访问:

sudo gedit /etc/hosts.deny

后面添加:              

# NFS DAEMONS
portmap:192.168.0.
lockd:192.168.0.
mountd:192.168.0.
rquotad:192.168.0.
statd:192.168.0.

sudo gedit /etc/hosts.allow
在后面添加:

# NFS DAEMONS
portmap: 192.168.0.
lockd: 192.168.0.
rquotad: 192.168.0.
mountd: 192.168.0.
statd: 192.168.0.
级别: 新手上路
UID: 105379
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2014-06-22
最后登录: 2015-06-02
5楼  发表于: 2014-11-18 16:46
哦,原来通过挂载NFS系统来实现啊,如果将根文件系统直接烧到开发板之后,该怎么弄呢?