若干詰まった箇所があったので備忘録的に。
1. 環境
~PC~
・ホスト側 : CentOS 7.9.2009
・ゲスト側 : Ubuntu 20.04
※ ゲスト側のUbuntuはCUI環境だけあればよかったので、Ubuntu serverをインストールしました。
~ドングル (レシーバー)~
・RTL2832U+R820T
2. ホスト側の設定
1. 他のUSBデバイスがいるとrtlsdrがエラーになっちゃう件
2. https://bbs.archlinux.org/viewtopic.php?pid=1628757#p1628757
① ドングルをPCに接続する
USBポートにドングルを挿します。自動認識されるはずです。
② ブラックリストの登録
ドングルが自動認識されますが、この時カーネル内のドライバーが勝手に当たってしまいます。SDRとして使う際に邪魔なので、これらを「/etc/modprobe.d/rtlsdr-blacklist.conf」にブラックリストとして登録します (参考1.)。
# vi /etc/modprobe.d/rtlsdr-blacklist.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2830
blacklist dvb_usb_v2
blacklist dvb_core
なお、実際にこのデバイスを使うのはゲスト側OSですが、ホスト側OSでブラックリストに登録しておかないと、USBリダイレクトをする際にクラッシュします。ドングルをPCに接続したら、まずはホストOSでもブラックリストに登録しましょう。
③ USBリダイレクトでエラーになる問題の解決
virt-managerを使い、ホスト側で認識しているUSBをゲスト側にリダイレクトさせたいのですが、「spice-client-error-quark <<デバイス名>> Error setting USB device node ACL: ‘Not authorized’ (0)」のようなエラーが出てしまいました。調べたところ、ホスト側の「/etc/udev/rules.d/50-spice.rules」に若干の追記することで (参考 2.) 取り敢えず解決しましたので、同じ症状が出た方は試してみると良いかもしれません。
# vi /etc/udev/rules.d/50-spice.rules
//末尾に以下の内容を記述//
SUBSYSTEM==”usb”, GROUP=”spice”, MODE=”0660″
SUBSYSTEM==”usb_device”, GROUP=”spice”, MODE=”0660″
EOF
usermod -a -G spice $USER
3. ゲスト側の設定
参考 :
1. Raspberry Piで航空機からの位置情報信号ADS-Bを受信してみた
① RTL-SDR / dump1090の設定
上記参考ページのとおりです。ただ、自動では当たってしまうドングルのドライバーは「2. ホスト側の設定 / ② ブラックリストの登録」と同様に設定しておくことをおすすめします。
② fr24feedの設定
flightradar24の公式HPより、LINUX向けのソフトウェアをダウンロードします。
# wget https://repo-feed.flightradar24.com/linux_x86_64_binaries/fr24feed_1.0.25-3_amd64.tgz
ダウンロードしてきたフォルダを解凍します。
# tar -xzvf fr24feed_1.0.25-3_amd64.tgz
「fr24feed_amd64」というフォルダが出来ますので、その中にある「fr24feed」というファイルを実行し、サインアップします。fr24feedを実行する前に、dump1090が立ち上がっているか確認しておきましょう。
# cd fr24feed_amd64
# ./fr24feed –signup
あとは流れに沿って情報を登録し、再度fr24feedを実行すれば終了です。
# ./fr24feed
4. 終わりに
USBリダイレクト周りで若干手こずりましたが、なんとか安定して動作してくれたので安心しました。サーバーとして使っているPCでfr24feedを動かしたかったのですが、なかなか成功しなかったので、Ubuntuを仮想で入れました。とりあえず満足です。