免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cwmould
打印 上一主题 下一主题

MOTO手机嵌入式LINUX使用感想 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2006-11-25 01:08 |只看该作者
原帖由 skynew 于 2005-12-22 21:53 发表
一般嵌入式linux手机都是用motavisa的编译器。
你可以利用minicom连接手机,用gcc -v看看编译器版本。
这个是我现在用的。gcc version 3.3.1 (MontaVista 3.3.1-7.0.2.0401382 2004-10-0

minicom连接通过候 ...

牛 你的手机带GCC?

论坛徽章:
0
52 [报告]
发表于 2006-11-25 01:11 |只看该作者
原帖由 rstevens 于 2005-12-31 13:33 发表
呵,这么多朋友对 moto 的 linux 手机感兴趣

那正好,我就简单介绍一下 moto linux 手机,并顺便做个小广告。

moto 的 E680, A760, A780,以及马上要上市的 A1200 都是 linux 手机,这些手机主要是由 moto北 ...

交流下

论坛徽章:
0
53 [报告]
发表于 2006-11-25 16:59 |只看该作者

回复 6楼 Solaris12 的帖子

robert love 是 novell 的

论坛徽章:
0
54 [报告]
发表于 2006-11-26 15:01 |只看该作者
我的手机是MOTO A780跟E680软件系统差不多,详细的系统信息如下:

QT/E: version 2.3.6
Linux kernel: version 2.4.20_mvicee30-manstone compiled by: (BJDC@LINUX)
LINUX: version:MontaVista Linux Consume Electronics Edition 3.0
           Model:Motorola Ezx Platform
          Vendor:Motorola

论坛徽章:
0
55 [报告]
发表于 2006-11-30 18:07 |只看该作者
moto已公布A1200/E680/A780源代码!制约娱六发展的瓶颈可以解除啦!源代码在 https://opensource.motorola.com下载
构造E680交叉编译环境

   这里我们使用很简单的一个构造方法。在http://lsb.blogdns.net/ezx-crosstool
下载ezx-crosstool-0.5.tar.bz2文件,这个工具是由个人整理的,去掉了与ARM
无关的很多脚本,并且限定了需要编译的文件版本,使用起来比较简单。

   本机新建了一个用户gcc,准备用于编译,root用户会提示禁止操作的。
   这里使用的是在/home/gcc目录下用gcc用户解压:
   bunzip2 ezx-crosstool-0.5.tar.bz2
   tar xvf ezx-crosstool-0.5.tar
   系统会自动生成/home/gcc/ezx-crosstool-0.5这个目录。


   在ftp://ftp.gnu.org/pub/gnu下载如下四个文件,且必须是如下版本:
   
   binutils-2.15.tar.bz2              一组开发工具,包括连接器、汇编器
                                      和其他用于目标文件和档案的工具
   gcc-3.3.6.tar.bz2                  GCC编译器的源代码
   glibc-2.3.2.tar.bz2                提供系统调用和基本函数库
   glibc-linuxthreads-2.3.2.tar.bz2   用于支持POSIX线程的函数库  
   
   在http://www.kernel.org/pub/linux/kernel/v2.4/下载如下一个文件:
   
   linux-2.4.26.tar.bz2               Linux核心源代码
   
   全部下载后,放在/home/gcc/ezx-crosstool-0.5/downloads下,打开
/home/gcc/ezx-crosstool-0.5/build.sh文件,内容如下:
   
   #!/bin/sh
   set -ex
   CROSSTOOL_DIR=`pwd`
   TARBALLS_DIR=$CROSSTOOL_DIR/downloads
   RESULT_TOP=$CROSSTOOL_DIR/gcc-arm-iwmmxt
   export TARBALLS_DIR RESULT_TOP
   GCC_LANGUAGES="c,c++"
   export GCC_LANGUAGES
   ...
   
   详细内容以后会解释,这里只注意RESULT_TOP=$CROSSTOOL_DIR/gcc-arm-iwmmxt
这句,这是说明编译后的路径,可以自定义修改。
   如:
   RESULT_TOP=/home/gcc/arm
   
   到这里,准备工作就结束了。
   cd /home/gcc/ezx-crosstool-0.5
   ./build.sh
   
   我使用的笔记本(512M+PM1.7G)+虚拟机,大概不到两个小时。完成后在系统环境
PATH添加新路径内容。
   export PATH=$PATH:/home/gcc/arm/gcc-3.3.6-glibc-2.3.2/arm-linux/bin

      
四、测试环境

   hello.c
   
#include <stdio.h>
int main()
{
float myvalueA=1.9;
float myvalueB=2.8;
printf("Hello!My E680!\n");
printf("Testvalue:%f\n",myvalueA+myvalueB);
return 0;
}  

   输入:arm-linux-gcc -o moto hello.c,生成可执行文件,这里在Linux下显
然是不能执行的,复制到你的手机上,在telnet下进入可执行文件所在目录,输入
命令:./moto,显示:

   Hello!My E680!
   Testvalue:4.700000

可以看到正常显示,而且也没有所谓的浮点型Bug。这里我们没有使用图形化的
内容,所以不需要设置环境变量,以后会有更具体的例子说明,现在交叉编译环境
已成功搭建,终于迈开第一步了。我们也将在下文做进一步的讨论。

论坛徽章:
0
56 [报告]
发表于 2006-11-30 18:09 |只看该作者
三、BusyBox的编译

   Busybox是一个集成了多个最常用linux命令和工具的软件。首先下载Busybox
源代码,这里使用的是busybox-0.60.5.tar.gz版本。

   1.在Linux解压缩,或者在Windows下解压缩复制到Linux里面
   tar xcvf busybox-0.60.5.tar.gz
   
   2.cd busybox 进入目录,查看Makefile文件,实在比较复杂,不过确是了解源代码
结构的最好方法!对这个文件作如下两处修改。
   
   a.将84行下面这6行内容
   
   # If you are running a cross compiler, you may want to set this
   # to something more interesting, like "powerpc-linux-".
   CROSS =
   CC = $(CROSS)gcc
   AR = $(CROSS)ar
   STRIP = $(CROSS)strip
   
   修改为
   
   # If you are running a cross compiler, you may want to set this
   # to something more interesting, like "powerpc-linux-".
   CROSS = /home/gcc/arm/gcc-3.3.6-glibc-2.3.2/arm-linux
   CC = $(CROSS)/bin/arm-linux-gcc
   AR = $(CROSS)/bin/arm-linux-ar
   STRIP = $(CROSS)/bin/arm-linux-strip
   
   注意:CROSS内容后面不可有空格,结合CC,AR,STRIP的内容,一定要保证是你
自己机器上arm-linux-gcc,arm-linux-ar,arm-linux-strip的位置,这里使用的是上
篇文章里编译的路径。
   可以看出这里是为了指定使用的编译器。
   
   b.将108行如下内容
   
   #LDFLAGS+=-nostdlib
   #LIBRARIES = $(LIBCDIR)/lib/libc.a -lgcc
   #CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR)
   #GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")

   修改为
   
   #LDFLAGS+=-nostdlib
   #LIBRARIES = $(LIBCDIR)/lib/libc.a -lgcc
   CROSS_CFLAGS+= -I$(CROSS)/arm-linux/include -I$(CROSS)/arm-linux/sys-include#-I$(GCCINCDIR)
   #GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")

   这里指定的是使用头文件。
   
   3.修改后保存,编译
   
   在busybox路径下,执行命令make all,如有错误,多半是上面所述Makefile文件的问题,
修改后先执行make clean再执行make all。
   成功之后,最后会显示:
   
   BusyBox Documentation

   mkdir -p docs
   pod2text docs/busybox.pod > docs/BusyBox.txt
   mkdir -p docs
   pod2man --center=BusyBox --release="version 0.60.5" \
       docs/busybox.pod > docs/BusyBox.1
   pod2html --noindex docs/busybox.pod > docs/BusyBox.html

   4.将busybox路径下编译成功的busybox文件,复制到手机,telnet,并进入
busybox所在目录,输入类似以下命令:

   ./busybox --help
   ./busybox lsmod
   ./busybox date
   ...
   
   没有任何问题。   
   
   我们telnet下输入这个命令,在Busybox所在目录建立testbox.lin文件
   ./busybox echo `pwd`/busybox date \> `pwd`/date.txt > testbox.lin
   在E680g上用Loader关联打开后,Busybox所在目录下会生成包含当前日期的
date.txt文件。

四、利用dev-ezx工具开发图形化程序

   1.下载dev-ezx-0.2.0工具,解压缩复制到Linux下。可以看到一个英文说明
文件BUILD-INSTRUCTIONS,其实里面讲得很清楚,这里用中文重复一下。

   2.telnet进入e680g,将/usr/lib打包,复制到Linux解开,把解开的文件复制
dev-ezx-0.2.0的lib目录下。
   tar cvf lib.tar /usr/lib
   
   3.进入dev-ezx-0.2.0/moc目录上,执行命令make all编译moc。
   
   4.进入dev-ezx-0.2.0/helloworld下,执行命令make,此时需要设置好PATH环境
变量,否则会系统会找不着arm-linux-g++。

   5.编译成功后,将helloworld复制到手机上。图形化的程序需要设置QT等环境
变量,如下:

   export QTDIR=/usr/lib/ezx
   export LD_LIBRARY_PATH=$QTDIR/lib
   export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
   cd /mmc/mmca1
   ./helloworld
   
   即可看到运行效果,关于QT图形化编程方面,就需要查阅相当多的资料了。
   
五、最后
   
   通过这两个例子,我们清楚有了交叉编译环境,才能谈得上扩展E680的功能。

论坛徽章:
0
57 [报告]
发表于 2006-12-01 11:52 |只看该作者
原帖由 npcomet 于 2006-11-25 01:08 发表

牛 你的手机带GCC?

没有也可以创造阿
加载 nfs 或 smb, 或 使用 sd 卡, 在网上或sd 上搞个 xscale 的 root, chroot 过去 就可以 native build 了。

论坛徽章:
0
58 [报告]
发表于 2007-02-13 15:30 |只看该作者

呵呵,强,偶前星期新入手了一台E6,好玩哦

现在也要深入系统看看哈,不过最近在研究在小6上用GPS,偶用的软件是trekbuddy,也是个免费的,不错的说,有经验的朋友欢迎来交流啊

论坛徽章:
0
59 [报告]
发表于 2007-02-13 16:39 |只看该作者
太高深了,有点吃不消

论坛徽章:
0
60 [报告]
发表于 2011-07-12 13:25 |只看该作者
{:3_191:}{:3_191:}{:3_191:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP