Help us understand the problem. What is going on with this article?

Raspberry Pi 3の内蔵WiFiを無効にしてUSB WiFiアダプタを利用する

More than 3 years have passed since last update.

Raspberry Pi 3 Model Bの内蔵WiFiは、個体差があるかもしれませんが割と貧弱なものなので、代わりにいつも外付けのUSB WiFiアダプタ(ELECOM WDC-150SU2MBK)を使っています。
(以前、内蔵WiFiが貧弱なことに気付かないでルーターが壊れてしまったかと思い、ルーターを買い換えてしまいました😭)

今回の記事では、Raspberry Pi 3の内蔵WiFiを無効にする方法と、USB WiFiアダプタを利用してアクセスポイントに接続する方法を紹介します。

(2017/05/10 修正) ifconfig コマンドの代わりに ip コマンドを利用するようにしました。

内蔵WiFiを無効にしてUSB WiFiアダプタを利用する理由

  • 内蔵WiFiはアクセスポイントから少し距離が離れただけで不安定になったりする
  • 内蔵WiFiを無効にしないままUSB WiFiアダプタを利用しようとすると、内蔵WiFiとUSB WiFiアダプタが同時に同一のアクセスポイントに接続する動作をしてしまう
    • Zeroconfを用いたSSH接続(例: ssh pi@raspberrypi.local)などする場合に、内蔵WiFi経由で繋がる可能性もあり、USB WiFiアダプタ経由で繋がるか怪しくなる
    • 内蔵WiFiを利用している分、無駄な電流(実測値0.02A前後)が流れることになる
無効化設定なし(内蔵WiFi + USB WiFiアダプタ) 無効化設定あり(USB WiFiアダプタのみ)
P4300985.jpg P4300981.jpg

動作環境

  • Raspberry Pi 3 Model B
  • USB WiFiアダプタ: ELECOM WDC-150SU2MBK
    • Raspbian上で追加のドライバが不要
    • 安価(700〜800円程度)
    • チャンネル 2.4GHz : 1~13ch
    • 内蔵WiFiよりもちゃんと電波が飛び、安定している印象です

内蔵WiFiを無効にする

ELECOM WDC-150SU2MBKをRaspberry Piに挿入していない状態から始めていきます。

まず、有線LANでSSH接続をします(Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続するなどを参照)

内蔵WiFiを無効にする前に、 ip link show を確認してみます

Raspbian
pi@raspberrypi:~ $ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DORMANT group default qlen 1000
    link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff

wlan0 があるはずです(ない場合は、お持ちのボードが実はRaspberry Pi 2 Model Bなどだったりするかもしれません。2であっても同様の設定でWDC-150SU2MBKを利用できます)

以下のコマンドをRaspbian上で実行し、 /etc/modprobe.d/raspi-blacklist.conf に内蔵WiFiを無効にする設定を追記します

cat << EOF | sudo tee -a /etc/modprobe.d/raspi-blacklist.conf
#wifi
blacklist brcmfmac
blacklist brcmutil
EOF

ここで ip link show してもまだ wlan0 が出てきますので、再起動をします

Raspbian
pi@raspberrypi:~ $ sudo reboot

再度、有線LANでSSH接続し、 ip link showwlan0 がないことを確認してみましょう

Raspbian
pi@raspberrypi:~ $ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff

WDC-150SU2MBKをRaspberry Piに挿入

いったんシャットダウンをします

Raspbian
pi@raspberrypi:~ $ sudo halt

WDC-150SU2MBKをRaspberry Piに挿入し、再度電源を投入します。
有線LANでSSH接続し、 ip link show を確認します

Raspbian
pi@raspberrypi:~ $ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether bc:5c:4c:xx:xx:xx brd ff:ff:ff:ff:ff:ff

wlan0 がまた出てきましたが、link/etherの右に書いてあるMACアドレスが先ほどのものと異なっているはずです。
MACアドレスの先頭6桁はベンダー識別子となっており、 b8:27:eb がRaspberry Pi Foundationの識別子、 bc:5c:4c がELECOMの識別子となっています(https://mac.uic.jp/ で確認できます)

b8:27:eb bc:5c:4c
b827eb.png bc5c4c.png

SSIDとパスフレーズを設定する

内蔵WiFiもですが、WDC-150SU2MBKは2.4GHz帯のみ利用できます。
ルーターのデフォルトの設定では、2.4GHz帯のSSIDにはgやGといった文字が含まれていることが多いです。

(ssid), (passphrase) を置き換えて以下のコマンドをRaspbian上で実行します

sudo sh -c 'wpa_passphrase (ssid) (passphrase) | grep -v "#psk=" >> /etc/wpa_supplicant/wpa_supplicant.conf'

パスフレーズがない場合は、Life with IT - Raspberry Pi 3でパスフレーズなしのWi-Fiアクセスポイントに接続する設定(Raspbian Jessie Lite)を見て設定してください(自己責任でお願いします)

WiFi経由の接続に切り替える

再起動をし、有線LANのケーブルを抜きます

Raspbian
pi@raspberrypi:~ $ sudo reboot

PCとRaspberry Piが同じネットワークに繋がっていて、適切に設定されていればZeroconfを用いるかRaspberry Piに割り当てられたIPアドレスを調べるなどしてSSH接続ができるはずです

macOS
$ ssh pi@raspberrypi.local

参考サイト

Raspberry Pi 公式フォーラム - How to disable the Pi3's WLAN & Bluetooth ?

mascii
JavaScript, RaspberryPi, Arduino, ESP32の記事が多めです。大学院での専攻はグラフ理論でした。
https://mascii.hatenablog.com/
visasq
ビザスクは「知見と、挑戦をつなぐ」をミッションに、世界で1番のナレッジプラットフォームをつくっています。 様々なニーズにつなぐことで、実際に経験したことで得られた知識や意見を、知見として価値最大化します。組織、世代、地域を超えて、知見を集めつなぐことで、世界中のイノベーションに貢献します。
https://visasq.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした