构建和运行 OpenBTSOpenBTS 是为在一个典型的 GNU 构建环境下运行的 POSIX 操作系统进行编译而编写的。(MS Windows 无法满足这些要求。 它不是一个 Windows 应用。) 尽管移植到 UNIX 类操作系统不是一件困难的事情,目前它支持 Linux 和 Apple OS X。 如果你遇到什么困难,你可以到 OpenBTS 支持与服务 (OpenBTSsupport) 寻求帮助。
测试的需求,本地 SIP 软件电话也是必须的。Zoiper 可以很好的提供这些。 也需要没有锁定的固线模拟电话适配器 PAP2 adapters. (程序的)关联性构建和运行 OpenBTS 你需要安装:
端口分配(Port Assignments)Asterisk、OpenBTS 和 软件电话将一同在本地计算机上工作。 因此端口分配必须协调。 下面是 OpenBTS 宿主机的端口分配原则:
配置 Asterisk
Asterisk 的配置文件一般保存在 /etc/asterisk。 Asterisk 的缺省的配置是适合 OpenBTS 的大多数情况的。在 Asterisk 的目录下读读所有的描述。更详细的描述在 Setting Up Asterisk 里面。 值得关注的文件如下:
配置软件电话和端口分配检查上面的端口分配。 如有可能,设置 SIP 测试电话使用 GSM codec。 构建 GSM 栈和收发机大多数情况下, OpenBTS 是用来搭建一个特定配置的基站的套件。 OpenBTS.cpp 文件在一个标配的 OpenBTS 中仅仅如同一个基站搭建示例。 软件的体系结构OpenBTS 软件包含如下单元:
构建和安装构建时的关联性osip2 和 ortp如果构建在 Linux 或 Mac OS X 上, libosip 和 libortp 很有可能通过安装管理系统得到(apt-get, macports, 等)。 如果没有的话, 遵循一般的 ./configure, make, make install 过程。 检查并确保通过安装管理系统下载的版本同要求相符。 对于基于 Debian 的一类的发行版, 可以用以下命令检查版本号 aptitude show libosip2-dev 使用现代版的 gcc 从代码编译 libortp 0.13.1, 将会在测试目录(tests folder)下得到如下错误 'format not a string literal and no format arguments'。 抓取已经改正了这些错误的最新版的 libortp 0.16。 libusrplibusrp 通过 gnuradio 可以得到。 OpenBTS 的版本号为 2.3 是为 GNU Radio 3.1 开发的。 版本在 2.5 和其后的版本便支持 GNU Radio 3.1 和 GNU Radio 3.2。 如若喜欢 Ubuntu 的用户, 参阅 Ubuntu Install Manual 去安装 GNU Radio。 得到合适的 GNU Radio 版本 后, 通过配置一下参数来构建 libusrp: ./configure --disable-all-components --enable-usrp --enable-omnithread --enable-mblock --enable-pmt 通过 gnuradio 这将仅仅构建好 libusrp (何其关联性)。 还需安装一小部分额外的关联(软件):python-all-dev, swig, libfft3w-dev, libcppunit-dev, libboost-dev, sdcc-nf (注意: 包括 ASX8051 port 在内的非免费包). 一下是一些构建时的常见错误:
sudo ln -s /usr/local/include/boost-<version> /usr/local/include/boost
$ cd /usr/local/include/ MySQL 连接器(MySQL connectors)在发行版本 3.0 及后面的版本。 MySQL C 和 C++ 连接器需要 CMake。可以从下面链接得到它http://www.cmake.org/":http://lists.gnu.org/archive/html/discuss-gnuradio/2008-05/msg00163.html. 其构架步骤如下: cmake . 构建 OpenBTS版本"Breaux Bridge" 和它后面的发行版本 (1.2-)OpenBTS, 自从发行版 1.2 - “Breaux Bridge”开始使用标准的 GNU 构建过程。 只要所有的关联性得以满足,只需抓取代码即可。 这可以有多种方法实现。使用 SVN 通过 GNU Radio, 任何人便可以(使用一下命令)获得公共版: svn co http://gnuradio.org/svn/openbts/trunk/ openbts 如果你是一个极其的捐赠者并拥有 kestrelsp.com 服务器的密码, 通过 SFTP 便可(使用以下命令)获得开发版: sftp openbts@kestrelsp.com a解压 tar.gz 数据包: tar xzf openbts-<whatever>.tar.gz 依据以下标准的 GNU 步骤进行构建:cd openbts结果会得到如下:
发行版 1.0 和 1.1
这些都已废弃,停止技术支持,这儿只有于自娱自乐。 注:在 Mac OS X
10.4 和 10.5 上构建
sudo port install guile libusb libosip2
注:在 Fedora Core
11 上构建 OpenBTS_FedoraCore11_InstallGuide.pdf 注:这份安装指导有些过时,尤其关联寻找和下载代码数据包。这个 wiki 页面有些专断。 我将亲手添加 GCC 4.4.1 和 OpenBTS 修正版 11665: 硬件的规格运行系统OpenBTS 是一组多个应用在一起工作和通信。
发行版从 "Arnaudville" 到 "Eunice" (1.0-1.5)在这些发行版中, OpenBTS 是通过编辑和重新编译 OpenBTS 主应用(程序)来配置的。 在源代码的各个模块中的"#define DEBUG"字条的控制下,诊断和状态信息被倾入 stdout 和 stderr。 收发机随同 GSM 栈被手动启动。 运行这些版本, 至少需要三个终端窗口。
发行版 "St. Francisville" 及 "New Iberia" (1.6, 2.0-2.2)在这些发行版中, OpenBTS 是通过 "OpenBTS.config" 的文件来配置的。 收发机随同 GSM 栈一同来手动启动收发机的。 运行这些版本, 至少需要三个终端窗口。
发行版 "Jean Latfitte" 及后面的版本 (2.3-)在这些发行版中,OpenBTS 最初是通过一个名叫 "OpenBTS.config" 的文件来配置的, 但是配置的有些方面实际上可以通过命令行界面(CLI)进行控制。诊断和状态信息通过等级(分类)记录在记录文本中;通过配置文档的字条进行目标控制也可以通过命令行(CLI)来控制。收发机随同 GSM 栈一同来手动启动收发机的。 拷贝复制 OpenBTS.config版本 "Kinder" (2.4) 和其以后的版本,OpenBTs.config 文件不能在发行版中得到。 在第一次启动应用时需把一个相应的叫做 "OpenBTS.config.example" 的文件复制为"OpenBTS.config"。 这样做法的目的是让 CLI 能够改写 "OpenBTS.config" 而不会毁坏原始配置文件。 它也防止意外把一个开发者的个性的 "OpenBTS.config" 混入发行版中。 运行系统运行这些版本, 至少需要二个终端窗口, 也有可能需要三个终端窗口。
系统一旦运行成功, 你可以在 CLI 上使用 "help" 命令获得更多特性的信息。 每个发行版的特性是不尽相同。 常见问题Bad LD_LIBRARY_PATH获得(出错信息如下):dburgess@localhost:~/r2.5Lacassine/apps$ ./OpenBTS 错误表述 LD_LIBRARY_PATH 的路径没有包含到所言的库的路径,这个例子中是 libosip2.so.4。 取决于使用的那种 Shell, 你需要在 .bashrc or your .cshrc, 中定义 LD_LIBRARY_PATH。 迷失的收发机进程(Stray Transceiver Process)表征:[dburgess@localhost apps]$ ./OpenBTS 错误:OpenBTS 关闭不彻底而遗留的迷失的收发机进程(Stray Transceiver Process) 解决:如下所示,去除迷失的收发机进程(Stray Transceiver Process)再试试[dburgess@localhost apps]$ ps也可以使用 killall: killall transceiver 忘记启动收发机(Transceiver)在版本 2.3 之前, 这是一个常见错误。 表征:一个启动时企图,却招致如下结尾1254170958.179475 0xa072f500: TRXManager.cpp:268: WARNING -- retrying transceiver command after response timeout 错误: OpenBTS 试图同收发机进程(transceiver process)连接, 收发机进程不存在. 解决:参照发行版 2.2 之前的操作手册的"Running"部分,在启动 openBTS 之前启动收发机。 TRX(太慢)Underruns所有发行版都会有的错误。 表征: 出现很多如下的信息1253778301.154327 3082251152: USRPDevice.cpp:353: WARNING -- UNDERRUN in TRX->USRP interface 错误:软件系统太慢无法实时地满足将被发送的数据传输到无线系统。 偶尔的太慢是可以被接受的, 但是频繁的发生将会使系统无法使用。
收发机命令错误(Transceiver Commands Fail)表征: 收发机正在运行, 但是出现以下错误信息1254342002.0361 ALARM 1077699712 Transceiver.cpp:519: RX failed to tune CPU 资源占有率也很高。 错误: 可能是在 USRP 硬件上运行了错误的收发机程序而招致的。对于 64 MHz USRP, 使用 Transceiver/transceiver; 对于 52 MHz USRP, 使用 Transceiver52M/transceiver. 解决: 在 OpenBTS.config 文件中, 为 TRX.Path 设置正确的路径。
注:Building and Runing OpenBTS (原文出处,翻译整理仅供参考!) |