系统环境 ubuntu server 10.04 X64,
SkyEYE
http://skyeye.sourceforge.net/index.shtml
SkyEye is an Open Source Software Project (GPL Licence). Origin from GDB/Armulator, The goal of SkyEye is to provide an integrated simulation environment in Linux and Windows. SkyEye environment simulates/emulates typical Embedded Computer Systems (Now it supports a series ARM, MIPS, PowerPC, Blackfin, Coldfire, and SPARC architecture based microprocessors). You can run some Embedded Operation System such as Embedded Linux, uClinux, uc/OS-II (ucos-ii) etc. in SkyEye, and analysis or debug them at source level.
下载
http://sourceforge.net/projects/skyeye/files/
http://cdnetworks-kr-2.dl.sourceforge.net/project/skyeye/skyeye/skyeye-1.3.0_rc1.tar.gz
vim INSTALL 查看编译、安装说明。
其音
问题 : 参考解决 http://hi.baidu.com/tihu1111/blog/item/9f3a0fa716348f98d1435857.html
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `PC'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetflag'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetent'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `UP'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tputs'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgoto'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetnum'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `BC'
/root/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[2]: *** [skyeye] 错误 1
make[2]:正在离开目录 `/root/skyeye-1.3.0_rc1'
make[1]: *** [all-recursive] 错误 1
主要是缺少termcap库文件,在终端里执行sudo apt-get install libncurses5-dev安装,然后重新编译出错的文件
安装完上面的libxpm-dev,继续执行下面的命令
make clean
./configure
make lib
make 通过 ,这个问题得以解决
sudo make install_lib
sudo make install
完成安装,
使用 ./configure --help 查看帮助,
root@lgf:~/skyeye-1.3.0_rc1# ./configure --help
`configure' configures SkyEye 1.3.0 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/opt/skyeye]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/opt/skyeye/bin', `/opt/skyeye/lib' etc.
You can specify
an installation prefix other than `/opt/skyeye' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/skyeye]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
X features:
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-lcd enable lcd simulation (default=yes)
--enable-static[=PKGS] build static libraries [default=no]
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-ltdl-install install libltdl
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-included-ltdl use the GNU ltdl sources included here
--with-ltdl-include=DIR use the ltdl headers installed in DIR
--with-ltdl-lib=DIR use the libltdl.la installed in DIR
--with-x use the X Window System
Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CC C compiler command
CFLAGS C compiler flags
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
GTK_CFLAGS C compiler flags for GTK, overriding pkg-config
GTK_LIBS linker flags for GTK, overriding pkg-config
CXXCPP C++ preprocessor
XMKMF Path to xmkmf, Makefile generator for X Window System
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
http://skyeye.sourceforge.net/wiki/UserManual
http://skyeye.sourceforge.net/wiki/um8 编译参数详细说明,
2.2 Running Linux on SkyEye
Probably the most usage of SkyEye is to running linux on it and debug and analysis linux image. If you want to do this way, firstly you should make sure your processor is supported by SkyEye .Secondly , you possibaly have to unselect some options in linux menuconfig since not all the peripherals of your hardware platform is supported by SkyEye.If there is some unsupported hardware driver in your kernel image, maybe your kernel image is not stable or not runnable on SkyEye.So it is recommended that only drivers of uart and timer is selected in your kernel menuconfig. Then you can compile your kernel source and get an image such as linux.elf.
Consequenyly , we need to write a skyeye.conf for your hardware platform. If you want to know how to write it, please read 3. SkyEye Command and skyeye.conf∞ . If you just only see what looks like when your kernel image run on SkyEye , just select a skyeye.conf from testcase of testsuite package that is same with your platform and copy it to the directory that your image is placed.
Then we can launch our kernel image and skyeye by the following command:
skyeye -e linux.elf -c skyeye.conf
If lucky,you will see your kernel image is running , that just like your kernel runs on yout real hardware platform.......