Jak Intel z Hyper-V się pogryźli, czyli brak dźwięku przez HDMI
08.05.2016 | aktual.: 27.04.2021 17:05
System z Windows 10 Pro na pokładzie. Podłączamy notebook do telewizora kablem HDMI, przełączamy dźwięk z wbudowanego głośnika na urządzenie HDMI i... dźwięku brak. Brzmi znajomo? A może raczej nie brzmi...
Taka sytuacja spotkała mnie wczoraj. Jestem już coraz starszy, a Windowsy coraz głupsze (albo odwrotnie?), więc zdarza mi się czasem machnąć ręką na takie drobne życiowe niepowodzenia. Nie tym razem jednak, zawziąłem się i postanowiłem ten problem rozwiązać. Niestety ani restarty systemu, ani aktualizacje sterowników nie pomogły, telewizor milczał jak zaklęty. Pomogło dopiero intensywne korzystanie z Google, choć na rozwiązanie nie było wcale tak łatwo trafić, bo kto normalny połączyłby w jednym zapytaniu do wyszukiwarki niedziałający dźwięk po HDMI z maszynami wirtualnymi? Tymczasem właśnie to połączenie okazało się trafne i szczęśliwie odnalazłem je na jednym z for dyskusyjnych Microsoftu. Problem dotyczy sterownika Intel Display Audio.
Rozwiązanie przytoczone w dyskusji polegało na wyłączeniu usługi zarządzającej Hyper-V, co jednak w moim przypadku nie zawsze działało. Po wyłączeniu usługi i zrestartowaniu komputera dźwięk faktycznie się pojawił, ale po odłączeniu i ponownym podłączeniu kabla znowu znikał. Wtedy dopiero włączenie, a potem jeszcze raz wyłączenie Hyper-V i restart przynosiły efekt. Przyznacie jednak, że takie szamańskie metody są mało przyjemne. Dlatego poradziłem sobie w sposób bardziej elegancki i chciałbym Wam go przybliżyć, polecając jako moim zdaniem najłatwiejsze rozwiązanie tego dziwnego problemu.
W Windows 10 (i wcześniejszych systemach) bardzo łatwo można tymczasowo w sposób kompleksowy wyłączyć hypervisor na okres jednego uruchomienia systemu. Można tego dokonać poprzez opcję uruchomieniową hypervisorlaunchtype w boot managerze. Idąc dalej, łatwo można stworzyć drugą, alternatywną opcję uruchomieniową i przy starcie komputera po prostu z listy wybierać, czy chcemy uruchomić system z domyślną konfiguracją (która dla wygody będzie startować automatycznie po kilku sekundach) lub też z wyłączonym Hyper-V (jeśli świadomie ją wybierzemy).
Uruchamiamy wiersz polecenia jako administrator i wpisujemy:
bcdedit /copy {current} /d "Windows 10 bez Hyper-V"
Teraz odczytujemy identyfikator nowej, stworzonej przed chwilą drugiej opcji uruchomieniowej:
bcdedit
I modyfikujemy tę opcję, wyłączając Hyper-V:
bcdedit /set {identyfikator} hypervisorlaunchtype off
Gotowe. Możemy jeszcze zmniejszyć czas, jaki boot manager będzie czekał na dokonanie wyboru (zanim uruchomi domyślną opcję, czyli z włączonym hypervisorem). Ponieważ zakładam, że najcześciej Hyper-V nam się jednak przyda, a wyłączać będziemy chcieli go okazjonalnie, proponuję zmniejszyć tę wartość np. do 5 sekund:
bcdedit /timeout 5
Teraz możemy bez rwania włosów z głowy oglądać filmy na telewizorze... albo latać Airbusem ;‑)