はじめに
Ubuntu 22.04 LTSをインストールしたところ、Wi-Fiが認識されない問題に遭遇しました。調査の結果、MediaTek MT7902チップのファームウェアがUbuntu 22.04に含まれていないことが原因でした。本記事では、トラブルシューティングの過程と、現時点での結論を共有します。
この記事で紹介されているPCの兄弟です。
(wifi モジュールだけ違いましたが...)
https://taisy0.com/2024/09/08/203515.html
環境
- OS: Ubuntu 22.04.5 LTS
- Wi-Fiチップ: MediaTek MT7902
- カーネル: 6.8系(Ubuntu 22.04.5 LTSでは最新)
症状
- Ubuntu 22.04 LTSインストール後、Wi-Fiの設定項目が表示されない
- 設定画面にWi-Fiオプションが見当たらない
- sudo apt updateやsudo apt upgrade行っても改善無し
調査手順
1. Wi-Fiチップの確認
lspci | grep -i network
結果:
MEDIATEK Corp. Device 7902
これで、使っているPCにはMT7902チップが搭載されていることを確認。
2. ドライバモジュールの確認
MT7902はLinuxカーネルのmt7921eドライバで対応しています(MT7921/MT7922/MT7902は同じドライバファミリーを使用)。
modinfo mt7921e
ライセンス情報などが表示され、ドライバモジュール自体は存在していることを確認。
3. ドライバのロード状態確認
lsmod | grep mt7921
何も表示されない → ドライバがロードされていない。
4. 手動でドライバをロード
sudo modprobe mt7921e
5. ロード後の確認
lsmod | grep mt7921
結果:
mt7921e 20480 0
mt7921_common 81920 1 mt7921e
mt792x_lib 69632 2 mt7921e,mt7921_common
mt76_connac_lib 102400 3 mt792x_lib,mt7921e,mt7921_common
mt76 131072 4 mt792x_lib,mt7921e,mt7921_common,mt76_connac_lib
mac80211 1724416 4 mt792x_lib,mt76,mt7921_common,mt76_connac_lib
cfg80211 1327104 4 mt76,mac80211,mt7921_common,mt76_connac_lib
ドライバモジュールはロードされた。
しかし、wifi使えない...。
6. Wi-Fiインターフェースの確認
ip link
結果:
1: lo: <LOOPBACK,UP,LOWER_UP> ...
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
wlan0やwlp~などのWi-Fiインターフェースが存在しない。
7. ファームウェアの確認
ls /lib/firmware/mediatek/ | grep -i 7902
結果:何も表示されない。
MT7902用のファームウェアが存在しないことが判明。
8. ファームウェアの取得を試みる
linux-firmwareリポジトリをクローン:
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
ls linux-firmware/mediatek/ | grep -i 7902
結果:MT7902用のファームウェアは含まれていなかった。
GitLabやその他のソースからも取得を試みたが、404エラーなどで入手できず。
9.分解して確かめる
足のゴムを外し、ネジを全部取る。

結果載っているのが、mt7902だと確実に。
結論
Ubuntu 22.04 LTSでMediaTek MT7902チップのWi-Fiは現時点では使用できない。
原因
- ドライバ(mt7921e)は存在する
- しかし、ファームウェアがlinux-firmwareパッケージに含まれていない
- ファームウェアなしではドライバがデバイスを認識できない
ドライバとファームウェアの違い
| 項目 | ドライバ | ファームウェア |
|---|---|---|
| 役割 | OSとハードウェアの仲介 | ハードウェア内部で動作するソフトウェア |
| 配布 | Linuxカーネルに含まれる | linux-firmwareパッケージで別途配布 |
| 確認方法 | modinfo <ドライバ名> |
ls /lib/firmware/ |
確認コマンドまとめ
| 目的 | コマンド |
|---|---|
| Wi-Fiチップの型番確認 | lspci | grep -i network |
| ドライバの存在確認 | modinfo mt7921e |
| ドライバのロード状態 | lsmod | grep mt7921 |
| Wi-Fiインターフェース確認 | ip link |
| ファームウェア確認 | ls /lib/firmware/mediatek/ |
| ドライバの手動ロード | sudo modprobe mt7921e |
| カーネルログ確認 | sudo dmesg | grep -i mt7921 |
代替案
- 有線LANを使用する - 最も確実
- USBテザリング - スマートフォン経由でインターネット接続
- USB Wi-Fiアダプタ - Linux対応のものを別途購入
参考情報
- MT7902はWi-Fi 6Eに対応した比較的新しいチップ
- Linux kernel 6.1以降でドライバが正式対応
- Ubuntu 22.04はkernel 5.15がベースのため、対応が不十分
最後に
新しいハードウェアをLinuxで使う際は、事前にドライバとファームウェアの対応状況を確認することをお勧めします。特にノートPCを購入する際は、搭載されているWi-Fiチップのモデルを確認し、Linuxでの動作実績を調べておくと良いでしょう。
基本的にはsudo apt updateとsudo apt upgradeを行えば使えるようになります。
以下の記事で、「解決」になってますが、結局wifiモジュール付け替えることが最善みたいな結果になってました。
https://bbs.archlinux.org/viewtopic.php?id=299471