2013-09-19 06:59:16 +0000 2013-09-19 06:59:16 +0000
83
83

"przeładuj" sterowniki audio mac bez restartowania komputera

Mam zewnętrzny interfejs audio (M-audio fast track c400). Aby mój macbook go rozpoznał (wyświetlanie w konfiguracji audio/midi), muszę go zrestartować, co jest kłopotliwe. Miałem już inne interfejsy m-audio, które były automatycznie wykrywane po podłączeniu i jestem pewien, że z tym powinno być tak samo. Większość postów w internecie sugeruje aktualizację systemu operacyjnego lub oprogramowania/firmware dla urządzenia. Zrobiłem wszystkie z tych rzeczy bez powodzenia. Obecnie pracuję na systemie OS X 10.8.5.

Czy istnieje sposób, aby zmusić OS X do przeładowania urządzenia? Najlepiej jakieś voodoo z linii poleceń, które mógłbym szybko odpalić w razie potrzeby lub zawinąć w ładny mały skrypt powłoki.

Edit: Progress…

Problem wydaje się być teraz naprawiony… Nie jestem pewien, w jaki sposób poniższe rozwiązanie rozwiązało problem. Jeśli wiesz, proszę o komentarz!

Zainspirowany odpowiedzią @sbugert'a, zacząłem szukać innych demonów systemowych, które mogą zrobić sztuczkę, jeśli zostaną ponownie uruchomione. Jako strzał w ciemno zabiłem coreservicesd. To spowodowało, że system operacyjny stał się wyraźnie niestabilny i w końcu zostałem automatycznie wylogowany. Ku mojemu zaskoczeniu, kiedy zalogowałem się ponownie, mój interfejs audio został rozpoznany…

Bazując na tym, wysunąłem hipotezę, że zabicie coreservicesd i wylogowanie/wylogowanie może być możliwym (brzydkim) obejściem. Więc odłączyłem interfejs i podłączyłem go z powrotem, i jak się spodziewałem, nie został rozpoznany. Zabiłem więc coreservicesd i próbowałem się wylogować, jednak nie mogłem sprawić, by system się wylogował z powodu niestabilności spowodowanej zabiciem coreservicesd. W końcu zostałem zmuszony do wykonania “twardego” wyłączenia (tj. przytrzymania przycisku zasilania, aż się wyłączy). Po ponownym uruchomieniu macbooka, interfejs jest teraz rozpoznawany automatycznie za każdym razem, gdy go podłączam. Podejrzewam, że ten “twardy” reset mógł rozwiązać problem bez tych wszystkich dziwactw z demonem coreservices, ale nie mam jak tego sprawdzić.

Jeśli ktoś może rzucić na to światło, proszę to zrobić!

Edycja: Znowu przestało działać, więc nie wiem, co się dzieje.

Odpowiedzi (4)

101
101
101
2014-04-17 15:33:52 +0000

EDIT: najprawdopodobniej działa tylko dla osx przed 10.13

To jest to czego potrzebujesz,

sudo kextunload /System/Library/Extensions/AppleHDA.kext
sudo kextload /System/Library/Extensions/AppleHDA.kext

Ale jeśli chcesz zabić również coreaudio,

ps aux | grep 'coreaudio[d]' | awk '{print $2}' | xargs sudo kill

używaj z rozwagą.
Cel grep jest napisany w ten sposób specjalnie po to, aby wykluczyć grepping samego procesu grep w ps out.

77
77
77
2013-09-19 13:31:42 +0000

Spróbuj wpisać to w Terminalu:

sudo killall coreaudiod

Spowoduje to zabicie procesu coreaudio i ponowne jego uruchomienie.

0
0
0
2014-01-07 03:10:12 +0000

To samo rozwiązanie, ale z inną wariacją

sudo kill -9 `ps ax|grep 'coreaudio[a-z]' | awk '{print $1}'`
-1
-1
-1
2019-06-28 23:23:16 +0000

Tutaj odkryłem, że jeśli wybiorę inne urządzenie przed odłączeniem interfejsu (Fast Track C400 również), mogę go później ponownie podłączyć bez problemu. Ale jeśli używam Fast Track'a, a następnie go odłączę, nie może się on połączyć ponownie aż do ponownego uruchomienia.

Pytania pokrewne

6
12
10
5
32