HyperX illesztő érkezik a Linux 7.3-ba – csak a mikrofon némítási állapotának jelentéséért

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A HID-HyperX illesztő jelenleg gyakorlatilag csak a HyperX QuadCast 2 USB gamer mikrofon némító gombjának állapotát kezeli. Ez egy felső kategóriás USB gamer mikrofon, a gyártó szerint „stúdióminőségű felvétellel”, 149 dolláros listaáron. Többek között „tap-to-mute” érzékelőt kínál, de éppen ez a némító érzékelő/gomb nem viselkedik rendesen Linux alatt.

Benjamin Blume, a HID-HyperX nyílt forráskódú illesztő szerzője elmagyarázta, hogy Linux alatt a mikrofon működése miatt a rendszer sosem tudja, hogy a mikrofon éppen némítva van:

„A HyperX QuadCast 2 (03f0:07b4) tap-to-mute gombját teljes egészében az eszköz firmware-je kezeli. A firmware belsőleg elnémítja a hangot, de soha nem küldi el a Telephony „Phone Mute” usage-et (0x2f), pedig a saját report descriptorában ezt hirdeti, és a UAC feature unitot sem módosítja. Ennek következtében sem evdev billentyűesemény, sem ALSA mixer-változás nem keletkezik, a felhasználói tér pedig semmilyen módon nem tudja meg, hogy a mikrofont némították: az asztali környezetek továbbra is élőként mutatják a mikrofont, a konferenciaalkalmazások pedig némítatlan mikrofont jeleznek, miközben valójában csendet továbbítanak.

A némítási állapotot ehelyett egy gyártóspecifikus collection jelenti:

06 c0 ff Usage Page (Vendor-Defined 0xFFC0)

a1 01 Collection (Application)

06 c1 ff Usage Page (Vendor-Defined 0xFFC1)

85 77 Report ID (0x77)

09 f0 Usage (0xF0)

75 08 95 3f Report Size (8), Report Count (63)

81 02 Input (Data,Var,Abs)

A gomb megnyomásakor egy 64 bájtos report érkezik ezen a collectionön:

77 06 00 00 ... mikrofon némítatlan

77 06 01 00 ... mikrofon némítva

ahol az 1. bájt az eseményt azonosítja, a 2. bájt pedig a létrejövő állapotot tartalmazza. Mivel a payload egy átlátszatlan gyártóspecifikus blob, amely nem tartalmaz HID usage-eket, a hid-input nem tudja leképezni, és egy hwdb bejegyzés sem tudja kifejezni.

Adjunk hozzá egy illesztőt, amely dekódolja a reportot, és KEY_MICMUTE eseményt küld, így a gomb úgy viselkedik, mint bármely más mikrofon-némító billentyű.

Figyelembe kell venni, hogy az eszköz a létrejövő abszolút állapotot jelenti, miközben a KEY_MICMUTE egy pillanatnyi billentyű, amelyet a felhasználói tér kapcsolóként kezel, ezért az illesztő minden állapotváltozásra egy billentyűlenyomást küld.

HyperX QuadCast 2-n (03f0:07b4) tesztelve.”

Ez a javítócsomag mostanra bekerült a HID alrendszer „for-next” Git ágába, és 117 sor C kóddal egészíti ki az illesztőt, hogy megfelelően kezelje a némító gombot – egyelőre csak a HyperX QuadCast 2 esetében. Az illesztőt a hónap későbbi részében olvasztják be a Linux 7.3-ba. A USB gamer mikrofon többi funkciója Linux alatt eddig is rendben működött, és hamarosan a némítási állapot is rendesen látszik majd.