Jump to content
stumts

Como adicionar _BCL _BCM e_BQC à dsdt?

Recommended Posts

O meu problema é o deste post abaixo:

http://www.insanelymac.com/forum/index.php?showtopic=268219&view=findpost&p=1756055

E a solução foi dada neste outro poste:

http://www.insanelymac.com/forum/index.php?showtopic=268219&view=findpost&p=1758908

Alguém poderia me ajudar a adaptar os "methods" _BCL, _BCM e _BQC à minha dsdt, visto que minha dsdt não possui esses "methods"? Grato.

Aqui está minha dsdt em anexo:

Itautec W7645.aml.zip

Link to comment
Share on other sites

  • Administrators

O problema do post não é a falta dos métodos. Ter os métodos na DSDT é pré-requisito para o uso da kext.

This is a driver for laptops which backlight are controlled by ACPI Methods: if you have _DOS _BCL _BCM _BQC in you DSDT.

Tenta esta outra kext

http://www.insanelymac.com/forum/index.php?showtopic=236835

Donation with Paypal HERE

Donation with Stripe HERE

Donation with BuyMeaCoffee HERE

Donation with Mercado Livre HERE

Donation with Binance 0xdbe48ef6b158f1dd0035d7f49555c99e52f72714

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donation with PiX @danielnmaldonado@gmail.com

Link to comment
Share on other sites

Acabei de testar os dois funcionam e apresentam o mesmo problema. Eu coloco um brilho determinado e quando o pc reinicia volta para 100% e tanto fn + f8 (aumenta brilho)/ fn + f9 ( diminui brilho), quanto pause break (aumenta brilho)/fn + del ( diminui brilho) alteram o brilho, contudo o painel de brilho só aparece na tela quando eu altero o brilho pelo pause break/ fn + del.

Ao que me parece a solução do problema esta neste post:

http://www.insanelymac.com/forum/index.php?showtopic=268219&view=findpost&p=1758908

Link to comment
Share on other sites

  • Administrators

Deve funcionar dessa forma mesmo sem a kext. A ACPIBacklight nem deve funcionar pois você não tem os métodos que ela busca na DSDT, veja as mensagens dela no console.

Donation with Paypal HERE

Donation with Stripe HERE

Donation with BuyMeaCoffee HERE

Donation with Mercado Livre HERE

Donation with Binance 0xdbe48ef6b158f1dd0035d7f49555c99e52f72714

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donation with PiX @danielnmaldonado@gmail.com

Link to comment
Share on other sites

A ACPIBacklight funciona, mas com o problema que eu falei. Como eu vejo as mensagens dela no console?

Eu só consigo alterar o brilho por preferências do sistema > monitores com a ACPIbacklight, sem ela eu mexo na barra e nada acontece.

Link to comment
Share on other sites

Olá!


Estou com um problema parecido.


Estou tentando habilitar o controle de brilho através da kext do post citado (http://www.insanelymac.com/forum/topic/268219-acpi-backlight-driver/) e tenho os devices _BCL _BCM _BQC na minha DSDT, mas eles estão no device DD02, no scope \_SB.PCI0.IGPU, enquanto minha placa de vídeo está em \_SB.PCI0.P0P1.PEGP, inserida segundo intrusões deste post do olaria: http://Olarila.com/forum/viewtopic.php?f=7&t=39.


Como procedo neste caso? Tenho que fazer alguma espécie de conversão do \_SB.PCI0.IGPU para o \_SB.PCI0.P0P1.PEGP?


Minha DSDT está em anexo, junto da saída do ioreg.


Agradeço desde já se puderem ajudar.

Archive.zip

Link to comment
Share on other sites

Você tentou apenas adicionar todas as propriedades que o tópico indica?

 

"@0,built-in", 
Buffer (One)
{
    0x01
}, 
"AAPL,HasPanel", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"AAPL,Haslid", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"AAPL,backlight-control", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"@0,backlight-control", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"@0,AAPL,boot-display", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}

 

Observa que na tua DSDT existem referências externas para dois devices dentro de PEGP, provavelmente os métodos necessários estão num deles, numa SSDT

    External (\_SB_.PCI0.P0P1.PEGP.DD02)
   External (\_SB_.PCI0.P0P1.PEGP.LCD_)

 

Se não funcionar do jeito que está, tenta copiar esses métodos para a DSDT e remove as referências externas.

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Olá novamente! :)

 

Você tentou apenas adicionar todas as propriedades que o tópico indica?

 

"@0,built-in", 
Buffer (One)
{
    0x01
}, 
"AAPL,HasPanel", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"AAPL,Haslid", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"AAPL,backlight-control", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"@0,backlight-control", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}, 
"@0,AAPL,boot-display", 
Buffer (0x04)
{
    0x01, 0x00, 0x00, 0x00
}

 

Sim, tentei apenas adicionar as propriedades, conforme você disse, mas não deu certo (tentei isso depois que você me instruiu, na verdade, porque aquelas propriedades estavam ali na DSDT "paradas" enquanto eu resolvia o problema dos métodos).

Obs.: percebi, no bloco de código acima, que tem propriedades repetindo, foi erro de digitação mesmo?

 

Observa que na tua DSDT existem referências externas para dois devices dentro de PEGP, provavelmente os métodos necessários estão num deles, numa SSDT

    External (\_SB_.PCI0.P0P1.PEGP.DD02)
   External (\_SB_.PCI0.P0P1.PEGP.LCD_)

 

Se não funcionar do jeito que está, tenta copiar esses métodos para a DSDT e remove as referências externas.

 

Quando li isso pela primeira vez não tinha entendido, achei que na SSDT iriam apenas informações sobre o processador (gerei SSDT pelo MaciASL). Depois, fuçando um pouco o MaciASL, vi que dava de extrair 3 SSDTs e em uma delas estava exatamente o que você havia dito, o device referenciado na DSDT, com os métodos.

Obs.: uma pergunta, com essa referência a DSDT não deveria "ver" o device da SSDT? Quando coloco uma SSDT no /Extra as outras SSDTs não são carregadas (pergunto apenas por desencargo)?


Continuando, tentando fazer como você havia dito (copiar os métodos para a DSDT), ela não compila, mostrando os seguintes erros:

2182, 6004, Too many arguments (SX10 requires 0)
2182, 6004, Too many arguments (SX30 requires 1)
2183, 6004, Too many arguments (SX11 requires 0)

 

Poderia me auxiliar nessa parte?


Estou anexando as SSDTs e a DSDT modificada.

Archive.zip

Link to comment
Share on other sites

Obs.: percebi, no bloco de código acima, que tem propriedades repetindo, foi erro de digitação mesmo?

Acho que sim, depois que percebi que estavam repetidas no tópico original e corrigi no meu post.

 

Obs.: uma pergunta, com essa referência a DSDT não deveria "ver" o device da SSDT? Quando coloco uma SSDT no /Extra as outras SSDTs não são carregadas (pergunto apenas por desencargo)?

Sim, a DSDT consegue, mas acho que a kext não tem acesso, ou ela procura apenas na DSDT mesmo.

 

Continuando, tentando fazer como você havia dito (copiar os métodos para a DSDT), ela não compila, mostrando os seguintes erros:

2182, 6004, Too many arguments (SX10 requires 0)
2182, 6004, Too many arguments (SX30 requires 1)
2183, 6004, Too many arguments (SX11 requires 0)

O problema é este

Warning: Unresolved Method, guessing 6 arguments (may be incorrect, see warning above)

Você tem que descompilar a SSDT com este comando

iasl -e DSDT.aml -d SSDT.aml

-e [f1,f2] Include ACPI table(s) for external symbol resolution

O método _BCM vai ficar assim

            Method (_BCM, 1, NotSerialized)
           {
               SX10 ()
               SX30 (0x19)
               SX30 (One)
               SX30 (Arg0)
               Store (Arg0, BRTL)
               SX11 ()
               SX12 ()
           }

Então você pode copiar todo o conteúdo do \_SB.PCI0.P0P1.PEGP da SSDT para dentro do device PEGP na DSDT e vai compilar sem erros.


O output da kext agora deve mostrar

ACPIBacklightPanel: Found Backlight Device: LCD

ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.P0P1.PEGP

ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.P0P1.PEGP.LCD

DSDT.aml.zip

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Muito brigado, compilou certinho!


Acho que vai ficar meio off-topic, mas ainda não deu certo o controle de brilho. No log tem o seguinte:

 

6/11/14 02:22:02.000 kernel[0]: ACPIBacklightPanel: Found Backlight Device: LCD
6/11/14 02:22:02.000 kernel[0]: ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.P0P1.PEGP
6/11/14 02:22:02.000 kernel[0]: ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.P0P1.PEGP.LCD
6/11/14 02:22:02.000 kernel[0]: ACPIBacklightPanel: getIndexForLevel(2) not found in _BCL table !
6/11/14 02:22:02.000 kernel[0]: ACPIBacklightPanel: Version 1.2

 

