เราพบโมดูล MediaTek MT7922 ที่รองรับ WiFi 6 และ Bluetooth 5.3 ในมินิพีซีหลายนุาย แต่ Bluetooth จะไม่ทำงานใน Linux เนื่องจากขาดไดรเวอร์ ซึ่งในโพสต์นี้เราจะแสดงวิธีเปิดใช้งาน Bluetooth ในโมดูล MediaTek MT7922 ได้อย่างง่ายดายเมื่อใช้งานบน Ubuntu 24.04
เราได้กล่าวไว้ก่อนหน้านี้แล้ว่า Ian Morrisson ได้ส่งแพตซ์ (patch) ที่เพิ่ม ID สำหรับโมดูล MT7922 (Azurewave AW-XB591NF) ที่อยู่ในมินิพีซี GEEKOM รุ่นล่าสุดเมื่อเดือนมีนาคมที่ผ่านมา ตามทฤษฎีแล้วอาจจะต้องสร้าง Linux kernel ใหม่ แต่เนื่องจากตอนนี้ Linux 6.10 ได้ปล่อยออกมาแล้ว มันง่ายมากขึ้นเนื่องจาก Canonical ได้ทำให้ Linux 6.10 kernel ใช้ได้สำหรับ Ubuntu ดังนั้นเราจำเป็นเพียงแค่ติดตั้งมัน และปัญหาก็จะได้รับการแก้ไข!
Ubuntu 24.04 มาพร้อมกับ Linux 6.8 เราสามารถเห็นข้อผิดพลาด opcode Bluetooth ใน kernel log
1 2 3 4 5 6 7 8 9 10 11 12 13 |
aey@AE7-CNX:~$ uname -a Linux AE7-CNX 6.8.0-38-generic #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:25:01 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux aey@AE7-CNX:~$ dmesg | grep -i bluetooth [ 7.341849] Bluetooth: Core ver 2.22 [ 7.341877] NET: Registered PF_BLUETOOTH protocol family [ 7.341879] Bluetooth: HCI device and connection manager initialized [ 7.341884] Bluetooth: HCI socket layer initialized [ 7.341888] Bluetooth: L2CAP socket layer initialized [ 7.341894] Bluetooth: SCO socket layer initialized [ 8.863982] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 8.863987] Bluetooth: BNEP filters: protocol multicast [ 8.863991] Bluetooth: BNEP socket layer initialized [ 9.446360] Bluetooth: hci0: Opcode 0x0c03 failed: -110 |
ถ้าคุณไปที่การตั้งค่าเพื่อเปิดใช้งาน Bluetooth คุณจะพบหน้าต่าง “Bluetooth Turned Off” และปุ่มสลับสีเทาที่ไม่สามารถเลื่อนไปทางขวาเพื่อเปิดใช้งาน Bluetooth ได้
เราสามารถเปิดใช้งาน Bluetooth ได้โดยการดาวน์โหลด Linux 6.10 หรือเวอร์ชั่นที่สูงกว่าจากเซิร์ฟเวอร์ mainline kernel server น่าเสียดายที่อิมเมจ amd64 สำหรับ Linux 6.10 ยังไม่พร้อมใช้งานในขณะนี้
1 2 3 4 5 |
wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-headers-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-headers-6.10.0-061000rc4_6.10.0-061000rc4.202406161734_all.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-image-unsigned-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-modules-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb sudo dpkg -i *.deb |
หลังจากรีบูต เราจะตรวจสอบว่า Linux 6.10 กำลังทำงานอยู่และ Bluetooth ได้เปิดใช้งานเรียบร้อยแล้ว
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
aey@AE7-CNX:~$ uname -a Linux AE7-CNX 6.10.0-061000rc4-generic #202406161734 SMP PREEMPT_DYNAMIC Sun Jun 16 21:47:04 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux aey@AE7-CNX:~$ dmesg | grep -i bluetooth [ 1.544918] Bluetooth: Core ver 2.22 [ 1.544956] NET: Registered PF_BLUETOOTH protocol family [ 1.544958] Bluetooth: HCI device and connection manager initialized [ 1.544964] Bluetooth: HCI socket layer initialized [ 1.544968] Bluetooth: L2CAP socket layer initialized [ 1.544974] Bluetooth: SCO socket layer initialized [ 1.555268] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20240219103618 [ 3.807004] Bluetooth: hci0: Device setup in 2201591 usecs [ 3.807017] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported. [ 3.864865] Bluetooth: hci0: AOSP extensions version v1.00 [ 3.864875] Bluetooth: hci0: AOSP quality report is supported [ 4.853938] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 4.853944] Bluetooth: BNEP filters: protocol multicast [ 4.853951] Bluetooth: BNEP socket layer initialized [ 4.855511] Bluetooth: MGMT ver 1.22 [ 6.539271] Bluetooth: RFCOMM TTY layer initialized [ 6.539280] Bluetooth: RFCOMM socket layer initialized [ 6.539285] Bluetooth: RFCOMM ver 1.11 |
เราได้ทำการทดสอบสิ่งนี้กับ มินิพีซี GEEKOM AE7 และสามารถใช้งานได้กับโมดูล Azurewave AW-XB591NF แต่แบรนด์อื่น ๆ ของโมดูล MT7922 อาจมี HW ID ที่แตกต่างกันและผลลัพธ์ของคุณอาจแตกต่างออกไป ควรหลีกเลี่ยงการใช้ RC releases บนเครื่องที่ใช้งานจริง และอาจคุ้มค่าที่จะรอให้อิมเมจ Linux 6.10 พร้อมใช้งาน หมายเหตุ Canonical ปล่อยอิมเมจ Linux mainline โดยไม่มีการรับรองว่าจะใช้งานได้และไม่ให้การรองรับสำหรับอิมเมจเหล่านี้ การเปิดตัว Ubuntu 24.04.1 มีกำหนดในวันที่ 15 สิงหาคม และอาจรวมถึงการเปลี่ยนแปลงเพื่อเปิดใช้งาน Bluetooth บนโมดูล MT7922 (รอการยืนยัน) Linux distributions อื่นๆ จะทำงานได้ถ้าคุณสามารถติดตั้ง Linux 6.10 ได้
แปลจากบทความภาษาอังกฤษ : How to easily enable MediaTek MT7922 Bluetooth on Ubuntu 24.04
![สุธินี-small](https://th.cnx-software.com/wp-content/uploads/2021/02/สุธินี-small.jpg)
บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT