主要是使用gr-gsm开源项目,该项目是基于AirProbe中的gsm-receiver模块开发而来。实现GSM抓包。
l 安装依赖包:都装一下,免得到时候缺库
sudo apt-get install git cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy
l 下载编译gr-gsm:依赖GNURadio,rtl-sdr,GrOsmoSDR,libosmocore
1 git clone https://github.com/ptrkrysik/gr-gsm.git 2 cd gr-gsm 3 mkdir build 4 cd build 5 cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/local -DPYTHON_LIBRARY=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib -DPYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/ .. 6 make 7 sudo make install
附加:(gnuradio,libosmocore的安装,见其它文件)
n 下载编译rtl-sdr:
1 git clone git://git.osmocom.org/rtl-sdr.git 2 cd rtl-sdr/ 3 mkdir build 4 cd build 5 cmake ../ 6 make 7 sudo make install
n 下载编译GrOsmoSDR:
1 git clone git://git.osmocom.org/gr-osmosdr 2 cd gr-osmosdr/
如果gnuradio版本大于v3.7,使用master分支;否则,如果gnuradio版本是v3.6使用gr3.6分支:
1 git checkout gr3.6
然后执行:
1 mkdir build 2 cd build/ 3 cmake ../
如果要编译API文档:
1 cd build/ 2 cmake ../ -DENABLE_DOXYGEN=1 3 make -C docs
l 创建~/.gnuradio/config.conf文件,添加如下配置:
[grc] local_blocks_path=/usr/local/share/gnuradio/grc/blocks
可能会遇到的2个问题:
问题1:
cmake时没有指定安装路径,python库路径,python头路径,这样编译安装之后,会导致很多问题,比如安装时,不指定/opt/local..(IOS的安装路径),默认是安装在/usr/local..,这个是linux的安装路径,这样导致库不匹配错误:
Fatal Python error: PyThreadState_Get: no current thread
问题2: python库找不到
mac上,在python中直接导入grgsm时,应该会报如下错误:
ImportError: No module named grgsm
这是因为gr-gsm在make install的时候,是将该python库安装在了:
/opt/local/lib/python2.7/site-packages/目录下,导致python找不到该库,需要添加该库的路径,这里提供一种添加其它site-packages路径的方法:
在site-packages添加一个路径文件,如myskpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。比如在该文件中写入:
/opt/local/lib/python2.7/site-packages/
tips
另外,怎样查找python里site-packages的位置呢?可以开一个python终端,使用如下代码即可:
1 from distutils.sysconfig import get_python_lib 2 3 print get_python_lib()