您的位置:首页 > 产品设计 > UI/UE

移植MiniGUI的调试记录

2011-05-11 18:22 393 查看
将minigui移植到目标上:

1,复制libc,ld等工具到/lib中;

2,复制库文件

将库文件拷贝到/lib下,资源文件到/lib/minigui下,修改/usr/local/etc/Minigui.cfg将所有/usr/local/lib 替换成/lib

3,建立mknod fb c 29 0

/dev/input下建mknod mice c 13 63

Tslib交叉编译环境问题心得

Q1:在交叉编译TSLIB的时候出现了libtool:link: only absolute run-paths are allowed错误

解决方法:要修改/tslib/plugins/Makefile里面找rpath,找到将其注释并加上绝对路径。

找到:LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)

修改为:

LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd` (这个是顿号)

现象:

我在板子上运行./ts_test的时候,总是提示我:ts_open: No such file or directory?

这个问题曾经也折腾了我好久

在tslib的config选项中添加

--enable-inputapi=no

原因

(1)因为这个情况一般是你的触摸屏驱程不支持ioctl操作。

(2)更改相应的环境变量

export QWS_MOUSE_PROTO = TPanel:/dev/tp

export T_ROOT=/

export LD_LIBRARY_PATH=/lib

export TSLIB_CONSOLEDEVICE=none

export TSLIB_TSDEVICE=/dev/tp

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_PLUGINDIR=/plugins

老出现以下错误:

/demo/same # ./same

AttachSharedResource: No such file or directory

Error in step 7: Can not attach shared resource!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

原因是:Resource不完整重新编译一遍minigui

现象:

/demo/bomb # ./bomb

./bomb: relocation error: /lib/libminigui-1.3.so.3: undefined symbol: sem_init

/demo/bomb # cd ..

/demo # cd same/

/demo/same # ./same

./same: relocation error: /lib/libminigui-1.3.so.3: undefined symbol: sem_init

原因:

由于我重新编译了libminigui的库,所以mde-1.3.0也要重新编译

现象:

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`pthread_create'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`sem_destroy'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`sem_wait'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`sem_post'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`pthread_kill_other_threads_np'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`sem_init'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`sem_getvalue'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`pthread_join'

原因:

由于我重新编译了libminigui的库,所以编译mde-1.3.0时不能定位到新的/usr/local/arm/3.4.1/lib/gcc/arm-

linux/3.4.1/../../../../arm-linux/lib/libminigui.so上,

解决方法是重新配置mde-1.3.0, ./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux

prefix=/usr/local/arm/3.4.1/arm-linux

这样再次make就会顺利通过

现象:

/demo/notebook # ./notebook

Aborted

原因:

现象

(1)/demo/same # ./same

./same: relocation error: /lib/libminigui-1.3.so.3: undefined symbol: TT_Init_FreeType

(2)

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`TT_New_Glyph'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`TT_CharMap_First'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`TT_Set_Instance_Transform_Flags'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`TT_Load_Glyph'

原因:

libminigui要完全重新编译一次先make clean,再make,make install

现象

arm-linux-gcc -g -O2 -Wall -Wstrict-prototypes -pipe -D_REENTRANT -o notebook main.o -lmgext -lpthread -lminigui

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`ts_close'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`ts_read'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to

`ts_open'

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libminigui.so: undefined reference to `ts_fd'

collect2: ld returned 1 exit status

make[2]: *** [notebook] 错误 1

原因

编译时要加入链接库tslib

修改configure命令

./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux CFLAGS="-

L/usr/local/arm/3.4.1/arm-linux/lib -lts"

现象:

/demo/same # ./same

IAL: Can not open mouse-like device!

IAL: Init IAL engine failure.

DESKTOP: Low level event initialization failure!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

原因:

minigui的输入引擎文件初始化出现问题,dummy.c文件的InitDummyInput写的有问题open()函数有问题得重新修改

加入tslib后minigui,mde的编译选项

minigui的./config选项:./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux --

disable-galqvfb --disable-galecoslcd --disable-vbfsupport --prefix=/usr/local/arm/3.4.1/arm-linux CFLAGS="-

I/usr/local/arm/3.4.1/arm-linux/include -L/usr/local/arm/3.4.1/arm-linux/lib -lts"

mde的./config选项:./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux

CFLAGS="I/usr/local/arm/3.4.1/arm-linux/include -L/usr/local/arm/3.4.1/arm-linux/lib -lts"

移植到其他机子上时文件系统的改动:

(1)文件系统复制时dev/目录下的节点无法复制得自己重新创建才行

(2)若是minigui的系统话还得改/usr/local/etc/MiniGUI.cfg,得改成640*480的屏才行

(3)若加了tslib自校准库的话得改/etc/ts.conf改成:

module mousebuts

#module variance xlimit=50 ylimit=50 pthreshold=3

#module dejitter xdelta=1 ydelta=1 pthreshold=3

module linear

当我注释掉variance和dejitter的时候,光标会移动,但偏差较大,当我只注释variance时,仍然会随我移动,但当我都不注释回复

到默认的情况时,仍然不会随我移动。最后我把moudule mousebuts注释取消掉,光标又会随我移动了,并且效果比前面的都好。纳闷

了既然module mousebuts会直接影响成功与否,variance,为什么最初会默认注释掉?而且module mousebuts的作用我也不是很清楚



现象:

运行./ts_calibrate又出现了令人十分之郁闷的错误:

ts_config: Success

追查后应该是在打开ts_config中出现了错误(居然报Success,无欲至极)

在网上发现多是这个错误(这是1.4版本的错):

Couldnt load module input

No raw modules loaded

tsconfig: Success

我没有上面那两行的错误,不过应该是一样的错误原因

那么错误就定位在 ts_config 里。并且可以进一步确定是在加载插件模块时出的错

另一个原因就是你没有正确配置TSLIB_PLUGINDIR,tslib从你指定的目录中没有找到plugin需要的模块文件,

请检查你的路径和文件。

本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u3/99507/showart_1988727.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: