序
本文章基于 CentOS7 进行安装
GK2A是韩国气象卫星之一,由韩国气象厅开发,KARI制造,于2018年12月4日由欧洲航天局的阿丽亚娜5号将其送上轨道,属于地球同步卫星。
基础环境安装
代码语言:javascript复制yum install -y epel-release
yum install -y wget git lrzsz zip unzip screen
yum install -y make automake gcc gcc-c kernel-devel cmake3 zlib-devel
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c
scl enable devtoolset-8 -- bash
禁用防火墙, 或者自己放行端口
代码语言:javascript复制systemctl disable firewalld
systemctl stop firewalld
安装 LibUSB
如果未安装LibUSB,编译RTL-SDR驱动会出现如下错误
代码语言:javascript复制-- Checking for module 'libusb-1.0'
-- Package 'libusb-1.0', required by 'virtual:world', not found
CMake Error at CMakeLists.txt:88 (message):
LibUSB 1.0 required to compile rtl-sdr
对于Ubuntu与Debian等系统可以尝试使用如下命令进行安装
代码语言:javascript复制sudo apt-get install libusb-1.0-0.dev
或者找到对应你系统版本的 libusbx-devel 手动安装
代码语言:javascript复制https://pkgs.org/search/?q=libusbx-devel
对于和我一样在CentOS 7的同学可以使用如下方式安装
代码语言:javascript复制# 首先下载该RPM包
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libusbx-devel-1.0.21-1.el7.x86_64.rpm
# 安装RPM包
yum install -y libusbx-devel-1.0.21-1.el7.x86_64.rpm
从源码编译 librtlsdr
代码语言:javascript复制git clone https://github.com/steve-m/librtlsdr.git
cd librtlsdr && mkdir build && cd build
# 如果 cmake 提示找不到命令请尝试使用 cmake3
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINSTALL_UDEV_RULES=ON ..
sudo make -j2 install
# Load udev rules and blacklist the DVB driver shipped with the OS
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
sudo ldconfig
echo 'blacklist dvb_usb_rtl28xxu' | sudo tee --append /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf
sudo reboot
从源码编译 goesrecv
代码语言:javascript复制git clone --recursive https://github.com/sam210723/goestools
cd goestools && mkdir build && cd build
# 如果这一步出现找不到 libairspy 请查看 错误1, 如果 cmake 提示找不到命令请尝试使用 cmake3
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
sudo make && sudo make install
cd ~
cp goestools/etc/goesrecv.conf goesrecv.conf
# 编辑 goesrecv.conf 文件
[demodulator]
satellite = "GK-2A"
downlink = "lrit"
source = "rtlsdr"
# [airspy]
# frequency = 1692140000
## 2500000 for the R2, 3000000 for the Mini
# sample_rate = 3000000
# gain = 18
# bias_tee = false
[rtlsdr]
frequency = 1692140000
# sample_rate = 1024000
# gain = 30
# bias_tee = false
# device_index = 0
# 运行
goesrecv -v -i 1 -c goesrecv.conf
代码语言:javascript复制错误 1 (由于未找到适用于红帽系的 libairspy 包,如果出现如下错误,请在 CMakeLists 里将 libairspy 检查注释掉)
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.7.3")
-- Checking for module 'libairspy'
-- Package 'libairspy', required by 'virtual:world', not found
CMake Warning at src/goesrecv/CMakeLists.txt:14 (message):
Unable to find libairspy
-- Checking for module 'librtlsdr'
-- Found librtlsdr, version 0.6.0-31-ga4ea
-- Configuring done
-- Generating done
-- Build files have been written to: /root/goestools/build
代码语言:javascript复制vim ~/goestools/src/goesrecv/CMakeLists.txt
12 - 18 行注释掉
#pkg_check_modules(AIRSPY libairspy)
#if(NOT AIRSPY_FOUND)
# message(WARNING "Unable to find libairspy")
#else()
# add_library(airspy_source airspy_source.cc)
# target_link_libraries(airspy_source ${AIRSPY_LIBRARIES} publisher stdc )
#endif()
63 - 66 行注释掉
#if(AIRSPY_FOUND)
# target_compile_definitions(goesrecv PUBLIC -DBUILD_AIRSPY)
# target_link_libraries(goesrecv airspy_source)
#endif()
运行 goesrecv 测试是否有输出
代码语言:javascript复制[root@localhost ~]# goesrecv -v -i 1 -c goesrecv.conf
Found Rafael Micro R820T tuner
Disabled direct sampling mode
[R82XX] PLL not locked!
2021-08-29T11:54:14Z [monitor] gain: 12.20, freq: 254.0, omega: 18.750, vit(avg): 2077, rs(sum): 0, packets: 0, drops: 4
2021-08-29T11:54:15Z [monitor] gain: 25.02, freq: 2958.7, omega: 18.750, vit(avg): 2086, rs(sum): 0, packets: 0, drops: 5
2021-08-29T11:54:16Z [monitor] gain: 30.72, freq: 7250.1, omega: 18.750, vit(avg): 2090, rs(sum): 0, packets: 0, drops: 4
2021-08-29T11:54:17Z [monitor] gain: 33.04, freq: 13950.2, omega: 18.751, vit(avg): 2094, rs(sum): 0, packets: 0, drops: 6
2021-08-29T11:54:18Z [monitor] gain: 34.16, freq: 19201.4, omega: 18.750, vit(avg): 2099, rs(sum): 0, packets: 0, drops: 5
2021-08-29T11:54:19Z [monitor] gain: 34.79, freq: 21535.1, omega: 18.750, vit(avg): 2101, rs(sum): 0, packets: 0, drops: 5
xrit-rx 安装
代码语言:javascript复制wget https://github.com/sam210723/xrit-rx/releases/latest/download/xrit-rx.zip
mkdir xrit-rx
unzip xrit-rx.zip -d xrit-rx
代码语言:javascript复制解码 GK2A 的数据需要用到密钥 解密后生成的密钥名为 EncryptionKeyMessage.bin
cd xrit-rx
wget --no-check-certificate https://c.ibcl.us/GK2A-Decode_20190811/EncryptionKeyMessage_001F2904C905.bin
python3 ../tools/keymsg-decrypt.py EncryptionKeyMessage_001F2904C905.bin 001F2904C905
安装 Python3
代码语言:javascript复制sudo yum install python34
cd xrit-rx
pip3 install -r requirements.txt -i https://pypi.douban.com/simple
通过 screen 后台运行
代码语言:javascript复制# 请自行查阅screen用法, 这里不过多赘述
screen -S goestools
cd ~
goesrecv -v -i 1 -c goesrecv.conf
screen -S xrit-rx
cd xrit-rx && python3 xrit-rx.py
测试
浏览器输入 http://ip:1692
访问 web 控制台