ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HACK RF学习之旅记录1——填坑历程

2020-02-20 10:41:48  阅读:1350  来源: 互联网

标签:HackRF Portapack gnuradio RF 填坑 https HACK osmosdr GPS


在家隔离期偶尔发现RTL SDR,是realtek芯片破解了做软件无线电,价格非常实在不到百元,功能可以玩电视 广播等等。后来搜搜发现更强大的Hack RF ONE开发板,淘宝和闲鱼都看了大多都是Hack RF ONE单板999,便宜的闲鱼有600多的。还有一块扩展板是MCU+屏+时钟,看起来也很实用(非常推荐)。通过闲鱼某卖家找了渠道,从上海一家店的淘宝下单优惠价格(据说是国内原厂,超出想象)。

在板子到货之前,先搜了一圈资源看了实现的功能很多,主要关注的一个点是GPS信号发生器,可以在工作中用到。平常用的廉价转发器稳定性很不好,有了发生器可能搭建一个比较稳定的测试环境,主要想用于分析EMI对设备GPS干扰,做排查。提前查阅资料搭建环境,也看了osmosdr的学习视频(B站有https://www.bilibili.com/video/av7079120?p=4),强烈建议初学者用此视频学习SDR的基础理论知识+基本操作

一 Ubuntu环境搭建GNURADIO和gr-osmosdr

开源项目主战场是linux,准备在WIN10下虚拟机搭建Ubuntu环境。网上教程千千万,有几句命令就搞定的,也有很复杂的指令,还有Pybomb自动化安装的,最后参考的Pybomb自动化安装
https://blog.csdn.net/qq_27513221/article/details/79343194
https://blog.csdn.net/dragonshx/article/details/91350720 (带了卸载指令)
坑点1 注意WIN10要用比较新版的VMware ,之前下了12,能运行VMware但是死活装不上Ubuntu。改了15就正常了
坑点2 不要手欠了故意关更新了,关了后就各种更新的命令不能跑。这个和window很不一样

Ubuntu在官网下18.04的iso速度很快,然后虚拟机配置很简单,默认有虚拟机工具可以和主机之间复制粘贴文字文件,也可以设置共享文件夹。
使用Pybombs安装GNURadio优点是把各种依赖包自动下载装了,大约1小时。试过多次都是在长时间安装的过程sudo pybombs install gnuradio 中间必卡失败。后来改用Ubuntu 16也会失败。
不用Pybombs安装办法是参考了
http://www.hackrf.com.cn/post/12.html
执行gnuradio-companion界面可以出来,看到gnuradio文件比较大约几十MB。用Pybombs装的时候大约接近200MB
安装好了后gnuradio-companion界面可以胡乱搭建个能跑,然后下载osmocom大神课程第一课学习资料https://greatscottgadgets.com/sdr/1/的lesson1.grc,发现osmocom source提示找不到
应该是gr-osmosdr库没有安装好。
按照http://osmocom.org/projects/gr-osmosdr/wiki完整流程安装cmake时候出错

CMake Error at CMakeLists.txt:45 (find_package):
Could not find a configuration file for package “Gnuradio” that is
compatible with requested version “3.8”.

The following configuration files were considered but not accepted:

/usr/lib/x86_64-linux-gnu/cmake/gnuradio/GnuradioConfig.cmake, version: 3.7.11.0

此时知道安装的gnuradio版本是3.7.11.0,但是看起来要求是3.8版本。刚开始理解为cmake版本不够新,又折腾一番重新安装cmake新版本还是无果。
最后终于gr-osmosdr/wiki介绍步骤里面想通了,经过近年的更新gr-osmosdr默认要搭配gnuradio 3.8但是用默认不切分支会下3.7.11(可能这个是稳定版本吧),gnuradio在Pybomb安装用的git资源是清华的镜像站(默认貌似网络不稳定?),是没有更新gnuradio?

If you are building for gnuradio 3.6 series, you have to switch to the gr3.6 branch as follows

git checkout gr3.6

最后用git checkout gr3.7切换之后cmake之后流程全部成功,下面就是cmake成功的界面
######################################################
– # Gnuradio enabled components
– ######################################################
– * Python support
– * Osmocom IQ Imbalance Correction
– * sysmocom OsmoSDR
– * FUNcube Dongle
– * FUNcube Dongle Pro+
– * IQ File Source & Sink
– * Osmocom RTLSDR
– * RTLSDR TCP Client
– * HackRF & rad1o Badge
– * RFSPACE Receivers
– * Red Pitaya SDR

– ######################################################
– # Gnuradio disabled components
– ######################################################
– * Ettus USRP Devices
– * Osmocom MiriSDR
– * nuand bladeRF
– * AIRSPY Receiver
– * SoapySDR support
– * FreeSRP support

– Building for version: 0.1.5 / 0.1.5
– Using install prefix: /usr/local
– Configuring done
– Generating done
– Build files have been written to: /home/zf/gr-osmosdr/build

打开gnuradio-companion不再报错找不到osmocom source。
终于正常了

用虚拟机的注意把设备连接过来到虚拟机
在前面的搭建过程HackRF驱动等等都是装好的,运行lesson1.grc,终于能把HackRF板输入实网的FM频段波形的FFT显示(频谱仪功能),也有声音,但是声音很卡,按照osmosdr的课程视频讲可能是采样率太高,改为从20M改10M到1M还是比较卡,把FFT SINK禁用也卡,此处不得而知。osmosdr的课程说显示左下角提示OOOO字符是Overrun,我是提示Ua字符。从任务管理器gnome-system-monitor来看运行过程中CPU RAM占用不是很高,此处问题不得而知,可能是前面装gnuradio有提示的报错缺东西吧,也有可能是虚拟机的锅,总之能跑起来先进行学习吧。

二 WIN下的GNURADIO

在前面折腾很久在Ubuntu虚拟机环境下osmocom source没解决的情况下,先走win路线应急了。http://www.gcndevelopment.com/gnuradio/downloads.htm找到资源,下载了v3.7.13.5/v1.6 是个稳定版本,从说明来看是带了各种插件。WIN下的GNURADIO文件夹下还带了zadig-2.4,用这个安装win下的驱动即可。注意带Portapack的用按钮选择进入HackRF mode。
这个简单安装后打开osmocom source正常,运行后无窗口弹出。检查HackRF驱动没问题,用SDR#跑收音机功能是好的。
WIN下安装的GNURADIO默认各个block有,但是在有osmosoure跑不起来
然后自己随便搭建一个,FFT PLOT能出来
在这里插入图片描述

WIN下的其他搭建可以用,但是HackRF板子和osmocom source就是无法联动起来。作罢了。WIN下就先用SDR#玩收音机了

三 Portapack的使用

Portapack是一个扩展套件,用于脱机使用一些功能,目前拿到手里的可能是H1版本,传闻已经有H2。固件用了轻触科技(gridrf),开发固件下载工具和固件,不开源代码。
参考流程 https://blog.csdn.net/shukebeta008/article/details/103270214 感谢 舒克贝塔008,基本是仿照他的步骤
将USB连接电脑后,工作于HackRF mode识别USB硬件,然后刷gpssim固件,之后菜单就有那一行

在这里插入图片描述
播放的GPS信号文件需要拷贝到TF卡,在 舒克贝塔008流程里面有已经做好的,可以省去大把时间。TF卡格式化为FAT32, Portapack能识别。然后播放了,信号很强。在GPS simulator里面选择使能PA和调节功能貌似不好用,一直很强,也有可能是太近的原因饱和了吧。但是一直无法定位,真让人恼火,手机试过2个小米手机,开飞行模式,等1分钟无法定位。
星很强,不能定位且时间不出现
按照舒克贝塔008视频说的 老款时钟精度问题。和开发板卖家确认Portapack是TCXO 0.5PPM,这里还是将信将疑。要么再试试用PC控制跑吧。
舒克贝塔008的视频

四 Ubuntu下GPS-SDR-SIM

基于前面的失败经验,在虚拟机Ubuntu 18.04搭建GPS-SDR-SIM很简单顺畅,
原版git https://github.com/osqzss/gps-sdr-sim
参考教程1 https://www.cnblogs.com/k1two2/p/5164172.html (静态)
参考教程2 https://www.cnblogs.com/k1two2/p/6387701.html (动态)
先用了教程1 搭建静态的,编译很快完成可以执行,用了gps-sdr-sim默认的星历文件生成了gpssim.bin,在开发板选择到HackRF mode,可以运行。
gpssim.bin可以拷贝到TF卡给Portapack的GPS simulator使用。
星历文件从NASA下载ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily 选择后缀是xx n的文件即可。按照要求选某天的星历,再用gps-sdr-sim的-l 加经纬度坐标和高度,就可以做出对应地点的波形文件(在git上描述为I/Q sampling data file,不知这样描述准确么),还有很多参数可选,最关键的是在HackRF使用必须是-b 8(iq_bits 8位)。不加这个参数默认16无法出星,举例如下
./gps-sdr-sim -e brdc3540.14n -l 29.643598,91.101319,100 -b 8
经纬度是29.643598,91.101319,高度100m,iq_bits是8

执行的话,依靠 简单易懂,
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0
几个参数意思是 发射文件,频点,采样率,PA使能,功能。默认这种情况手机就显示CN值60多了,建议降低一下例如-a 0 ,或者手机远离一点,可能导致定位程序过滤不正常的。

搭建这个环境后运行,还是类似前面Portapack状态,手机搜星很强不定位,时间也没有。
和卖家联系再次确认了TCXO规格书都给过来了,看起来是没问题的。拆机看了应该是TCXO,顺带发现板子的TCXO信号跳线电阻100R焊盘0402贴了0603,用万用表确认是贴片器件通的。HackRF是支持多时钟源的,不知道这个时钟用上了没有。

和一个做过GPS的学弟探究半天,建议我再试试飞行模式重启,同时控制下信号强度,有可能过滤掉了,最后终于成功,在PC端运行GPS-SDR-SIM和Portapack都可以,就是定位时间比较久。接近1分钟,按照一般GPS模块性能强信号应该40秒内定位。
此处坑点可能是:只是飞行模式,手机上一状态还有星历数据在,面对突变做了过滤,重启后清掉了。在GPSTEST应用里面点clear AGPS可能没效果。
手机远离一点定位了
在这里插入图片描述
手机离的近超强信号也定位了
WINDOWS下也可以运行GPS-SDR-SIM,要在VS环境编译2个文件。在前面没成功的情况下试了一波,先是各种找VS版本,然后编译也一堆报错,没搞过,放弃了。在pudn上看到别人做好的编译执行文件,要付费下载作罢。

后面继续学习osmocom大神的课程。

五 HackRF的一些资料

1 hackrf-master.zip是git上hackrf软硬件开放资源,下载下来了。HackRF板子的固件不需要下载,出厂卖家做好的。之前没发现批量下载功能,还在找工具。
在这里插入图片描述
2 在win和虚拟机Ubuntu都安装了KICAD,把原理图转出PDF,方便查阅省的装Kicad打开了。
3 PortapackFirmwareTool.zip是Portapack的固件,用gridrf固件有Gps Simulator
4 sdrsharp是win下的sdr软件检测下板子,先跑跑收音机
5 zadig是win下usb驱动工具

链接:https://pan.baidu.com/s/1iXQm16-93JTPywTQD7oAeg
提取码:4lxm
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200220095603268.png在这里插入图片描述

ZForce2009 发布了1 篇原创文章 · 获赞 0 · 访问量 32 私信 关注

标签:HackRF,Portapack,gnuradio,RF,填坑,https,HACK,osmosdr,GPS
来源: https://blog.csdn.net/ZForce2009/article/details/104404691

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有