Hostapd no IRで5GHzが使えないときの対処法(ドライバ改造)

環境

OS : Ubuntu Server 20.04
カーネル : 5.4.0-70-generic
WLANカード : Killer 1535 (Qualcomm QCA6174A)

athドライバ使うAtherosのカードならおそらくこの方法で解決できると思います。
intel製のカードの場合の対処法は探しても見つかりませんでした…

Hostapdで5GHzが使えない!

hostapdで5GHzなAPを建てようとしても、変なエラー出て失敗します。

電波の地域制限らしいので、現在の状態を見てみます。

no IR と出てるので、やっぱり地域制限が有効になっているようです。

地域を日本にセット

しかし、相変わらずすべてのチャンネルにno IRが表示されて使えません。

そこで、こちらを参考にドライバを改造して地域制限を無効化してみることにしました。

ドライバ改造

まずカーネル全体をコンパイルし、athドライバの部分のソースを修正した後リコンパイルしてできたドライバ(ath.ko)を置き換えるといった手順です。

上の環境でコンパイルしたものを載せておきます。
こちらからどうぞ。

自分でやる方は以下の手順を参考にしてください。

カーネルをコンパイル

別のマシンでコンパイルするときは、’uname -r’を使うマシンのカーネルバージョンに変えて実行し、configファイルも使うマシンからコピーしてきてください。

コンパイルに必要なもの

カーネルをダウンロード(結構でかい)

configをコピー

コンパイル
12の部分は平行処理数です。CPUのスレッド数を指定すればいいと思います。低スぺなので結構時間かかりました。

カーネル修正

変数宣言の直後にreturn;を追加し、最後の関数にはreturn 0;を追加します。
__ath_reg_apply_beaconing_flags()のように似た名前の関数がありますが、こちらは編集してはいけないようです。

リコンパイル
置き換え

出来上がったドライバを今使ってるものから置き換えたら終わりです。

コピーしたら再起動してください。

5GHz出せるか確認

USにセットしてみました。

しっかりno IRが消えて5GHz使えるようになってます!やったね!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です