Raspberry Pi 5のEthernetが使えない
Raspberry Pi 5を購入してから約2週間後に、LANケーブルを挿していてもWi-Fiを切ると通信できていないことに気づきました。以下のような症状から物理的にEthernetの不具合のようだと判断しました。
- Raspberry Pi 5の起動直後ですらEthernetのLEDが光らない
- EthernetポートにLANケーブルを接続しても、LEDは一切点灯しない
そのため、最終的にはRaspberry Piを購入した代理店(Switch Science)に連絡したのですが、それまでにRaspberry Piの問題だと確証を得るまで調べた内容をまとめています。
環境
- Raspberry Pi 5
- RAM: 8GB
- 付属: 「アクティブクーラー」「M.2 SSD HAT」
- 電源: 5.1V/5.0A USB-PD Type-Cコネクタ出力
- Switch Science Link: https://ssci.to/9345
- LANケーブル CAT 6, 6A
- ルーター: Buffalo WSR-3200AX4S
- インターネット回線: NURO (so-net)
- OS: Raspberry Pi OS
原因調査
代理店のサポートに連絡する際にも以下の項目に沿って記入すれば楽になると思います。
- ファームウェアの更新と再起動
-
Wi-Fiに繋げられるようならアップデートと再起動をしましょう
$ sudo apt update $ sudo apt full-upgrade $ sudo rpi-eeprom-update -a $ sudo reboot
- 電源の確認
- 電源は正規品を使っているか?Ethernet以外はRaspberry Piは正常に動作しているか?
- ケーブルの確認
- 同じケーブル・同じルーターのポートに他のPCを接続すると正常に通信可能か?
- Ethernetポートの目視による確認
- 電源に接続した際にEthernetのLEDが一切点灯しないか?
- 基盤上やEthernet周辺に明らかな異常はないか?
特に、Raspberry Piでは新モデルが出るたびに必要な電源が大きくなるで、昔のモデルの電源を流用していると問題が起きやすくなります。
具体的には、Raspberry 5なら27W(5.1V/5.0A)程度必要になります。
For Raspberry Pi 1, Raspberry Pi 2, and Raspberry Pi 3, we recommend the 2.5A micro USB supply. For Raspberry Pi 4 and Raspberry Pi 400, we recommend the 3A USB-C Supply for Raspberry Pi 4. For Raspberry Pi 5, we recommend the 27 W USB-C Power Supply.
コマンドによる症状の調査
結論から書くと、ethtool eth0の最後に「Link detected: no」があったらサポートに連絡していいと思います。
$ ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Full
100baseT/Full
Supported pause frame use: Transmit-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
100baseT/Full
Advertised pause frame use: Transmit-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: MII
PHYAD: 1
Transceiver: external
netlink error: Operation not permitted
Link detected: no
念のため、ip link set eth0 upを試してみても良いかと思います。
メモが残ってなかったのですが、私の環境では何度実行してもNO-CARRIERとかDOWNのままでした。
$ ip link show eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
qdisc fq_codel state DOWN mode DEFAULT group default
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
$ sudo ip link set eth0 up
$ ip link show eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
qdisc fq_codel state DOWN mode DEFAULT group default
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
本来、NO-CARRIERの部分はBROADCASTになっており、DOWNの箇所もip link set eth0 upが正しく実行されていればUPになっているはずです。
ここまでやっても動作しない場合、購入店に連絡した方が良いです。
- お問い合わせフォーム — スイッチサイエンス
- 不良品の交換は商品到着から30日以内なので連絡は早めにした方がいいです
- キャンセル・返品と返金 — スイッチサイエンス
- Raspberry Pi Shop by KSY
その他
優先度は低いですが、以下の項目も調べられるなら調べた方がいいでしょう。
- 付属品の確認
- HATなどを装着しているか?外した状態でも症状は変わらないか?
- USBやHDMIなど他のポートは正常に動作しているか?
- OSが書き込まれているmicroSDカードを抜いたまま起動してもEthernetのLEDは点灯しないか?
他のものを接続しているときにEthernetが使えない場合は電源に問題がありそうです。SDカードを抜いたままの時にEthernetが光るようならOSに問題がありそうです。
最後に、dmesg(display message)コマンドでカーネルが記録しているメッセージにデバイスドライバーなどのエラーがないことを調べました。
$ dmesg | grep eth0
[ 0.394479] macb 1f00100000.ethernet eth0: Cadence GEM rev 0x00070109 at 0x1f00100000 irq 106
[ 7.827325] macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Generic PHY]
[ 7.827333] macb 1f00100000.ethernet eth0: configuring for phy/rgmii-id link mode
ログの内容を簡単にまとめると以下のようになります。
- SoC内のEthernetのMACコントローラが認識された
- Linuxの汎用のPHY(physical layer:物理層)ドライバーが割り当てられた
- 接続方式/通信モードとして、RGMII(Reduced Gigabit Media Independent Interface)モードを設定した
最後に愚痴です。
Geminiに聞いてたらconfig.txtのdevice_tree_addressの値を上書きすればいいよとそれっぽい理由を持って力説されたので、実際に変更してみたらRaspberry Piが立ち上がらなくなりました。映像信号も出力されず、ずっとアクティブクーラーのファンが回り続けてました。
だからAIはダメ自分で勉強しましょう。
SDカードを別のPCに挿し込んでconfig.txtを修正しました。SSDからブートしている場合でもSDカードの方が優先されるのでおそらくこれで治ると思います。
俺はもうGeminiを信用しない。
