パソコンで携帯基地局を見てみよう!「LTE-Cell-Scanner」インストールから実行まで
アマチュア無線や航空無線受信、ADS-B受信など様々な形で活用されている汎用SDRドングル RTL-SDR、音声を聞く以外にさらに面白いことに使うことができるんです。
有志のソフトウェアを使って身近な場所にある携帯基地局(LTE基地局)を探すことができます。
今回は「LTE-Cell-Scanner」というソフトウェアを使用して実際に試してみます。
想定環境
OS | Ubuntu 22.04 LTS |
SDRレシーバー | RTL-SDR Blog V4 |
・Git, CMake, GCC等必要なビルドツール群が用意されていること。
ビルドとインストール
下準備
まず、必要なライブラリをインストールします。
sudo apt install pkg-config libusb-1.0-0-dev libpthread-stubs0-dev libopenblas-pthread-dev libboost-dev libboost-thread-dev libitpp-dev libopenblas-dev libfftw3-dev opencl-headers
そして、このパッケージはRTL-SDR Blog V3までをお使いの方、その他RTL-SDR互換ドングルをお使いの方のみインストールしてください。
sudo apt install librtlsdr-dev
RTL-SDR Blog V4用ドライバーの準備 (該当する方のみ)
RTL-SDR Blog V4を使う方は、RTL-SDR Blog公式の最新ドライバーを適用する必要があります。
V3までのハードウェアとV4のハードウェアにはほとんど互換性がなく、V4非対応のドライバーを使うと正しく受信できません。
Ubuntu公式リポジトリで配布されているのもはV3までのものなので、自前でビルドしてあげる必要があります。
https://github.com/rtlsdrblog/rtl-sdr-blog をクローンします。
git clone https://github.com/rtlsdrblog/rtl-sdr-blog
cd rtl-sdr-blog
ビルドを行います。
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
ドライバーのインストールと、関係ないドライバが当たらないよう設定を行います。
sudo make install
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
ここまでできたら、一旦OSを再起動してください。
LTE-Cell-Scannerのビルド
https://github.com/JiaoXianjun/LTE-Cell-Scanner をクローンします。
git clone https://github.com/JiaoXianjun/LTE-Cell-Scanner
cd LTE-Cell-Scanner
ビルドを行います。
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
src/
以下にバイナリができます。
いちいちバイナリがある場所に移動して使いたくない!という場合は sudo make install
でインストールできます。
これで準備完了です!
LTE-Cell-Scannerの使い方
このソフトウェアは、「CellSearch」というコマンドと「LTE-Tracker」というコマンドがあります。それぞれの使い方を解説します。
CellSearch
CellSearch はシンプルなコマンドで、指定した周波数にあるセルを検索します。
--freq-start
という引数に周波数を指定します。
Hz単位で指定するため変換する必要がありますが、指数表記が使えるため、MHz単位の値にe6を書き加えれば見やすく指定できます。
--freq-end
に終わりの周波数を指定するとセルが見つかるまで0.1MHzずつずらして検索してくれますがとんでもなく時間がかかるので自分でやったほうがいいです。
867.5MHzにあるセルを探す場合
CellSearch --freq-start 867.5e6
セルが見つかった場合、次のように表示されます。
Detected a FDD cell! At freqeuncy 867.5MHz, try 0
cell ID: [セルID]
PSS ID: 1
RX power level: -32.2652 dB
residual frequency offset: 3704.97 Hz
k_factor: 0.999996
cell ID
がPCIです。RX power level
が受信強度です。値が0に近いほど強度があるということになります。
検出終了後、簡易的なスキャン結果が表示されます。
Detected the following cells:
DPX:TDD/FDD; A: #antenna ports C: CP type ; P: PHICH duration ; PR: PHICH resource type
DPX CID A fc freq-offset RXPWR C nRB P PR CrystalCorrectionFactor
FDD 000 2 867.5M 3.7k -32.2 N 50 N one 1.0000041820743676979
単語 | 説明 |
---|---|
DPX | 無線通信方式の違い。FDD[1] または TDD[2]。 |
CID | セルID。PCI[3]とも。 |
A | アンテナポート数。2 = 2MIMO。 |
fc | 検出されたセルの周波数 |
RXPWR | 受信強度。0dBに近いほど強度が高い |
C | CP (Cyclic Prefix)[4]。通常N (Normal CP)ですが、Starlink Direct To Cellなどのサービスでは今後E (Extended CP)を使用する可能性があります[5]。 |
nRB | Number of RBs。セルに割り当てられているリソースブロックの数。詳細は後述。 |
P | PHICH[6] |
PR | PHICH resource type |
CrystalCorrectionFactor | 不明。この数値はSDRドングルの補正に利用されることがよくある。 |
nRBの値は帯域幅に変換することができます。
nRB | BW |
---|---|
15 | 3MHz |
25 | 5MHz |
50 | 10MHz |
75 | 15MHz |
100 | 20MHz |
LTE-Tracker
LTE-Trackerは、指定した周波数にあるセルを継続的に検索し、品質などを測定できるコマンドです。
-f
に検索したい周波数を指定します。
885MHzにあるセルを検索したい場合
LTE-Tracker -f 885e6
なお、最低でも1セル見つからないと起動前の補正ができずLTE-Trackerが使えません。
測定中このような画面が出ます。
青文字のHealthはセルの情報をデコードできている割合を示しています。セルが遠くなったり掴めなくなったりしてデコードできなくなると数字がだんだん減少していってリストから消えます。
十字キー上下でセルごとの項目を選んでEnterキーか十字キー右を押すと、次のようにグラフが表示されます。
私自身この画面は理解していないため、参考程度に...。
十字キー左で最初のリスト画面に戻ることができます。
おまけ
各キャリアの周波数一覧
※RTL-SDRドングルで受信できる範囲のものを掲載しています。
docomo
周波数 | 帯域幅 |
---|---|
788MHz | 10M |
882.5MHz | 15M |
885MHz | 10M |
1503.4MHz | 15M |
au
周波数 | 帯域幅 |
---|---|
778MHz | 10M |
865MHz | 10M |
867.5MHz | 15M |
1490.9MHz | 10M |
Softbank
周波数 | 帯域幅 |
---|---|
798MHz | 10M |
947.8MHz | 5M |
955MHz | 10M |
1480.9MHz | 10M |
楽天モバイル
周波数 | 帯域幅 |
---|---|
771.5MHz | 3M |
よくある質問
RTL-SDRドングルが対応している周波数は?
24〜1750MHz程度です。携帯通信のバンドであればBand 3(上りの一部), Band 8, Band 11, Band 18, Band 19, Band 21, Band 28に相当します。
周波数は合っているのにセルが表示されない
SDRドングルの性能が低いか、アンテナの性能が低くノイズが多い可能性があります。RTL-SDR Blog公式のドングルを使うか、より性能が高いものに変えてみてください。
さいごに
PCで基地局を探せるLTE-Cell-Scannerを紹介しました。
このソフトウェアはHackRFやBladeRFにも対応しており、RTL-SDRドングルが対応している周波数以上にいるバンドの検索もできますので、興味があれば試してみてください。
JiaoXianjun/LTE-Cell-Scanner
rtlsdrblog/rtl-sdr-blog
-
Frequency Division Duplex。 上りと下りに異なる周波数を利用する。https://ja.wikipedia.org/wiki/周波数分割複信 ↩︎
-
Time Division Duplex。上りと下りは同じ周波数を利用し、時分割で共用する。https://ja.wikipedia.org/wiki/時分割複信 ↩︎
-
Physical Cell ID ↩︎
-
https://www.sharetechnote.com/html/5G/5G_FrameStructure.html#RadioFrame_Structure ↩︎
-
https://www.sharetechnote.com/html/Handbook_LTE_PHICH_PHICHGroup.html ↩︎
Discussion