π Beamforming ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π° Π½Π° Linux β ΡΠ°Π±ΠΎΡΠ°Π΅Ρ!
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π·Π°Π²ΠΎΠ΄ΠΈΡΡ ΡΠΈΡΠΈ ΠΈΠ· Windows, Π½Π° ASUS UX3405MA Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΡΠ³ΠΎΠ» ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π°Β» β Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Ρ
Π²Π°ΡΠ° Π·Π²ΡΠΊΠ°. Π Linux Π½Ρ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ :)
Π’Π΅Ρ
Π½ΠΈΡΠΊΠ°: Π UX3405MA ΡΡΠΎΠΈΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π΄Π²ΡΡ
ΡΠΈΡΡΠΎΠ²ΡΡ
ΠΌΠΈΠΊΡΠΎΡΠΎΠ½ΠΎΠ² (DMIC) ΡΠ²Π΅ΡΡ
Ρ ΠΊΡΡΡΠΊΠΈ, Π³Π΄Π΅ Π²Π΅Π±ΠΊΠ° (Π°Π»Π΅Π»ΡΡ, Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ Π½Π΅ ΡΠ»ΡΡΠ°ΡΡ ΠΊΡΠ»Π΅ΡΠ°!). ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΠ½ΠΈ ΡΠ΅ΡΠ΅Π· Intel SOF (Sound Open Firmware) β DSP. SOF ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TDFB (Time-Domain Fixed Beamformer) β ΠΎΠ½ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΠΎΠ±ΠΎΠΈΡ
ΠΌΠΈΠΊΡΠΎΡΠΎΠ½ΠΎΠ² ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΡΠΈΡΡΠ΅Ρ Π·Π°Ρ
Π²Π°Ρ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡΠ΅Π³ΠΎ 13 ΡΠ³Π»ΠΎΠ² ΠΎΡ -90Β° Π΄ΠΎ +90Β° Ρ ΡΠ°Π³ΠΎΠΌ 15Β°, Π½ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ 0Β° ΡΠΎ Π΅ΡΡΡ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ.
ΠΠΎΠ½ΡΡΡ, Π΅ΡΡΡ Π»ΠΈ ΡΠΈΡΠ° Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΊ:amixer -D hw:sofhdadsp controls | grep -i tdfb
ΠΡΠ»ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ Dmic0 Capture TDFB beam switch ΠΈ Dmic0 Capture TDFB angle set enum β Π²ΡΡ Π΅ΡΡΡ.
ΠΠΊΠ»ΡΡΠΈΡΡ/Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΡΠ°:
amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB beam switch" on ΠΠΠ off
amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB angle set enum" "0"ΠΡΡΠ΅ΠΊΡ Π²ΠΈΠ΄Π΅Π½ ΡΡΠ°Π·Ρ Π½Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ Π·Π²ΡΠΊΠ° (Π²ΠΈΠ΄Π΅ΠΎ :)
ΠΡΡ Π½Π°ΡΡΠ» Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π° ΡΠ°ΠΌ ΠΆΠ΅!amixer -D hw:sofhdadsp sset "Dmic0 Capture DRC switch" on ΠΠΠ off
Π§ΡΠΎ Π΅ΡΡ ΠΈ "ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ" Π·Π²ΡΠΊ ΡΠΎ Π΄Π½Π°
ΠΡ ΠΈ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΡΠ½Π½ΠΎΡΡΠΈ - Π»Π°ΠΌΠΏΠΎΡΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° beamforming ΡΠ»ΡΡ XF86Launch5 (ΡΡΠΎ Π΄Π»Ρ Niri), Π° ΡΠ°ΠΊ Π² Gnome Π³ΠΎΡΡΡΠΈΡ
ΠΊΠ°ΡΡΠΎΠΌ ΡΠ΄Π΅Π»Π°Π». Π Π²ΠΎΡ LED Π½Π°ΡΡΠ» Π±Π°Π½Π°Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ Π² /sys/kernel/debug/asus-nb-wmi/ ΠΏΠΎ dev_id ΠΏΠΎΠΊΠ° Π»Π°ΠΌΠΏΠΎΡΠΊΠ° Π½Π΅ ΠΌΠΎΡΠ³Π½ΡΠ»Π°. ΠΠΊΠ°Π·Π°Π»ΡΡ 262171.
ΠΡΠΎΠ³ β ΡΠΊΡΠΈΠΏΡ-ΡΠΎΠ³Π»Π΅Ρ: Π²ΠΊΠ»ΡΡΠ°Π΅Ρ TDFB + DRC ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΡ ΠΈ Π»Π°ΠΌΠΏΠΎΡΠΊΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
π Gist ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠΌ
@toxblh_linux