Jump to content

VoodooHDA - guida al patching


nobb1x
 Share

59 posts in this topic

Recommended Posts

GUIDA VOODOOHDA Vers. 1.0

VoodooHDA e' un rimpiazzo di AppleHDA, rimpiazzo significa che entrambi non possono coesistere, bisogna evitare

che il sistema carichi AppleHDA. Questo lo si ottiene in 2 modi, il piu' brutale e' rimuovere il kext AppleHDA dalla directory

System/Library/Extensions, facendo cosi' pero' quando si effettua un aggiornamento del sistema il file viene di nuovo copiato

e bisogna ricordarsi di cancellarlo prima del riavvio.

Soluzione piu' elegante e' di modificare il nostro DSDT, non mi staro' a dilungare su questo, basti sapere che va' cambiata

la voce

 

Device (HDEF)

{

Name (_ADR, 0x001B0000)

 

con

 

Device (AZAL)

{

Name (_ADR, 0x001B0000)

 

e facendo un "Cerca" rimpiazzare eventuali altre voci HDEF presenti con AZAL.

 

INSTALLAZIONE:

Cosa serve? innanzi tutto serve un dump del nostro codec audio, per realizzarlo serve una live distribution di linux

io ho usato ubuntu, si avvia dal cd e si sceglie prova ubuntu senza installarlo sull'hard disk, quando arriva al desktop

si mette una memoria usb, si apre il terminale e si va' in /proc/asound, qui dentro ci sono varie directory e file, cercare

un file che si chiama Codec#0 o comunque se c'e' piu' di un file chiamato Codec# verificare quale di questi e' il dump

della scheda audio, basta fare cat Codec#<nr> |more e vedere come inizia… questo e' il mio…

 

Codec: Realtek ALC889

Address: 0

Vendor Id: 0x10ec0889

Subsystem Id: 0x10250200

Revision Id: 0x100004

 

indubbiamente e' il dump dell'alc 889 del mio notebook, lo salvo sulla memoria usb, cp Codec#0 /mount/media/KINGSTON (nel mio caso!!!)

 

ok, si puo' uscire e riavviare Leopard, verificare che il sistema NON carichi HDAEnabler,ALCInject o che ci siano stringhe EFI per l'audio

meglio verificare 2 volte e se questi file sono in /Extra/Extensions oppure in /System/Library/Extensions, eliminarli e riavviare il sistema.

 

Scaricare verbit -----> http://signal64.osx86.me/audio/verbit.zip

 

Scaricare VoodooHDA adatto al nostro sistema, fare attenzione, le versioni per Leopard non vanno su Snow e viceversa

 

VoodooHDA -----> http://www.projectosx.com/forum/index.php?showtopic=355

 

nel primo thread di questo forum ci sono versioni per entrambi i sistemi, consiglio la 0.2.43

(esiste al momento anche la 0.2.52 ma ancora in debug, la si trova avanti nel thread)

 

Creare una cartella nel desktop, e scompattare la' dentro i file scaricati, copiare qui anche il nostro dump realizzato con linux.

 

adesso viene il bello, serve il Terminale!! verbit e' un simpatico script che fixa i codec verb rendendoli mac-like, in genere ci azzecca

abbastanza ma qualche intervento manuale e' sempre necessario, putroppo verbit funziona da terminale, se avete creato la cartella

sul desktop e l'avete chiamata ad esempio "audio" da terminale bisogna scrivere:

cd Desktop/audio (attenzione alle maiuscole e minuscole!!)

./verbit codec#0 > verbs.txt (codec#0 e' il nome del file dump realizzato con linux, se gli avete cambiato nome adattare la riga di conseguenza)

 

Verbit crea 2 file, verbitdebug.txt e verbs.txt, quello che interessa a noi e' il secondo, aprirlo con textedit, questo e' quello che appare nel mio: (chiedo scusa per la scarsa leggibilita' delle tabelle)

 

Verbs from Linux Codec Dump File: alc889dump.txt

 

Codec: Realtek ALC889 Address: 0 DevID: 283904137 (0x10ec0889)

 

Jack Color Description Node PinDefault Original Verbs

--------------------------------------------------------------------------------------------------------

Digital Black Digital Out at Int HDMI 17 0x11 0x18561130 01171c30 01171d11 01171e56 01171f18

ATAPI Unknown Mic at Int ATAPI 18 0x12 0x99a3094e 01271c4e 01271d09 01271ea3 01271f99

ATAPI Unknown Speaker at Int ATAPI 20 0x14 0x99130110 01471c10 01471d01 01471e13 01471f99

1/8 Black HP Out at Ext Left 21 0x15 0x0321101f 01571c1f 01571d10 01571e21 01571f03

1/8 Black Speaker at Ext Rear 22 0x16 0x411111f0 01671cf0 01671d11 01671e11 01671f41

1/8 Black Speaker at Ext Rear 23 0x17 0x411111f0 01771cf0 01771d11 01771e11 01771f41

1/8 Pink Mic at Ext Left 24 0x18 0x03a19c50 01871c50 01871d9c 01871ea1 01871f03

1/8 Black Speaker at Ext Rear 25 0x19 0x411111f0 01971cf0 01971d11 01971e11 01971f41

1/8 Blue Line In at Ext Left 26 0x1a 0x03813440 01a71c40 01a71d34 01a71e81 01a71f03

1/8 Black Speaker at Ext Rear 27 0x1b 0x411111f0 01b71cf0 01b71d11 01b71e11 01b71f41

1/8 Black Speaker at Ext Rear 28 0x1c 0x411111f0 01c71cf0 01c71d11 01c71e11 01c71f41

Digital Purple Speaker at Ext N/A 29 0x1d 0x4016852d 01d71c2d 01d71d85 01d71e16 01d71f40

Optical Black SPDIF Out at Ext Left 30 0x1e 0x03451120 01e71c20 01e71d11 01e71e45 01e71f03

1/8 Black Speaker at Ext Rear 31 0x1f 0x411111f0 01f71cf0 01f71d11 01f71e11 01f71f41

--------------------------------------------------------------------------------------------------------

 

 

Jack Color Description Node PinDefault Modified Verbs

--------------------------------------------------------------------------------------------------------

Digital Black Digital Out at Int HDMI 17 0x11 0x18561130 01171c30 01171d10 01171e56 01171f10

ATAPI Unknown Mic at Int ATAPI 18 0x12 0x99a3094e 01271c40 01271d00 01271ea3 01271f90

ATAPI Unknown Speaker at Int ATAPI 20 0x14 0x99130110 01471c10 01471d00 01471e13 01471f90

1/8 Black HP Out at Ext Left 21 0x15 0x0321101f 01571c60 01571d10 01571e21 01571f00

1/8 Pink Mic at Ext Left 24 0x18 0x03a19c50 01871c50 01871d90 01871ea1 01871f00

1/8 Blue Line In at Ext Left 26 0x1a 0x03813440 01a71c70 01a71d30 01a71e81 01a71f00

Digital Purple Speaker at Ext N/A 29 0x1d 0x4016852d 01d71c20 01d71d80 01d71e16 01d71f40

Optical Black SPDIF Out at Ext Left 30 0x1e 0x03451120 01e71c80 01e71d10 01e71e45 01e71f00

--------------------------------------------------------------------------------------------------------

 

Guardare la seconda tabella, verbit ha ripulito i codec verbs dalle voci non utilizzate o disabilitate

lasciando solo quello che effettivamente e' attivo nel nostro sistema, nella colonna PinDefault potete

vedere i verbs originali, mentre nella Modified Verbs, quelli corretti, per leggere questi verbs bisogna

andare al contrario

 

01171c(30) 01171d(10) 01171e(56) 01171f(10) = 0x 10 56 10 30

Quindi vediamo per esempio,che il nostro Node 17, corrispondente a Digital Out su Internal HDMI deve avere una configurazione

10561030, invece di quella di default 18561130, perche' questo?? perche' come il 99% dell'hardware in circolazione

questi dispositivi sono studiati per Windows e tale S.O. non fa' grossi problemi se le definizioni dei verbs non sono

corrette, oppure vengono patchati a livello di driver software, ognuno dei Verbs esprime un significato, non si tratta di numeri

messi li a casaccio, chi vuole avere una visione piu' chiara (auguri) consiglio di leggersi questi doc.

 

http://www.projectosx.com/forum/index.php?showtopic=465

http://download.intel.com/standards/hdaudi.../HDAudio_03.pdf

http://rapidshare.de/files/48146006/VerbCheatSheet.rtf.html

 

ricostruiamo quindi la nostra configurazione e passiamola a VoodooHDA, dentro al kext c'e' un Info.plist dove

esiste uno spazio apposito per inserire la configurazione personalizzata dei verbs. la sezione e' questa:

 

<key>NodesToPatch</key>

<array>

</array>

 

la modificheremo cosi', aggiungendo i nostri Pin (Node) e i nostri Verbs (Config)

io ho 8 Nodes cosi' aggiungero 8 voci.

(questa ovviamente e' la mia, non fate copia e incolla degli stessi valori)

 

<key>NodesToPatch</key>

<array>

<dict>

<key>Node</key>

<integer>17</integer>

<key>Config</key>

<string>0x10561030</string>

</dict>

<dict>

<key>Node</key>

<integer>18</integer>

<key>Config</key>

<string>0x90a30040</string>

</dict>

<dict>

<key>Node</key>

<integer>20</integer>

<key>Config</key>

<string>0x90130010</string>

</dict>

<dict>

<key>Node</key>

<integer>21</integer>

<key>Config</key>

<string>0x0021101f</string>

</dict>

<dict>

<key>Node</key>

<integer>24</integer>

<key>Config</key>

<string>0x00a19050</string>

</dict>

<dict>

<key>Node</key>

<integer>26</integer>

<key>Config</key>

<string>0x00813070</string>

</dict>

<dict>

<key>Node</key>

<integer>29</integer>

<key>Config</key>

<string>0x40168020</string>

</dict>

<dict>

<key>Node</key>

<integer>30</integer>

<key>Config</key>

<string>0x00451080</string>

</dict>

</array>

 

Chi mi ha seguito fino a questo punto, notera' che io non ho usato la configurazione suggerita da verbit

per le cuffie… perche?? perche' se seguo quello che mi dice lui non mi funziona piu' l'autosensing quando

inserisco la cuffia, ho fatto qualche prova e ho visto che usando 1f al posto di 60 che verbit mi consigliava

l'autosensing funziona, 1f per altro era il valore originale del verb, nei link che ho postato sopra si puo'

trovare la soluzione a piccoli problemi come questo, basta avere pazienza e fare delle prove.

Una volta creato il file Info.plist lo si salva e si puo' provare ad installare VoodooHDA usando KextHelper

il kext va' messo in System/Library/Extensions, non in /Extra/Extensions, del resto essendo un kext non Apple

esso non verra' minimamente toccato nel caso di aggiornamenti di sistema. ok, riavviamo.

 

verificare dentro a Preferenze di Sistema/Audio se i nostri input/output sono a posto,questo e' quello che ottengo io

 

input.tiff

 

 

outputs.tiff

 

Adesso c'e' da sistemare l'ultimo problema, il voodoohda attualmente non permette la regolazione del volume dal pannello,

si puo' regolare solo il master volume, pero' i singoli livelli (line-in,mic-in,line-out ecc) si regolano dal preference panel

di voodoohda, anche di questo pannello ne esistono piu' versioni, una per leopard e una per snow leopard, se si usa quella per

leopard su snow quando lo si fa' partire dice che il pannello deve essere riavviato

 

Allego entrambi i pannelli, ad opera di Fassl (quello per Leo) e di sweec (quello per Snow)

 

Tali pannelli vanno installati con doppio click e infine un ultima operazione per fare in modo che le preferenze vengano rilette

ad ogni avvio. Bisogna usare il package get_rid_the_console-voodoohda.zip (crediti per slicstic) scompattandolo bisogna copiare il file

Voodoo HDA helper dentro a Utility e la cartella VoodooHDA dentro a /Library.

in seguito aggiungere alle opzioni di login di ogni utente l'applicazione Voodoo HDA Helper (vedi esempio)

 

helper.tiff

 

Se il volume e' basso, bisogna regolare lo slider Imix dentro al preference panel.

 

Concludendo, vediamo i Pro e i Contro di VoodooHDA

 

Pros

compatibilita' con molte famiglie di chip audio

relativa facilita' a patchare i nodes

ottima qualita' sonora

open source

 

Cons

distorsione del suono dopo sleep/resume (risolto nella versione 2.5.3)

necessita' di un pannello esterno per regolare il volume

installazione non semplice per i neofiti

lag (per alcuni)(me incluso)

 

Buon smanettamento…

 

get__rid__the_console_voodoohdahelper.zip

SL_VoodooHDA_Pref.zip

Leo_VoodooHDA.pref.zip

Link to comment
Share on other sites

bella guida finalmente in italiano non ne potevo più di seguire quelle degli altri forum perdonami la domanda quando dici una grande famiglia di chip supportati audio intendi anche gli ac97? ho un pentium 4 con ad1981 è possibile secondo te farlo andare su snow?

Link to comment
Share on other sites

dando una rapida occhiata ai sorgenti pare che il codec sia supportato

 

/* Analog Devices */ #define ANALOGDEVICES_VENDORID		  0x11d4 #define HDA_CODEC_AD1884A					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x184a) #define HDA_CODEC_AD1882						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1882) #define HDA_CODEC_AD1883						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1883) #define HDA_CODEC_AD1884						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1884) #define HDA_CODEC_AD1984A					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194a) #define HDA_CODEC_AD1984B					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194b) #define HDA_CODEC_AD1981HD					  HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1981) #define HDA_CODEC_AD1983						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1983) #define HDA_CODEC_AD1984						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1984) #define HDA_CODEC_AD1986A					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1986) #define HDA_CODEC_AD1987						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1987) #define HDA_CODEC_AD1988						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1988) #define HDA_CODEC_AD1988B					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x198b) #define HDA_CODEC_AD1882A					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x882a) #define HDA_CODEC_AD1989B					   HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x989b) #define HDA_CODEC_ADXXXX						HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0xffff)

 

da qui' a dire che funzioni e' un altra cosa, dovresti provare a rimuovere applehda e caricando il voodoo manualmente, controllare se dice che trova il codec oppure se da' un errore. fai un kextload manuale e poi

controlla con dmesg che cosa ha messo nel log.

Link to comment
Share on other sites

al momento ho su la 10.5.8 e devo dire che va tutto a meraviglia addirittura con lo sleep nativo quando mi arriverà l'hard disk e uscirà la 10.6.2 (kext per la gma a 64 bit) proverò ad installare snow..grazie tante comunque per la risposta

Link to comment
Share on other sites

Ciao nobb1x!

Cavolo che lavoraccio...premetto che non ci ho ancora provato, volevo prima chiederti una cosa: io ho SL 10.6.1 sul notebook in firma...mi funziona praticamente tutto compreso l'audio, ma quest'ultimo solo in uscita. Il microfono integrato e la linea microfono in ingresso non mi vanno.

Pensavo che con la tua guida avrei risolto ma noto ora che nella tua firma hai scritto "Realtek ALC889 (VoodooHDA,no mic)"...anche se ho visto che hai postato lo screenshot del pannello di controllo e sembra che ti funzioni tutto...sono un po' confuso ;) .

Credi che ci siamo modo di farlo andare? La mia e' una Realtek ALC262...

 

Grazie mille.

Link to comment
Share on other sites

Ciao nobb1x!

Cavolo che lavoraccio...premetto che non ci ho ancora provato, volevo prima chiederti una cosa: io ho SL 10.6.1 sul notebook in firma...mi funziona praticamente tutto compreso l'audio, ma quest'ultimo solo in uscita. Il microfono integrato e la linea microfono in ingresso non mi vanno.

Pensavo che con la tua guida avrei risolto ma noto ora che nella tua firma hai scritto "Realtek ALC889 (VoodooHDA,no mic)"...anche se ho visto che hai postato lo screenshot del pannello di controllo e sembra che ti funzioni tutto...sono un po' confuso :P .

Credi che ci siamo modo di farlo andare? La mia e' una Realtek ALC262...

 

Grazie mille.

 

eheh, in effetti non ho aggiornato la firma, adesso il mic interno mi funziona, nel senso che ticchettandoci sopra vedo dell'attivita' nel monitor di ingresso. non ho mai provato la qualita' sonora.

Fatti un bel backup del kext che usi adesso e fai 2 prove, al limite rimetti quello vecchio :D

Link to comment
Share on other sites

Dunque...io ci ho provato...ma verbit mi restituisce un errore...ho copiato il file codec#0 come da guida (ho usato anche io ubuntu), ma il comando ./verbit codec#0 > verbs.txt crea solo verbs.txt che però contiene solo quanto segue:

 

ERROR: This doesn't appear to be an alsa codec dump file

Codec: Realtek ALC262

Address: 0

Function Id: 0x1

 

Mi sa che qualcosa non ha funzionato... :P

 

EDIT: boh...ho provato anche a ricopiare il dump...ma niente. Vi allego i file.

 

Codec#0: codec_0.zip

Contenuto del file Codec#0: codec_0.txt

Link to comment
Share on other sites

Qualcuno ha avuto il mio stesso problema? Pecchè a me non vaaaaa? :whistle::) :) :(

 

ho visto il tuo dump, devi togliere una riga.

questa:

Function Id: 0x1

 

e' proprio all'inizio, poi salva il file come file di testo.

 

cmq se non riesci,ecco il verbit.txt per il tuo codec.

verbit.txt.zip

Link to comment
Share on other sites

@nobb1x

Complimenti per la guida.

Ho provato ad installare il VodooHDA.kext e il pannello prefpane per SL. Tutto sembra funzionare alla perfezione.!!!

poi ho anche eseguito le istruzioni per "get__rid__the_console_voodoohdahelper" ma non riesco a capire cosa avviene e a cosa serve.

Puoi dare un chiarimento?

 

Grazie

Link to comment
Share on other sites

@nobb1x

Complimenti per la guida.

Ho provato ad installare il VodooHDA.kext e il pannello prefpane per SL. Tutto sembra funzionare alla perfezione.!!!

poi ho anche eseguito le istruzioni per "get__rid__the_console_voodoohdahelper" ma non riesco a capire cosa avviene e a cosa serve.

Puoi dare un chiarimento?

 

Grazie

 

se tu usi il voodoohdahelper e lo metti nelle opzioni di login, ha un brutto difetto, quello di lasciare una finestra di terminale aperta, il get_rid... ecc... usa un altro sistema per lanciare l'helper e non usa il terminale. giusto cosmesi....

Link to comment
Share on other sites

  • 3 weeks later...

occhio che nel tread che ho segnalato all'inizio e da dove si puo' scaricare le ultime versioni, ce n'e' un altra, la 2.52 che e' uscita proprio in questi giorni. la sto' provando da poco, e sul mio portatle almeno, pare che non ci sia nemmeno piu' la necessita' di patchare i nodi, leggo pero' nel tread che per alcuni chip audio il patching e' sempre necessario.

Finalmente risolto il bug che faceva distorcere l'audio dopo il suspend/resume!!!

Link to comment
Share on other sites

occhio che nel tread che ho segnalato all'inizio e da dove si puo' scaricare le ultime versioni, ce n'e' un altra, la 2.52 che e' uscita proprio in questi giorni. la sto' provando da poco, e sul mio portatle almeno, pare che non ci sia nemmeno piu' la necessita' di patchare i nodi, leggo pero' nel tread che per alcuni chip audio il patching e' sempre necessario.

Finalmente risolto il bug che faceva distorcere l'audio dopo il suspend/resume!!!

 

 

E' proprio la 2.52 che sto utilizzando, ma almeno nel mio caso il patching dei nodi e' stato necessario :(

 

Ciao

Link to comment
Share on other sites

no, assolutamente, in quali situazioni te ne stai accorgendo? :P

 

Ciao barb

quando alzo il volume e abbaso il volume......oppure quando spegno con il mio script di shutdown...fa un bip distorto ritardato!

 

con i 0.2.43 va bene (tanto non uso lo sleep)

Link to comment
Share on other sites

Ho appena provato barb, sia abbassando che alzando il volume, andando in sleep, spegnendo, ma nulla :P

 

Ascolta, tu hai patchato i nodi o fai fare tutto "il lavoro" al kext non modificato?

 

;) Ciao

non modificato....vorrei cambiare i nomi dei jack, ma devo lavorarci su...ancora non ho capito bene il dafarsi!

Link to comment
Share on other sites

Per cambiare i nomi lo puoi fare solo patchando i nodi, 0 per line out, 1 per speaker, 2 per cuffie, etc.. se ti ricavi il codec#0 da linux, seguendo la guida e' molto molto semplice, scarica il pinconfigurator in allegato, non ti servira' per patchare nulla, semplicemente per "vedere" a cosa corrispondono le stringhe di 8 numeri che ti ritroverai una volta dato in pasto il codec a verbis, e potrai cosi' far diventare un line out come speaker e via di seguito. Sempre se non ho capito male il tuo intento, se s“, che cosa intendi con il cambiare "nome al jack"?

 

Ciao

PinConfigurator.zip

Link to comment
Share on other sites

Per cambiare i nomi lo puoi fare solo patchando i nodi, 0 per line out, 1 per speaker, 2 per cuffie, etc.. se ti ricavi il codec#0 da linux, seguendo la guida e' molto molto semplice, scarica il pinconfigurator in allegato, non ti servira' per patchare nulla, semplicemente per "vedere" a cosa corrispondono le stringhe di 8 numeri che ti ritroverai una volta dato in pasto il codec a verbis, e potrai cosi' far diventare un line out come speaker e via di seguito. Sempre se non ho capito male il tuo intento, se s“, che cosa intendi con il cambiare "nome al jack"?

 

Ciao

PinConfigurator.zip

sisi hai capito bene....solo che non mi va tanto di installare linux.....appena mi viene la voglia ci provo;)

Link to comment
Share on other sites

 Share

×
×
  • Create New...