เมื่อเดือนที่แล้วมีรายงานว่า ชิปเซ็ต Mediatek MT7902 (รองรับ WiFi 6E และ Bluetooth 5.x) ได้รับการเพิ่มไดรเวอร์ใน Linux mainline แล้ว และคาดว่าจะถูกรวมใน Linux Kernel 7.0
โมดูล MT7902 ถูกใช้งานในโน้ตบุ๊ก Windows หลายรุ่น แต่ผู้ใช้ Linux ได้เรียกร้องไดรเวอร์มานานเกือบสองปีแล้ว วิธีหนึ่งคือรอให้ไดรเวอร์ถูกเพิ่มเข้ามาในดิสโทรของคุณ แต่ผู้ใช้ชื่อ “hmtheyboy154” ไม่อยากรอ จึงทำการ backport ไดรเวอร์ให้รองรับ Linux Kernel 6.6–6.19 เนื่องจากเรามีโน้ตบุ๊กรุ่น ASUS Vivobook 16 อยู่จึงได้ทดลองใช้งานบน Ubuntu 24.04 และพบว่าสามารถใช้งานได้ โดยคาดว่าน่าจะใช้ได้กับ Linux distributions อื่นๆ เช่นกัน
วิธีนี้ใช้ได้เฉพาะกับไดรเวอร์แบบ PCIe เท่านั้น ดังนั้นหากคุณใช้งานโมดูลแบบ SDIO คุณจำเป็นต้องหาวิธีอื่นแทน สำหรับโน้ตบุ๊กที่ใช้ Ubuntu 24.04 ของเรานั้น ใช้งานโมดูล MediaTek MT7902 แบบ PCIe (รุ่น AW-XB552NF) :
|
1 2 |
jaufranc@CNX-LAPTOP-5:~$ lspci | grep 7902 0000:02:00.0 Network controller: MEDIATEK Corp. Device 7902 |
สามารถติดตั้งไดรเวอร์ได้ภายใน 4 ขั้นตอน:
|
1 2 3 4 |
git clone https://github.com/hmtheboy154/mt7902 cd mt7902/ make -j8 sudo make install |
สามารถเลือกติดตั้งเฟิร์มแวร์เพิ่มเติมได้ แม้ว่าเฟิร์มแวร์นั้นอาจมีอยู่แล้วใน distribution:
|
1 |
sudo make install_fw |
หลังจากนั้น สามารถรีสตาร์ทโน้ตบุ๊กได้ แต่เราเลือกใช้คำสั่ง modprobe แทน:
|
1 |
sudo modprobe mt7902e |
จากนั้นก็สามารถเปิดใช้งาน WiFi บน Ubuntu 24.04 และเชื่อมต่อกับ Access Point ได้
บันทึกของเคอร์เนล (kernel log) มีลักษณะประมาณนี้:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[1014428.026033] wlo1: deauthenticating from 3c:cd:57:f5:af:91 by local choice (Reason: 3=DEAUTH_LEAVING) [1014439.871042] mt7902e 0000:02:00.0: ASIC revision: 79020000 [1014439.966746] mt7902e 0000:02:00.0: HW/SW Version: 0x8a108a10, Build Time: 20251212032046a [1014439.988460] mt7902e 0000:02:00.0: WM Firmware Version: ____000000, Build Time: 20251212032127 [1014440.940270] mt7902e 0000:02:00.0 wlo1: renamed from wlan0 [1014443.452779] wlo1: authenticate with 3c:cd:57:f5:af:91 (local address=10:68:38:3a:0d:da) [1014443.452797] wlo1: send auth to 3c:cd:57:f5:af:91 (try 1/3) [1014443.467182] wlo1: authenticated [1014443.468008] wlo1: associate with 3c:cd:57:f5:af:91 (try 1/3) [1014443.507278] wlo1: RX AssocResp from 3c:cd:57:f5:af:91 (capab=0x511 status=0 aid=3) [1014443.543479] wlo1: associated [1014443.545773] wlo1: Limiting TX power to 27 (30 - 3) dBm as advertised by 3c:cd:57:f5:af:91 |
เรายังได้ทำการทดสอบด้วย iperf3 ผ่าน WiFi ย่าน 5 GHz โดยอยู่ห่างจาก Xiaomi Mi Router AX6000 ประมาณ 2 เมตร
- ดาวน์โหลด
1234567891011121314151617jaufranc@CNX-LAPTOP-5:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 -RConnecting to host 192.168.31.12, port 5201Reverse mode, remote host 192.168.31.12 is sending[ 5] local 192.168.31.152 port 41870 connected to 192.168.31.12 port 5201[ ID] Interval Transfer Bitrate[ 5] 0.00-10.01 sec 528 MBytes 443 Mbits/sec[ 5] 10.01-20.01 sec 530 MBytes 444 Mbits/sec[ 5] 20.01-30.01 sec 477 MBytes 400 Mbits/sec[ 5] 30.01-40.01 sec 484 MBytes 406 Mbits/sec[ 5] 40.01-50.01 sec 432 MBytes 362 Mbits/sec[ 5] 50.01-60.01 sec 493 MBytes 414 Mbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.01 sec 2.88 GBytes 412 Mbits/sec 23 sender[ 5] 0.00-60.01 sec 2.88 GBytes 412 Mbits/sec receiveriperf Done.
- อัปโหลด
12345678910111213141516jaufranc@CNX-LAPTOP-5:~$ iperf3 -t 60 -c 192.168.31.12 -i 10Connecting to host 192.168.31.12, port 5201[ 5] local 192.168.31.152 port 35586 connected to 192.168.31.12 port 5201[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-10.01 sec 433 MBytes 363 Mbits/sec 0 1.09 MBytes[ 5] 10.01-20.01 sec 547 MBytes 459 Mbits/sec 0 2.43 MBytes[ 5] 20.01-30.01 sec 568 MBytes 477 Mbits/sec 0 2.43 MBytes[ 5] 30.01-40.01 sec 567 MBytes 476 Mbits/sec 0 2.43 MBytes[ 5] 40.01-50.01 sec 566 MBytes 475 Mbits/sec 0 2.43 MBytes[ 5] 50.01-60.03 sec 550 MBytes 460 Mbits/sec 0 2.43 MBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.03 sec 3.16 GBytes 452 Mbits/sec 0 sender[ 5] 0.00-60.04 sec 3.16 GBytes 452 Mbits/sec receiveriperf Done.
ความเร็วอยู่ที่ประมาณ 400–450 Mbps ทั้งอัปโหลดและดาวน์โหลด ซึ่งถือว่าเพียงพอเมื่อเทียบกับความเร็วลิงก์ 600 Mbps อีกทั้งผู้ให้บริการอินเทอร์เน็ต (ISP) ก็รองรับความเร็วอัปโหลด/ดาวน์โหลดสูงสุดเพียง 300 Mbps เท่านั้น
เรายังได้ลองใช้งาน Bluetooth ด้วย แต่ในตอนแรกไม่สามารถใช้งานได้ เนื่องจากไม่สามารถเปิดใช้งานจากการตั้งค่าได้ แต่ตอนหลังพบว่าเพียงแค่ต้องใช้ branch อื่นจาก GitHub repo เดียวกันเท่านั้น:
|
1 2 3 4 5 6 7 8 |
git clone https://github.com/hmtheboy154/mt7902 -b bluetooth_backport btusb_mt7902 cd btusb_mt7902/ make -j8 sudo make install sudo make install_fw sudo rmmod btusb suydo rmmod btmtk sudo modprobe btusb_mt7902 |
จากนั้นผมก็สามารถเปิดใช้งาน Bluetooth ได้ จับคู่สมาร์ตโฟนกับโน้ตบุ๊ก และโอนไฟล์จากโทรศัพท์ Android ไปยังโน้ตบุ๊กได้
โปรดทราบว่าโมดูล btusb และ btmtk มีความขัดแย้งกับ btusb_mt7902, ดังนั้นเราจึงต้องถอด (remove) โมดูลเหล่านี้ออก มิฉะนั้นจะเกิดข้อผิดพลาดดังนี้:
|
1 2 |
jaufranc@CNX-LAPTOP-5:~/btusb_mt7902$ sudo modprobe btusb_mt7902 modprobe: ERROR: could not insert 'btusb_mt7902': Exec format error |
ถ้าต้องการตั้งค่าแบบถาวร ให้สร้างไฟล์ /etc/modprobe.d/blacklist_btusb.conf โดยใส่เนื้อหาดังนี้
|
1 |
blacklist btusb btmtk |
ต้องใช้เวลานานพอสมควรกว่าที่โมดูล MediaTek MT7902 จะรองรับ WiFi และ Bluetooth บน Linux แต่ตอนนี้ก็สามารถติดตั้งใช้งานบน Ubuntu 24.04 ได้ค่อนข้างง่าย โดยไม่ต้องรอการปล่อยเวอร์ชันอย่างเป็นทางการ
แปลจากบทความภาษาอังกฤษ : Enabling MediaTek M7902 WiFi and Bluetooth drivers on Ubuntu 24.04 the easy way

บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT




