注: 2023/08/25 追加インストールするライブラリーとして、libnl3-devel
の他にncurses-devel
を追加しています。
CUIで動作するWi-Fi用のモニターツールとしてwavemonがあります。Raspberry Pi OSなどでは、パッケージとしてインストールして動かすことができるのですが、AlmaLinuxではパッケージが提供されていません。
そこで、GitHubで公開されているwavemonをクローンしてビルドしたものをインストールして使うことにしようと思います。
wavemonのクローンとビルド
wavemonをGitHubからクローンします。
$ git clone https://github.com/uoaerg/wavemon.git
wavemonをビルドするために、「第9回 AlmaLinuxでRaspberry Pi用のvcgencmdをビルドする」にある様に開発環境のインストールされているAlmaLinuxに、libnl3-devel
とncurses-devel
パッケージを追加でインストールします。
$ sudo dnf install -y libnl3-devel ncurses-devel
ビルドする準備ができましたら、次の手順でビルドします。
$ cd wavemon
$ ./configure
$ make
wavemonのインストール
wavemonをビルドしたら、次のコマンドでインストールします。
$ sudo make install
/usr/bin/install -c -m 0755 -d /usr/local/bin
/usr/bin/install -c -m 0755 wavemon /usr/local/bin
/usr/bin/install -c -m 0755 -d /usr/local/share/man/man1
/usr/bin/install -c -m 0644 wavemon.1 /usr/local/share/man/man1
/usr/bin/install -c -m 0755 -d /usr/local/share/man/man5
/usr/bin/install -c -m 0644 wavemonrc.5 /usr/local/share/man/man5
/usr/bin/install -c -m 0755 -d /usr/local/share/wavemon
/usr/bin/install -c -m 0644 README.md LICENSE /usr/local/share/wavemon
/usr/local/bin
ディレクトリーにコマンドをインストールして、同時にマニュアルなどをインストールしています。
wavemonの実行
wavemonは、CUIコマンドとして実行しますからコマンドプロンプトでwavemon
と入力します。
wavemonを起動すると、情報画面(info)が表示されて接続しているWi-Fiの状態を見ることが出来ます。
レベルの箇所は、リンクの品質と信号強度が棒グラフ形式で刻々と変化しながら表示されています。
ファンクションキーで画面を切り替えることが出来ますが、F2
キーまたはl
を押下することで信号レベルをヒストグラムで表示することが出来ます。
F3
またはs
でのスキャンでは、権限が不足していると言われてしまいました。
F7
またはp
で環境設定として、設定画面が表示されます。
上下の矢印キーで項目を移動して、左右の矢印キーで設定値を選択することが出来ます。Save configuration
でENTER
を押下して設定値を設定ファイルに保存することが出来ます。
保存した設定ファイルは、$HOME/.config/wavemon
ディレクトリーにwavemonrc
という名前で保存されます。
上記の場合(既定値)は、次のような内容になっています。
$ cd ~/.config/wavemon/
$ cat wavemonrc
interface = wlan0
cisco_mac = off
sort_order = chan/sig
sort_ascending = off
scan_filter_band = both
scan_hidden_essids = on
stat_updates = 100
lhist_slot_size = 4
meter_smoothness = 0
info_updates = 10
override_auto_scale = off
transparent_bg = on
startup_screen = info screen
再度初期化したい場合には、このwavemonrc
ファイルを削除することが出来ます。
F8
またはh
では、ヘルプが表示されませんでした。
F9
またはa
でwavemonの情報が表示されます。今回ビルドしたバージョンは、0.9.4
になっていました。
F10
またはq
でwavemonを終了します。
wavemonのスキャン実行と管理者権限
先ほど、wavemonでF3
またはs
をタイプしてスキャンを実行しようとして権限不足でエラーになりました。
実は、wavemonのインストールをする際に次のようにすることでsuid
付きのコマンドとしてインストールすることが出来ます。この方法でインストールすれば、sudo
コマンドを使わなくても実行できるようになります。
コマンドに不用意にsuid
属性を設定すると、セキュリティ的に問題になる場合もありますが注意が必要ですが、wavemonの場合にはこのような方式も用意されています。
$ sudo make install-suid-root
/usr/bin/install -c -m 0755 -d /usr/local/bin
/usr/bin/install -c -m 4755 wavemon /usr/local/bin
こうしてインストールした、wavemonでスキャンを実行すると次のようにSSID、MACアドレスと共に情報が画面に表示されます。
まとめ
このようにwavemonは、CUIでWi-Fiの情報を見ることが出来ますから、例えばリモート接続している端末の状態を確認することなどもできて便利なコマンドの一つです。