Isso com a kext do hotKoffy. Com a do RehabMan aparece apenas 'ACPIBacklight: Found Backlight Device: LCD' e a versão (2.0.2).

 

Pre requested: having AppleBacklightDisplay loaded.

Ainda é usado AppleBacklightDisplay?

Link to comment
Share on other sites

Acho que o problema é este

getIndexForLevel(2) not found in _BCL table !

 

Tenta extrair as SSDT em AML usando este comando, descompila com o comando que eu postei anteriormente, e confere se os métodos estão corretos

perl -e 'open(IOREG, "ioreg -lw0|") or die; while(<IOREG>) { chomp; if($_ =~ /\"ACPI\sTables\"\s*=\s*\{([^}]+)\}/) { $buf = $1; mkdir("ACPI Tables"); foreach $table (split(/,/, $buf)) { my($tab, $val) = split(/=/, $table); $tab =~ s/\"//g; open(PIP, "|xxd -r -p > \"ACPI Tables/".$tab.".aml\""); print PIP $val; close(PIP); } } }'

 

Com a do RehabMan você tentou mudar o brilho pelas preferências do sistema, ou só pelo teclado?

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Acho que o problema é este



Tenta extrair as SSDT em AML usando este comando, descompila com o comando que eu postei anteriormente, e confere se os métodos estão corretos

perl -e 'open(IOREG, "ioreg -lw0|") or die; while(<IOREG>) { chomp; if($_ =~ /\"ACPI\sTables\"\s*=\s*\{([^}]+)\}/) { $buf = $1; mkdir("ACPI Tables"); foreach $table (split(/,/, $buf)) { my($tab, $val) = split(/=/, $table); $tab =~ s/\"//g; open(PIP, "|xxd -r -p > \"ACPI Tables/".$tab.".aml\""); print PIP $val; close(PIP); } } }'

 

Extraí as SSDT com o comando que você passou, mas quando tento descompilar a SSDT-1 (que é onde está o _BCL) me dá o seguinte erro:

 

Giovanis-MacBook-Pro:iasl_20140424_64 giovanicascaes$ ./iasl -e ~/ACPI\ Tables/DSDT.aml -d ~/ACPI\ Tables/SSDT-1.aml

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20140424-64 [Apr 24 2014]
Copyright (c) 2000 - 2014 Intel Corporation

Loading Acpi table from file /Users/giovanicascaes/ACPI Tables/SSDT-1.aml - Length 00000443 (0001BB)
ACPI: SSDT 0x0000000000000000 0001BB (v01 Nv1Ref Nv1Tabl  00001000 INTL 20051117)
Acpi table [sSDT] successfully installed and loaded
Loading Acpi table from file /Users/giovanicascaes/ACPI Tables/DSDT.aml - Length 00039389 (0099DD)
ACPI: DSDT 0x0000000000000000 0099DD (v02 DELL   WN09     00000050 INTL 20131218)
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Pass 1 parse of [sSDT]
ACPI Error: [DGPU] Namespace lookup failure, AE_ALREADY_EXISTS (20140424/dswload-453)
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20140424/psobject-306)
Giovanis-MacBook-Pro:iasl_20140424_64 giovanicascaes$

 

Em anexo tem a DSDT e as SSDTs que extrai com o comando que você passou.

 

Com a do RehabMan você tentou mudar o brilho pelas preferências do sistema, ou só pelo teclado?

 

Tentei mudar o brilho das duas maneiras com as duas kexts, mas sem sucesso. A kext do hotKoffy apresentou um comportamento estranho: diminuindo o nível do brilho pelo teclado eu conseguia chegar somente até a metade da barrinha que aparece com o ícone no sol e depois não conseguia mais mudar (mas conseguia mudar nas preferências do sistema normalmente). Acho que a kext do RehabMan provavelmente não vai funcionar pra mim, porque ele adaptou pro HP ProBook, que tem gráficos Intel.

Archive.zip

Link to comment
Share on other sites

Você precisa descompilar antes de copiar o conteúdo do PEGP da SSDT para a DSDT.


Mas eu verifiquei e não muda nada nos métodos, não deve ser esse o problema.


Tenta colocar assim no _BCL para ver se faz alguma diferença

