在阅读本文章之前,请先去隔壁I BCL. 的文章补课。
同时请注意本文章写于2021.11.6,请注意时间导致的信息改变。
因为Debian和Arch两大发行版的巨大不同之处
博主今天下午花了4个小时,解决完各种错误,才接收到944.2MHz的GSM信号
在这里以本文章记述,如果能有人为此少走点弯路那也是好的(
本文的环境搭建将会以I BCL. 的上文作为基础。
让我们回到开始,一步一步来让原来用在Debian的指令行适用于Arch:
1
2
3
4 sudo apt install -y cmake libusb-1.0-0-dev build-essential libtool \
automake autoconf libfftw3-dev pkg-config python-scipy python-docutils \
libosmocore-dev libboost-all-dev swig doxygen git \
gnuradio-dev gr-osmosdr libcppunit-dev liblog4cpp5-dev
根据我在 https://archlinux.org/packages/ 的高强度查询,以下是软件包对应表:
Debian Buster 包名 | ArchLinux 包名(2021.11.6) | 备注 |
---|---|---|
libusb-1.0-0-dev | libusb | |
build-essential | base-devel | |
libfftw3-dev | fftw | |
libosmocore-dev | libosmocore | AUR |
libboost-all-dev | boost | |
libcppunit-dev | cppunit | |
liblog4cpp5-dev | log4cpp |
但~是~
有以下软件包需要注意:
libosmocore 中出现了multiple definition问题;
GR-GSM目前仍未被Port到GnuRadio 3.9版本,这里还不能先安装gnuradio 软件包。
所以最终第一步安装命令如下:
1 | sudo pacman -S cmake libusb base-devel libtool automake autoconf fftw pkg-config python-scipy python-docutils boost swig doxygen git cppunit log4cpp |
接下来我们处理gr-gsm和libosmocore
libosmocore: 使用 -git AUR包
gnuradio: 在Tuna于7月19日Archive的Arch Linux Rollback Machine下载,你需要下载以下软件包:
然后使用 pacman -U
安装
别忘了添加环境变数
这时候你就可以安全跟随I BCL的原文章的3.1-3.4编译安装别的Something(
此时 你应该可以使用kal
找到你身边的GSM-900基站了。
如你所见,博主和I BCL同款的RTL2832U+R820T2
在38偏频下(同样的垃圾)能够搜索到许多且Power高的GSM900基站(相对于I BCL而言):
1 | [[email protected] ~]$ kal -s GSM900 -e 38 |
当然 依然少不了 kal
的“亲切问候”:
1 | Difference of offsets between channels is >1kHz. This likely means that the correct PPM is too far away and you need to provide a rough estimate using the ' |
正当你以为你终于可以快乐地开始监听的时候:
1 | [[email protected] ~]$ grgsm_livemon_headless -f 944.2M -p 38 |
1 | /usr/lib/python3.9/site-packages/gnuradio/qtgui/range.py:41: SyntaxWarning: "is not" with a literal. Did you mean "!="? |
是的,gr-gsm找不见刚刚自己编译的库了 :(
而实际上,这是ArchLinux的配置与其他发行版不同导致的。可以查看这个来自于2019年的Issue了解
当你按照上面的步骤排除万难,那么你就可以开始快乐地监听了(
1 | [[email protected] ~]$ grgsm_livemon_headless -f 944.2M -p 38 |
开始玩吧(
Waline是个好东西,在我看来。
既继承了Valine的操作方式又有后台还能实现通知,所以只留了Waline。