第17回 AlmaLinuxでwavemonをビルドする

: 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-develncurses-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の情報表示

wavemonを起動すると、情報画面(info)が表示されて接続しているWi-Fiの状態を見ることが出来ます。

レベルの箇所は、リンクの品質と信号強度が棒グラフ形式で刻々と変化しながら表示されています。

ファンクションキーで画面を切り替えることが出来ますが、F2キーまたはlを押下することで信号レベルをヒストグラムで表示することが出来ます。

wavemonのレベルヒストグラム表示

F3またはsでのスキャンでは、権限が不足していると言われてしまいました。

wavemonのスキャン(権限不足でエラー)

F7またはpで環境設定として、設定画面が表示されます。

wavemonの環境設定画面

上下の矢印キーで項目を移動して、左右の矢印キーで設定値を選択することが出来ます。Save configurationENTERを押下して設定値を設定ファイルに保存することが出来ます。

保存した設定ファイルは、$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では、ヘルプが表示されませんでした。

wavemonのヘルプ画面

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でのスキャン画面

まとめ

このようにwavemonは、CUIでWi-Fiの情報を見ることが出来ますから、例えばリモート接続している端末の状態を確認することなどもできて便利なコマンドの一つです。

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!
目次