Return (Package (0x12)
{
0x0F, 
0x03, 
Zero,
One, 
0x02, 
0x03, 
0x04, 
0x05, 
0x06, 
0x07, 
0x08, 
0x09, 
0x0A, 
0x0B, 
0x0C, 
0x0D, 
0x0E, 
0x0F 
})

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Você precisa descompilar antes de copiar o conteúdo do PEGP da SSDT para a DSDT.

Acho que entendi, era para usar a DSDT original, certo?

 

Tenta colocar assim no _BCL para ver se faz alguma diferença

Return (Package (0x12)
{
0x0F, 
0x03, 
Zero,
One, 
0x02, 
0x03, 
0x04, 
0x05, 
0x06, 
0x07, 
0x08, 
0x09, 
0x0A, 
0x0B, 
0x0C, 
0x0D, 
0x0E, 
0x0F 
})

Fez diferença sim. Não apareceu mais a mensagem do getIndexForLevel, no Console, mas o brilho ainda não funciona. No Console aparece essa mensagem, quando tento alterar o brilho, tanto pelo teclado quanto pelo slider, nas preferências do sistema:

 

6/11/14 18:12:43.106 BezelServices 240.49[45]: ASSERTION FAILED: "Could not set brightness" -[DisplayStateMachine changeBrightnessBy:type:] line: 576

DSDT.aml.zip

Link to comment
Share on other sites

Aqui tem um usuário com a mesma mensagem, mas pelo que parece está relacionado às teclas, não ao controle do brilho em si

http://www.insanelymac.com/forum/topic/268219-acpi-backlight-driver/?p=2001280


Essa mensagem aparece mesmo usando apenas o slider?

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Aqui tem um usuário com a mesma mensagem, mas pelo que parece está relacionado às teclas, não ao controle do brilho em si

http://www.insanelymac.com/forum/topic/268219-acpi-backlight-driver/?p=2001280


Essa mensagem aparece mesmo usando apenas o slider?

Você está certo, não havia percebido esse detalhe. Com o slider não aparece a mensagem, com as combinações fn+↑ e fn+↓ aparece sempre e com fn+F12 e fn+Num Lk aparece meio que aleatoriamente.


Estou quase ficando sem esperanças com relação ao brilho, pra falar a verdade :/

Link to comment
Share on other sites

Olá novamente.


Ainda tentando habilitar o brilho no meu hackintosh pensei que a opção VBIOS=Yes do Chameleon poderia ajudar a ter suporte completo para minha NVIDIA, mas no log do Chameleon aparece o seguinte:

 

 Patching: BT_NVDA Edid not found or invalid - vbios not patched!

 

Imagino que o EDID está certo (conferi no Linux). Ja tentei fazer a injeção dele via DSDT, Display overrides e EFI String no próprio Chameleon, mas sem sucesso.


O patch do Chameleon pode mesmo ajudar a habilitar o brilho? Se sim, como me livro do erro de patch do Chameleon?


Agradeço desde já.


Obs..: se estiver ficando muito off-topic posso transferir essa dúvida para outro tópico.

Link to comment
Share on other sites

Acho que cometi alguns equívocos. Os métodos _BCL, _BCM e _BQC estão na minha SSDT-2.


A kext para o brilho que estou usando é essa:

https://github.com/RehabMan/OS-X-ACPI-Backlight


Que foi tirada originalmente do seguinte poste:

http://www.insanelymac.com/forum/topic/268219-acpi-backlight-driver/


Acho que estou próximo da solução, então deixe-me esclarecer novamente meu problema:

Fn + F8 aumenta brilho/ Fn + F9 diminui brilho, sem aparecer o ícone de brilho na tela do OS X.

Pause Break aumenta brilho/ Fn + Del (ScrLk) diminui brilho. O ícone de brilho aparece na tela do OS X.

Consigo alterar o brilho pelas Preferências do Sistema normalmente.


Meu problema parece ser o relatado neste poste:

http://www.insanelymac.com/forum/topic/268219-acpi-backlight-driver/page-10#entry2001360


Aqui está um print do meu system.log:

OqKCrm.png


Fn + F8 = _Q12

Fn + F9 = _Q11


"If there is output in system.log when you press other keys, but no output when you press Fn+F11 and Fn+F12, then your brightness keys are probably handled in ACPI. It is possible to handle these keys, but you'll need to add debug traces to all your EC query methods (_Qxx in EC device)."


O que fazer a partir daqui?


Grato pela atenção.

DSDT + SSDT.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...
The popup will be closed in 15 seconds...