1.uhd drivers: use official site binary install,
http://files.ettus.com/manual/page_install.html
直接使用这样的方法安装uhd的驱动后还会出现问题,提示rx_stream类没有issue_stream_cmd成员,tx_stream类没有recv_async_msg成员。此时去确认一下/usr/include目录下的uhd库的源代码,发现stream.hpp文件中缺失了一些成员的定义。这也许是版本的问题。
解决方法:在x86平台上安装uhd,然后将/usr/include/uhd目录下的stream.hpp文件拷贝出来,覆盖ARM7平台的相同文件。
2.dependence error:libuuid1 (= 2.20.1-5.1ubuntu20) but 2.20.1-5.1ubuntu20.1 is to be installed
https://gns3.com/discussions/cannot-compile-dynamips-to-gns3-
使用这样的指令:
sudo apt-get install libuuid1=2.20.1-5.1ubuntu20
就可以了。
3.libzmq5 package problem: no libzmq5 package in Ubuntu 14.04, change ~/dev/build.sh use libzmq3 instead.
# zmq
installIfMissing libzmq3-dev
# changed by jm, libzmq5 cannot be installed in 14.04
#installIfMissing libzmq5
installIfMissing libzmq3
installIfMissing python-zmq
4.处理coredumper的问题。
4.1 openbts使用google-coredumper的库来支持coredump。但是,这个库在2008年的时候就停止维护了,通过查看相关源码,这个库只能支持x86, x64,ARM 3等体系架构,而TK1使用的ARM 7A是不支持的。如果想使用这个库,必须对google-coredumper进行相关的移植工作。这个工作的性价比并不高。
/* We currently only support x86-32, x86-64, ARM, MIPS, and PPC on Linux.
* Porting to other related platforms should not be difficult.
*/
#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) || \
defined(__mips__) || defined(__PPC__)) && defined(__linux)
4.2 所以,我们想办法将coredumper相关的代码从OpenBTS中剔除。要进行下面几个工作:
4.2.1 将OpenBTS中调用coredumper的代码注释掉。很幸运,这部分代码不多。
4.2.2 修改/dev/build.sh,把coredumper相关的编译命令去掉。
#jm: we cannot build libcoredumper because we donnot have a code in ARM7 ARCH.
#TODO: write the coredumper code that can be build in ARM7
#if [ "$COMPONENT" == "all" ] || [ "$COMPONENT" == "libcoredumper" ]; then
# echo "# libcoredumper - building Debian package and installing as dependency"
# sayAndDo cd libcoredumper
# sayAndDo ./build.sh
# sayAndDo mv libcoredumper* ../$BUILDNAME
# sayAndDo cd ..
# sayAndDo sudo dpkg -i $BUILDNAME/libcoredumper*.deb
# echo "# - done"
# echo
#fi
4.2.3 修改与coredumper相关的链接命令,主要修改各个CommonLibs文件夹下的Make.am文件。
5.安装boost库
boost库是必须的,在编译的时候会有依赖关系的需求。使用
apt-get install libboost-dev
安装boost库即可。