免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1079 | 回复: 0
打印 上一主题 下一主题

arm-linux学习笔记之minigui移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-03 17:13 |只看该作者 |倒序浏览

               
                                    
                                       
                                
                                    minigui-1.6.10在s3c2410平台的移植
开发板:atmel9263
CPU:at9263
linux-2.6.26
fs:nfs
LCD:TFT320 X 240
PC:ubuntu 8.10
(一)准备工作
下载软件包
libminigui-1.6.10.tar.gz
mg-samples-1.6.10.tar.gz
minigui-res-1.6.10.tar.gz
mg-samples-str-1.6.2.tar.gz
在/home/arm/创建一个minigui的目录,然后把这些载在的软件包放在该目录下,在分别解压缩。再在/home/arm/minigui下创建一个miniguitmp的目录,用于安装编译以后的库文件。
(二 )编译 libminigui
首先修改configure文件,在文件的开头加入交叉编译的路径
CC=arm-9tdmi-linux-gnu-gcc
CPP=arm-9tdmi-linux-gnu-cpp
LD=arm-9tdmi-linux-gnu-ld
AR=arm-9tdmi-linux-gnu-ar
RANLIB=arm-9tdmi-linux-gnu-ranlib
STRIP=arm-9tdmi-linux-gnu-strip
然后执行
[root@localhost libminigui-1.6.10]# ./configure --prefix=/home/arm/minigui/miniguitmp/ \
--build=x86_64-linux \
--host=arm-unknown-linux \
--target=arm-unknown-linux
[root@localhost libminigui-1.6.10]# make
[root@localhost libminigui-1.6.10]# make install
这个过程基本上不会有什么错误的
执行make install的时候会把编译以后的资源安装到/home/arm/minigui/miniguitmp中,在这之下会有etc  include  lib  usr
几个目录产生。
¥#%#¥%说明:由于这是之后作的记录所以这一步产生的目录是include  lib  usr这三个还是四个忘记了,网上一堆说明
然后进入/home/arm/minigui/miniguitmp/lib,执行
[root@localhost lib]# ldconfig
libminigui的交叉编译工作就算完成了。
(三)安装minigui-res比较简单
进入/home/arm/minigui/minigui-res-1.6.10目录
修改config.liux文件的第11行
TOPDIR=/home/arm/minigui/miniguitmp
保存
然后[root@localhost minigui-res-1.6.10]# make install
资源文件被安装到/home/arm/minigui/miniguitmp/usr/local/lib/minigui/res下面有这几个东西
bmp  cursor  font  icon  imetab
(四)修改/home/arm/minigui/miniguitmp/etc/MiniGUI.cfg文件
[system]                                                                     
# GAL engine and default options                                             
gal_engine=fbcon                                                            
defaultmode=320x240-16bpp                                                   
                                                                             
# IAL engine                                                                 
#ial_engine=qvfb                                                            
#mdev=/dev/input/mice                                                        
ial_engine=console                                                           
mdev=/dev/mouse                                                              
mtype=IMPS2                                                                  
                                                                             
[fbcon]                                                                     
defaultmode=320x240-16bpp                                                   
                                                                             
[qvfb]                                                                       
defaultmode=320x240-16bpp                                                   
display=0            
一般就上面几个地方要修改
然后把MiniGUI.cfg下载到开发板的/etc/目录下
(五)下载minigui的运行库
    把PC上/home/arm/minigui/miniguitmp/lib中所有的运行库下载到开发板上的/usr/lib目录下;
在把PC上/home/arm/minigui/miniguitmp/usr/local/lib下的minigui目录整个下载到开发板的/usr/lib下面,到现在开发板上应该有这些东西了
在开发板的/usr/lib下面有
lib.tar.bz2               libminigui-1.6.so.10      libvcongui-1.6.so.10.0.0
libmgext-1.6.so.10        libminigui-1.6.so.10.0.0  libvcongui.a
libmgext-1.6.so.10.0.0    libminigui.a              libvcongui.la
libmgext.a                libminigui.la             libvcongui.so
libmgext.la               libminigui.so             minigui
libmgext.so               libvcongui-1.6.so.10
其中minigui是目录
在开发板的/etc下面应该有MiniGUI.cfg文件存在。
现在准备工作已经已经完成,下面应该移植一些演示程序。
(六)编译mg-samples-1.6.10或者mg-samples-str-1.6.2
这两个东西编译的时候比较不好整,偶太菜,费劲半天才编译通过,事后作的记录可能遗漏。
1、进入/home/arm/minigui/mg-samples-1.6.10
修改configure.in第30行,这一步有没有用说不清楚,改成下面的样子
AC_CHECK_HEADERS($prefix/include/minigui/common.h, have_libminigui=no, foo="bar")
2、修改configure文件
在文件的最前面加上交叉编译的工具
CC=arm-9tdmi-linux-gnu-gcc
CPP=arm-9tdmi-linux-gnu-cpp
LD=arm-9tdmi-linux-gnu-ld
AR=arm-9tdmi-linux-gnu-ar
RANLIB=arm-9tdmi-linux-gnu-ranlib
STRIP=arm-9tdmi-linux-gnu-strip
3、运行configure进行配置
[root@localhost mg-samples-1.6.10]# ./configure --prefix=/home/arm/minigui/miniguitmp/ \
> --build=x86_64-linux \
> --host=arm-unknown-linux \
> --target=arm-unknown-linux
……
……
最后还是有
configure: WARNING:
        MiniGUI is not properly installed on the system. You need
        MiniGUI Ver 2.0.0 or later for building this package.
        Please configure and install MiniGUI Ver 2.0.0 first.
