free software – 夏清然的日志 https://www.qingran.net Xia Qingran Geek Blog Sun, 07 Aug 2016 09:50:33 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.1 112893047 Trac、Mercurial集成项目管理工具组建 https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/ https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/#respond Thu, 13 Jan 2011 04:12:34 +0000 https://www.qingran.net/?p=775 我们的项目已经进行了半年,马上进入了第3个季度,慢慢的需求管理、缺陷管理的建立也需要提上日程。

从走在前面的3D引擎的开发状况看,需要有一个良好的bug管理系统来管理bug、记录需求等,于是决定用一个项目管理工具来实施,直接上Trac,并且要做到和我们的开发的版本管理工具Mercurial完全集成,Mercurial的安装见链接

首先ubuntu的apt reposity里只有trac 0.11.7,所以需要下载trac-0.12.1,导致一些安装需要手工安装。

使用0.12.1在于支持i18n,支持多个source reposity等,并且基于0.12版本的plugin较多。

[准备工作]

系统是ubuntu 10.04 LTS。

首先安装trac所需要的支持环境,采取先安装trac,然后再移除的方式安装依赖包:
apt-get install trac && dpkg -P trac

安装Genshi 0.6版本(下载),trac 0.12依赖此:
tar -xvzf Genshi-0.6.tar.gz && cd Genshi-0.6 && python setup.py install

安装Trac 0.12.1:
tar -xvzf Trac-0.12.1.tar.gz && cd Trac-0.12.1 && python setup.py install

[配置apache2]

目前使用mod_python方式运行trac,wsgi方式配置Trac mainnav一直出不来,很郁闷:(
apt-get install libapache2-mod-python

因为是通过 http://ipaddr/trac 访问的,修改/etc/apache2/sites-available/default,加入以下内容:

<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main
PythonOption TracEnv /data/trac/core-trac
PythonOption TracUriRoot /trac
SetEnv PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName "core trac password"
SetEnv PYTHON_EGG_CACHE /tmp
AuthUserFile /etc/apache2/hg.passwd
Require valid-user
</Location>

初始化trac库:
cd /var/www && mkdir trac && trac-admin trac/ initenv && trac-admin trac/ permission add xiaqingran TRAC_ADMIN

指定TRAC_ADMIN用户:
trac-admin trac/ permission add xiaqingran TRAC_ADMIN

[配置trac]

首先配置用户的trac权限,觉的命令行麻烦就用webadmin来吧。

配置mercurial,在trac中能浏览mercurial中的代码,能在commit代码的时候自动close ticket,并且把diff加入提案:

安装mercurial-plugin:
svn co http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin
制作egg文件:
cd mercurial-plugin && python setup.py bdist_egg

进入webadmin界面,然后再plugin选项里安装刚刚生成的egg mercurial-plugin/dist/TracMercurial-0.12.0.23dev_r9953-py2.6.egg

重启apache2,刷新页面,看plugin是否enabled。

同时在plugin里把Trac 0.12.1里把tacopt.ticket.commit_updater.*下的插件打开,同时把TracMercurial里的所有插件enable。

进入WebAdmin -> Version Control -> Repositories加入相关的版本库,名称为client,版本库类型是hg,目录就选在在服务器上的hg目录。

[配置mercurial]

设定mercurial的hooks,使其在hg push时能同步修改trac,编辑hg服务器端的.hg/hgrc,加入以下两段:
[hooks]
commit = trac-admin /var/www/trac/ changeset added client %HG_NODE%
incoming = trac-admin /var/www/trac/ changeset added client %HG_NODE%

mercurial提交的时候按照此格式编写commit log:
- *Fixes #123* - to reference this changeset and close #123 ticket with the default status *fixed*

完毕,enjoy it.

]]>
https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/feed/ 0 775
山寨移动通信 — OpenBTS https://www.qingran.net/2010/02/%e5%b1%b1%e5%af%a8%e7%a7%bb%e5%8a%a8%e9%80%9a%e4%bf%a1-openbts/ https://www.qingran.net/2010/02/%e5%b1%b1%e5%af%a8%e7%a7%bb%e5%8a%a8%e9%80%9a%e4%bf%a1-openbts/#comments Mon, 22 Feb 2010 03:59:35 +0000 https://www.qingran.net/?p=14 昨天很偶然的机会在sourceforge上发现了OpenBTS项目,看起来很震撼,简言之这个项目就是为了我们能自行搭建移动电话网络而设计的。

一个基本的移动电话需要手机、基站(BTS)、基站控制器(BSC)、移动控制中心(MSC)、(HLR/VLR)、用于链接基站、各种控制中心和PSTN网络的传输线路。下图就是一张目前广泛使用的GSM网络的架构,感兴趣的可以看一下wikipedia的介绍,Cellular network

而OpenBTS项目的目的就是提供了除手机之外的运营商设备的解决方案。OpenBTS实现了无线收发,尤其是频段的处理;另一个是移动网络用户 的注册和交换,尤其是替代传统的基站(BTS),基站控制器(BSC),移动控制中心(MSC),以及(HLR/VLR)的另类方案,而不用购买昂贵的局 端设备。

先看一个实际的OpenBTS的设备图,以下是一个在实际运行的移动网络的设备组成图:

无线电射频硬件部分的组成:

上面的一张图介绍了OpenBTS使用的无线电射频部分的组成,其关键是关键部件是Universal Software Radio Peripheral,通用软件无线电外设。而这个也是OpenBTS的核心所在!
传统的无线电的信号处理基本上是由纯硬件设备完成,而USRP的实现是把复杂的信号处理给PC的软件来处理,包括信号的调制和解调和线路的交换等。而最基 础的射频信号处理,例如数字信号的变频,内插和抽样等,交给USRP上的FPGA来完成,并通过USB来链接PC。

这种把高级特性交给软件,底层处理交给硬件的做法即保证了系统的性能也方便了系统的扩展。

而以上的这几部分只是着重介绍了移动网络中的无线电射频部分,整个移动电话网络系统的全貌看下图:

0,OpenBTS,充当了手机基站(BTS)和基站控制器(BSC),他的基本功能是调制和解调,并为每一个通信分配一个信道频率。

1,Asterisk,充当了移动交换中心(MSC)和电话交换中心。如果是一个OpenBTS网络内的用户通信,那么Asterisk负责直接在 网内建立通信链接;如果是拨打外网的电话,那么Asterisk通过VoIP gateway连接PSTN网络。

2,MySQL,负责手机用户帐号管理,记录通话信息和数据,同时也负责传统移动网络中HLR(Home Location Register)和VLR(Visitor Location Register)的存储职能。

天线,射频硬件和USRP,通过USB端口,连接到一台PC上,运行free software,接入Internet,就组成了一个完整的移动电话网络。

]]>
https://www.qingran.net/2010/02/%e5%b1%b1%e5%af%a8%e7%a7%bb%e5%8a%a8%e9%80%9a%e4%bf%a1-openbts/feed/ 1 14