Linuxで弱いWi-Fi電波を改善する方法:実証済みの4つのソフトウェア修正
多くのLinuxユーザーにとって、Wi-Fi信号の安定性は大きな悩みの種です。残念ながら、この問題については誤った情報も少なくありません。「Linuxを使うと無線LANが使えなくなる」と思い込み、ディストリビューションの利用自体を避けてしまう人さえいます。しかし、それは事実とは異なります。Linuxで無線の受信感度を改善する方法は主に4つあり、いずれもソフトウェア(ドライバ)レベルの修正で対応可能です。
始める前のハードウェア確認
ソフトウェア側の対策に進む前に、物理的な接続状態を確認しておきましょう。ノートPCなどに内蔵されたWi-Fiカードを使用している場合は、カードがしっかりと装着されているかをチェックします。必要であれば、必ず電源を切ってから本体底面のカバーを開け、装着状態を確認してください。また、USB接続のWi-Fiドングルを使っている場合は、コネクタが奥まできちんと差し込まれているかを確かめてから、以下の方法を試しましょう。
方法1:プロプライエタリ(専用)Wi-Fiドライバを使用する
Ubuntuユーザーは、Dashを開いて「ソフトウェアと更新」を選択するか、検索バーに入力してアプリを起動します。Xubuntu、Kubuntu、Lubuntuの場合は、アプリケーションメニューを開くか、Alt+F1キーを押して「設定」から該当アプリを探してください。
「追加のドライバー」タブをクリックして少し待つと、「追加のドライバーを検索しています」というメッセージが表示されます。そもそもWi-Fiにまったく接続できない場合は、イーサネットケーブルを接続し、ドライバ検索のためのインターネット接続を確保する必要があります。
候補としてドライバ名が表示されたら、それを選択して「変更を適用」ボタンをクリックするとインストールできます。このとき、ドライバ名が使用中の無線アダプタと一致していることを必ず確認してください。この問題に直面しているユーザーの多くは、Realtek、Broadcom、Marvell、Lucent、Intel製のハードウェアを使っています。一方、Qualcomm Atheros製デバイスの場合は、ほとんどのケースでインストールを行わないでください。
「追加のドライバーは見つかりませんでした」と表示されることもあります。これは、すでにドライバがインストール済みであるか、カーネルがハードウェアを認識していない、あるいはオープンソースドライバで完全にサポートされているQualcomm Atheros製ハードウェアであることを意味する場合があります。
ドライバを選択した場合は、インストール完了のメッセージが表示されるまで待ち、「閉じる」ボタンでウィンドウを閉じてください。処理中にgksuの認証画面が出た場合は、通常の管理者パスワードを入力してEnterキーを押せば先へ進めます。
なお、Free Software Foundation(FSF)の方針に準拠したディストリビューションではこの方法は使えません。TrisquelやFedoraのユーザーは、すぐに方法4へ進んでください。
方法2:プロプライエタリドライバを削除する
Linux Mintや各*buntu系、一部のDebian系ディストリビューションでは、初回セットアップ時にプロプライエタリなドライバがインストールされていることがあります。また、方法1を実行した結果、予期しない問題が起きるケースもあります。いずれの場合も、同じ手順を逆にたどれば解決できます。
再び「ソフトウェアと更新」を開いて「追加のドライバー」タブを選択し、インストール済みの代替ドライバをクリック(またはカーソルキーで選択)してから「元に戻す」ボタンを押すと、以前のドライバへロールバックされます。処理には数分かかり、その後カーネルが無線ハードウェアを再認識します。「ドライバを更新する前に再起動が必要です」と表示されたら、開いているアプリの作業を保存してから再起動してください。
システム再起動後は、以前のオープンソースドライバが自動的に使われます。操作中にgksuの認証画面が表示された場合は、*buntu系ではrootユーザーが無効化されているため、管理者パスワードを入力してEnterキーを押すだけで続行できます。
方法3:OSインストール時にプロプライエタリドライバを選択する
多くのLinuxディストリビューションでは、OSのインストール時に追加ドライバを組み込めます。ISOファイルをUSBメモリやSDカードに書き込み、そこから起動して言語選択まで進めた状態を想定してください。
*buntu系、Linux Mint、Bodhi Linuxのグラフィカルインストーラには「サードパーティ製ソフトウェアをインストールする」というチェックボックスがあります。これにチェックを入れると、プロプライエタリな無線ドライバに加えて、MPEG Layer-3コーデックなども一緒にインストールされます。
LubuntuのalternateインストーラISOの場合は、ncursesベースのテキストUIで同じプロンプトが表示されます。下矢印キーでチェックボックスまで移動し、スペースキーで選択してください。効果はグラフィカル版と同じです。どちらの場合も、あとは通常どおりインストールを進めます。
インストール中に無線ネットワークへの接続を求められることがありますが、イーサネットケーブル接続中であればまず表示されません。表示された場合は、カーソルキーでネットワークを選択してEnterキーを押し、Wi-Fiルーターに記載のパスフレーズを入力します。グラフィカルインストーラなら、接続をクリックするだけで選択できます。パスフレーズを変更している場合は、新しい方を使用してください。
繰り返しになりますが、FSFはこの種のドライバに依存する構成を承認していません。Fedora、Trisquel、Parabola GNU/Linux-Libreなど、フリーソフトウェアのみで構成されたディストリビューションではこの手法は使えません。openSUSEのインストーラにも同様のオプションがない場合があります。
方法4:コマンドラインで受信感度を改善する
Windows 10やmacOSでは同じWi-Fiカードが正常に動作するのに、Linux上でのみ電波が弱い——そんな経験はありませんか? 方法1〜3でも解決しなかった場合は、コマンドラインからの修正を試してみてください。この方法は、主にオープンソースの無線ドライバを使用している環境で有効です。
まず、自分の無線デバイス名を把握する必要があります。Ctrl+Alt+Tを同時に押してターミナルを開き(またはメニューから「端末」を起動)、lspciコマンドを実行してPCIデバイスの一覧を表示します。ベンダー名がわかっているなら、lspci | grep -i realtekのようにgrepと組み合わせると絞り込めます。大抵の場合、デバイス数は多くないため、出力を目視すればすぐ見つかるでしょう。
この方法は内蔵無線アダプタ向けです。USB機器の場合は、lsusbまたはlsusb | grep -i wirelessを実行してアダプタ名を調べてください。もしlsusbの出力にアダプタが見当たらない場合は、念のためlspciも試してみましょう。なお、これらのコマンドはroot権限なしで実行できます。
ドライバ名が特定できたら、次のコマンドを順に実行します。
sudo modprobe -rv ドライバ名
sudo modprobe -v ドライバ名 ant_sel=1
たとえばRealtek 8188euドライバなら、sudo modprobe -rv rtl8188euに続けてsudo modprobe -v rtl8188eu ant_sel=1を実行します(それぞれEnterキーを押してください)。Realtek 8723beドライバの場合は、rtl8188euの部分をrtl8723beに置き換えます。Ralink製機器向けのGPLドライバも同様の手順で動作するはずですが、Realtek以外ではうまくいかないことがあります。幸い、Realtekのドライバはほぼ同じ挙動を示します。
この操作でシステムを壊す心配はありません。万が一インターネット接続が完全に失われても、Alt+F4で再起動を選ぶ、メニューから再起動する、あるいはCLIでrebootと入力すれば、標準ドライバが再読み込みされ元に戻ります。再起動前に他のアプリの作業内容は保存しておきましょう。
注意点として、この方法による変更は一時的なものです。起動スクリプトにコマンドを追記すれば恒久化できると説くガイドもありますが、それは誤りで、その方法では設定が無効化されてしまいます。変更を永続化するには、実際に効果のあったドライバ名を使って次のように実行します。以前うまくいった場合にのみ行ってください。
echo "options rtl8723be ant_sel=1" | sudo tee /etc/modprobe.d/rtl8723be.conf
実行後は、手動で再起動して設定が保持されているか確認してください。「teeがインストールされていない」というエラーが出た場合は、代わりに次のコマンドを試してください。
su -c 'echo "options rtl8723be ant_sel=1" > /etc/modprobe.d/rtl8723be.conf'
Fedoraのシングルユーザー環境で、sudo実行時にrootパスワードを求められて困っている場合は、他のディストリビューションと同様に自分のユーザーパスワードでsudoを使えるよう設定できます。su -と入力してrootになり、rootのパスワードを入力します。#プロンプトが表示されたら、usermod ユーザー名 -a -G wheelと入力してください(ユーザー名はご自身のものに置き換えます)。これで、先ほどのteeを使ったコマンドを通常どおり実行できるようになります。
著者について

Kevin Arrows(ケヴィン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新の技術動向を追いかけることに深い情熱を持っています。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い分野で多数の記事を執筆しており、複雑な技術的概念を明快かつ簡潔に説明する能力で高い評価を得ています。
-
Linux・Ubuntuでマザーボードの型番を確認する方法|ターミナルとGUI両方の手順を徹底解説
RAMカードやUSB、PCI、PCI Expressデバイスと同様に、Linuxにはシステムに搭載されたマザーボードのメーカーやモデルを調べるためのツールが標準で用意されています。他のデバイスは取り外して目視確認できますが、マザーボードは物理的にアクセスするのが最も困難なパーツの一つです。だからこそ、ソフトウェア経由で情報を取得できるのは非常に便利なのです。デスクトップPCではマザーボードがケース内部に固定され、小型ネットブックやタブレットではほぼ触れることすらできない場合もあります。本記事では、コマンドラインとグラフィカルツールの2つの方法でマザーボード情報を確認する手順を紹介します。どちら
-
LinuxからGoogleにpingを送る方法:インターネット接続テストのクイックガイド
pingコマンドは、リモートサーバーにECHO_REQUEST(エコー要求)を送信し、接続の安定性を確認するための基本的なネットワークツールです。ホスト名やIPアドレスを指定すれば任意のサーバーにpingを送れますが、多くの管理者は安定して稼働しており誰もがアクセスできるGoogleをテスト対象に選びます。Googleへのpingで得られる遅延時間(レイテンシ)を確認すれば、自分のLinuxマシンのインターネット接続が快適な速度で動作しているかを手軽に判断できます。 作業を始める前に、インターネットに接続していることと、ターミナルウィンドウを開いておく必要があります。キーボードの「Ctrl」+