|
进行嵌入式开发,选择合适的仿真软件是很有必要的,我选择了skyeye,一个可以仿真ARM芯片的仿真软件。我先是在网上搜索了许多资料,介绍如何安装skyeye。但是这些资料介绍的方法都特别的模糊,安装它们介绍的方法是不可能成功的在Debian上装上skyeye的。经过我的几经挫折,我终于成功地在我的Debian操作系统下面安装上了这个仿真软件。现在我详细的介绍整个安装过程。
我对于这个软件的安装特别的不熟,对于这个软件的所需要的软件包不慎了解,于是在网上瞎摸了好久,下载了很多的不可以用的软件包。弄得我特别郁闷。后来偶然间发现了一个论坛的网页:
http://www.linuxfans.org/nuke/mo ... ht=skyeye+configure
有可以用的东西,于是拿来试了试。
它是这样介绍如何在Debian下安装skyeye的:
1。首先要安装glib1.2 gtk+1.2。 如果你的GTK版本过高请降到1.2
2。需要安装ncurse包,安装过后请查看在/usr/include下是否有ncurses文件夹,如果没有请建立该文件夹。将/usr/include下得termcap.h拷到ncurses文件夹下或者做个连接。
3。需要安装gettext。 请apt-get install gettext gettext-base
但是这个介绍非常的模糊,我只能凭感觉去试。
我先是到网站:
http://gro.clinux.org/frs/?group_id=327
上将skyeye目前最新的版本skyeye-0.9.2.tar.bz2(17.2MB)下载了下来,然后按照上面讲的方法开始了我的艰苦的安装之路。
安装glib1.2
我先是想用apt-get –u install glib1.2系统告诉我无法找到所需要的软件包:
E: Couldn't find package glib1.2
我又瞎试了好多软件包名,还是不行。后来我了解到说需要包libglib1.2,于是我将其安装上了(注意,我这里是直接从本地40.6GB的镜像上找来的包,libglib1.2_1.2.10-9_i386.deb,而且是通过dpkg –i 进行安装的,这可能是我后面apt-get –u install libglib1.2无法装上的原因),装上了之后,在/usr/include下面寻找,找了半天,没有找到所谓的termcap.h文件。后来我寻思,肯定是包没有装对,我没有办法,只有再次寻找,后来在论坛上泡了好久,终于找到了一个软件包:glib-1.2.10-16.i386.rpm。但是这个是rpm的包,我不知道如何在Debian下面进行安装,于是又在google上面找了半天,终于了解到了这种包需要通过将其转换为deb包才可以安装的。其转换需要工具alien,需要经过如下的几步:
1、 apt-get –u install alien
2、 alien glib-1.2.10-16.i386.rpm
3、 dpkg –i glib-1.2.10-16.i386.rpm
这样就装上了glib1.2。
安装ncurses
对于这个包的安装我的体会最为深刻。
我先是想通过apt-get –u install ncurses来进行安装,结果系统提示我该包没有candidate(不知道什么意思):E: Package ncurses has no installation candidate
我后来了解到只需要安装libncurse5和libncurse5-dev就可以了。于是我在Debian命令行下面输入:
Apt-get –u install libncurse5
结果告诉我找不到这个包。我又试下面的
Apt-get –u install libncurse5-dev
结果还是告诉我找不到这个包。
你可以想象我那时的心情是多么的不爽。没有办法,我只有遍历网络,希望得到答案。数个小时之后(确切的说应该是4个小时),我终于明白了我犯了一个多么可笑的错误:
我将软件包的名字搞错了,本来应该是libncurses5而我将其打成了libncurse5,少了一个s,我这时终于明白了什么叫做“做学问要严谨”
到最后我终于在/usr/include下发现了termcap.h,我很高兴,我将其按照上面介绍的方法移到新建的文件夹ncurses下面。
安装gtk+1.2包
对于gtk+1.2,我也撞了好久,先是找到了可以安装的软件包libgtk1.2,
gtk+-devel-1.2.10-25.i386.rpm,发帖的人说这个可以用的。于是我将其按照glib1.2的rpm包的安装方法进行安装,结果它提示我无法安装,我现在无语了。我不想放弃,我还是在网上疯狂的搜索。终于又出现了一丝生机。我了解到,gtk是为了让仿真系统能有图形界面的支持才需要,如果不需要它有仿真LCD屏,可以不需要这个包。于是我按照它讲的方法,在configure skyeye时加入了参数:
./configure –target=arm-elf --target=arm-elf --prefix=/usr/local --without-gtk-prefix
--without-gtk-exec-prefix --disable-gtktest
编译到一半,还是提示我GTK检测通不过。后来我干脆看skyeye的configure文件,直觉告诉我我可以直接在命令行下输入./configure,而不用加任何参数,这样./configure竟然奇迹般地通过了。我这时欢欣鼓舞。真有一种说不出的感觉。
我怀着激动的心情输入了make命令,一连窜编译命令过后,出现了一个error,说命令tclsh无法找到,我于是又开始着手解决起来,后来知道,tclsh工具是由两个软件包支持的,分别是tclsh8.4和tclsh8.4-dev。我将其装上后,make的那个错误可以通过了。可是,又有难题出现了,无数的error摆在我的面前,错误出现在文件tk3d.c中,说许多的变量都没有定义。我这个时候真的是无语了。我想过要放弃,但是我又不想要放弃。我决定另辟蹊径。
在网上找了许久,说可以通过cygwin+skyeye来进行仿真。我似乎又看到了一条出路。于是我费劲心思将2.41GB的cygwin从ftp:// 202.38.97.230/ netinst/Cygwin/下拖到了我的机器上。
安装cygwin
安装cygwin的过程对我来说也是一个灾难。我先是不知道它的安装需要指定安装文件夹和本地软件包文件夹(就是你把cygwin的安装源文件放哪里了)。结果把这两个文件夹制定在了同一个文件夹,结果装好之后所有的文件和安装文件都被放在了一个文件夹的下面,我当初还以为这是软件的毛病呢,原来是我自己没有设置对。
有人告诉我需要安装所有的包,其推荐的包太少。也就是在安装过程中将default改为install。安装过程忒慢,到了99%的时候需要等待30分钟,第一次我觉得是不是没有安装过程出了问题,然后在等了10分钟以后将其取消,结果白装了许久。最后才知道,要等待很长时间的(也许是我的机器太次了)。所以大家一定要有耐心。
后来我了解到,其实cygwin就是一个Unix虚拟机。哎,早知道这样,我还不如直接用自己的Debian呢。装都装了,再埋怨都没有用,先试试可不可以装上skyeye。
这个里面竟然没有bunzip2命令,我只能在windows下面将skyeye解压,然后通过cygwin的cd命令进入到skyeye的文件夹的下面。执行
./configure命令,天呀,执行得像蜗牛一样慢,我这时终于下定决心不要在这里用仿真软件了。这样下去恐怕无法仿真。于是我坚定了在实验机器的Debian操作系统下面安装skyeye的想法。
正确的路
安装libglib1.2
我在命令行下面输入:apt-get –u install libglib1.2,结果遇到如下的问题:
(Reading database ... 33549 files and directories currently installed.)
Unpacking libglib1.2 (from .../libglib1.2_1.2.10-9_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/libglib1.2_1.2.10-9_i386.deb (--unpack):
trying to overwrite `/usr/lib/libglib-1.2.so.0.0.10', which is also in package glib
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/libglib1.2_1.2.10-9_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决方法:使用dpkg的force选项
dpkg --force-overwrite -i /var/cache/apt/archives/libglib1.2_1.2.10-9_i386.deb
成功解决问题,耶!
安装gtk+1.2
又遇问题,原来我认为我的skyeye装不上是因为版本问题,我今天换了安装版本
先是换成版本0.8.5.1出现找不到pkg-config的情况,论坛上的人说需要安装gtk+-2.0,我装的是gtk+-devel_1.2,不能实现
所以我又换了一个skyeye的版本0.8.0,这个就需要gtk-config文件。也就是gtk+-devel1.2需要的,但是又出现以下的错误:
checking for GTK - version >= 1.1.3... no
*** Could not run GTK test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK was incorrectly installed
*** or that you have moved GTK since it was installed. In the latter case, you
*** may want to edit the gtk-config script: /usr/bin/gtk-config
configure: error: Cannot find GTK: Is gtk-config in path?
configure: error: ./configure failed for arm
Configure in /home/zhiyg/EmbeddedLinux/skyeye/sim failed, exiting.
我始终想不通,为什么装一个软件就这么麻烦。难道是我的gtk的rpm包装得不对?
之后,我在我的40.6GB的镜像上找到了一个文件:
gtk+1.2_1.2.10.orig.tar.gz,希望通过它能够安装上可用的gtk
我通过如下的方式进行gtk的安装:
gunzip gtk+1.2_1.2.10.orig.tar.gz
生成一个tar文件gtk+1.2_1.2.10.orig.tar
然后使用命令:tar -xvf gtk+1.2_1.2.10.orig.tar
生成一个文件夹gtk+-1.2.10
进入这个文件夹,执行./configure
结果又出错了,提示我:
checking for glib-config... no
checking for GLIB - version >= 1.2.8... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error:
*** GLIB 1.2.8 or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org/.
提示我需要版本大于或等于1.2.8的glib,于是我又去我的40.6gb的镜像上找寻:
libglib1.2_1.2.10-9_i386.deb目前最新的glib发布于3月17号
结果装上这个还是不行,后来我寻思是不是libglib和glib不一样呀,结果真是被我给猜中了
我在镜像上找到了一个包:
glib1.2_1.2.10.orig.tar.gz
进行gunzip,tar -xvf,./configure,make,make install
之后,终于装上了这个glib1.2。结果上面的问题解决了,又出现了问题:
checking for X... no
configure: error:
*** X libraries or include files not found. Check 'config.log' for
*** more details.
X libraries,难道说这个东西还要图形库?
看来我得要装图形界面了。
后来我安装了xfree86-common、xserver-common、xserver-xfree86、xbase-clients、xfonts-base、xfonts-100dpi、xfonts-75dpi等包后
X libraries的问题解决了,但是又出现了以下的问题:
configure:4607:27: X11/Intrinsic.h: No such file or directory
configure: failed program was:
#line 4606 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
在网上搜索说是需要安装包:xlibs-dev,于是我输入:
apt-get -u install xlibs-dev
弹出一系列的依赖包:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
xlibs-dev: Depends: libice-dev but it is not going to be installed
Depends: libsm-dev but it is not going to be installed
Depends: libx11-dev but it is not going to be installed
Depends: libxext-dev but it is not going to be installed
Depends: libxi-dev but it is not going to be installed
Depends: libxmu-dev but it is not going to be installed
Depends: libxmuu-dev but it is not going to be installed
Depends: libxp-dev but it is not going to be installed
Depends: libxpm-dev but it is not going to be installed
Depends: libxrandr-dev but it is not going to be installed
Depends: libxt-dev but it is not going to be installed
Depends: libxtrap-dev but it is not going to be installed
Depends: libxtst-dev but it is not going to be installed
Depends: libxv-dev but it is not going to be installed
Depends: xlibs-static-dev but it is not going to be installed
E: Broken packages
后来我明白这是自己的镜像问题,于是我换了一个镜像deb http://debian.cn99.com/debian sarge main,可以了。
由于我的试验机器上的镜像已经改为了本地镜像,如果修改镜像,又会重新从debian.cn99.com上下载3兆多的索引文件,所以我干脆用我的
虚拟机上的debian系统从debian.cn99.com下下载,然后将下载的软件包通过ftp复制到我的试验机器上,进入到那个文件夹,通过命令
dpkg -i *.deb来进行强行安装
到这里终于./configure –target=arm-elf 通过了。耶!!
最终make,一切顺利。
make install哈,成功了。终于将gtk+-1.2装好了。
安装ncurses
现在该安装libncurses5和libncurses5-dev了。
之后再安装gettext和gettext-base
之后将termcap.h移到/usr/include/ncurses文件夹下
安装skyeye
再次进入skyeye文件夹,运行./configure --target=arm-elf
哈,GTK检测过了,爽
终于./configure --target=arm-elf通过了。
再运行make
make通过了,yes
make install哇塞,搞定了。搞定了
总结
我在Debian操作系统下安装skyeye,遇到了非常多的困难,但是我的决心和毅力让我解决了所有的问题。我感到很骄傲。我的自信心又增加了。
对于apt-get –u install命令,软件包的名字一定要完全正确,否则是不可能装上你所需要的软件包的。
对于skyeye的不同版本,其需要的软件包是不一样的,这一点一定要注意。
另外,对于图形界面的debian安装skyeye相对要容易一些,因为我这里涉及的许多问题,都涉及到图形界面的软件包。如果能够在图形界面下进行安装,就不会遇到那么多的问题。 |
|