这个提示,不管他。
4、修改src/Makefile文件
找到
CC = arm-9tdmi-linux-gnu-gcc
改成
CC = arm-9tdmi-linux-gnu-gcc -I/home/arm/minigui/miniguitmp/include -L/home/arm/minigui/miniguitmp/lib
CFLAGS = -g -O2 -`Wall -Wstrict-prototypes -pipe
改成
CFLAGS =-O2
LIBOBJS =  
改成
LIBOBJS = -lminigui -lmgext -lm  -lpthread
LIBS =  -lminigui
改成
LIBS =  -lminigui -lmgext -lm  -lpthread
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
改成
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -lminigui -lmgext -lm  -lpthread
(上面的有一步无用)¥%¥#……%¥……%丫的。
这样基本上可以了,mginit.c文件里面有地方修改后也可以编译完成的,但是有./configure生成的Makefile,已经把这个地方注销掉了。象这样,省得动手修改。
am__EXEEXT_2 =
#am__EXEEXT_3 = scrnsaver$(EXEEXT) mginit$(EXEEXT)
如果想要一起编译这个断,需要修改mginit.c源文件,暂时不说
5、进入/home/arm/minigui/mg-samples-1.6.10/src
运行make
…………
然后在res目录下会有很多可执行文件。
(七)下载演示程序
吧/home/arm/minigui/mg-samples-1.6.10/src下的所有文件和目录打包成一个mg.tar.bz2的文件
下载到开发板的/usr/local/mg下面没有这个目录自己“贱”一个。
然后解压缩
在开发板上解压缩tar -xvzf mg.tar.bz2
然后删除*.c和Makefile文件
rm *.c
现在可以运行minigui的演示程序了。
(八)问题
1、
可能会有这个问题:
GAL: Init GAL engine failure: fbcon.
GDI: Can not initialize graphics engine!
我也出现了,解决方法忘记了,网上查的,不是禁止newgal,就是修改源代码,还得上网查。
2、tty0的问题
保证tty0有效
不行的话就自己创建一个tty0节点:
crw-r--r--    1 root     root       4,   0 Jan  1 00:02 tty0
3、鼠标的问题
我的是usb鼠标。
3.1要支持鼠标首先要在内核中加入驱动支持:
#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT_POWERBOOK=y
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
CONFIG_PANTHERLORD_FF=y
CONFIG_THRUSTMASTER_FF=y
CONFIG_ZEROPLUS_FF=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
大概这个样子
3.2 然后创建节点
查看/proc/bus/input/devices文件
#cat /proc/bus/input/devices
I: Bus="0003" Vendor="15d9" Product="0a33" Version="0110"
N: Name="USB Mouse"
P: Phys="usb-s3c24xx-1/input0"
S: Sysfs="/class/input/input0"
U: Uniq=
H: Handlers="mouse0"
B: EV="17"
B: KEY="70000" 0 0 0 0 0 0 0 0
B: REL="103"
B: MSC="10"
确定已经鼠标已经连接上了
然后查看/proc/bus/input/handler
# cat /proc/bus/input/handler
N: Number="0" Name="kbd"
N: Number="1" Name="mousedev" Minor="32"
看到Number=1 Name="mousedev" Minor="32这个东西了"
# cat /proc/devices
Character devices:
10 misc
13 input
29 fb
到/dev下创建
#mknod /dev/input/mouse c 13 32
crw-r--r--    1 root     root      13,  32 Jan  1 00:25 input/mouse
其中13是设备号的高位 32低位上面的Minor=32和13 input定的,不小的是不是这么会事情,反正鼠标可以工作了.
可以用下面的命令测试一下:
# cat /dev/input/mouse
??(?(?(?(8??8??8??8??8??8??8??8?
?(
这一堆乱码就是移动鼠标的时候输出的东西,说明鼠标可以工作了。
创建一个符号连接:
ln -s /dev/input/mouse  /dev/mouse
修改权限
chmod go+r /dev/mouse
chmod go+r /dev/input/mouse.
这下运行minigui的时候有鼠标了。
还有遇到的问题:
如果鼠标无法使用。 可以修改如下
25 [system]
26 # GAL engine and default options
27 gal_engine=fbcon
28 defaultmode=240x320-16bpp
29
30 # IAL engine
31 ial_engine=console
32 mdev=/dev/mouse0
33 mtype=IMPS2
这个配置一定可用. 还要注意库的使用
参考:
事后作的记录,参考了一很多网页,现在搞不清楚,记得一个:
解决鼠标问题参考:
http://www.minigui.com/index.php?id=knowledge-base&no_cache=1&L=1&tx_drwiki_pi1%5Bkeyword%5D=%E5%94%AE%E5%90%8E%3AMiniGUI%20%E8%BF%90%E8%A1%8C%E5%8F%8A%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25572/showart_1770769.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP