Ir ao conteúdo
  • Cadastre-se

Dalinor

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

Reputação

7
  1. Se alguém ainda tem interesse na continuação dos estudos, os arquivos estão agora no Github: https://github.com/hector-vido/philco-phn15006-dsdt
  2. Olá Swiser! Pelo visto você estava até tarde tentando arrumar isso! Olha, sinceramente, eu não aconselho Windows 8. Na realidade não aconselho o 7... tão pouco o Vista. Mas dos 3 eu fico com o Vista ou com o 7. O pessoal virá com com aquele blá blá blá de que o 7 é melhor... mas isso é coisa de usuário casual. Com umas poucas pesquisas você consegue deixar o Vista uma pérola. Eu uso até hoje... Mas vamos lá! Qual é a versão do Windows em que você quer fazer isso? Eu percebi que parece que o DSDT extraído do Linux pode dar um problema no Windows, mais precisamente uma BSOD. Então eu aconselho a você mesmo extrair pelo Windows e alterar pelo Windows conforme eu indico. Assim que me disser a versão, vamos alterar o cooler para a velocidade máxima. Deste modo você tem certeza de que a DSDT foi alterada. Aguardo.
  3. Isso foge um pouco do assunto do tópico... mas eu acho que no Ubuntu só recompilando o Kernel com uma flag alterada e o arquivo hexadecimal da tabela na raíz. No OpenSUSE tinha um patch que jogava direto na initrd.img. Deve ter algo assim no Ubuntu. Mas a temperatura no Ubuntu não fica grande não. Se você tiver o mesmo notebook, basta colocar o parâmetro no /etc/grub/default na parte que carrega o kernel: apic.power_nocheck=1. Isso vai resolver. Caso contrário ele sobre aquecerá e irá desligar.
  4. Olá amigo, Eu mesmo não encontrei as velocidades da FAN no arquivo, com base no que descobriram eu acabei por encontrar todo o resto. Acho que para procurar a FAN você deve fazer pesquisas relacioadas as velocidades mais comuns de RPM ou mesmo porcentagens em hexadecimal. Mas isso é complicado mesmo. Agora estou sem tempo nenhum para olhar, mas quando me sobrar um tempo, eu posso dar uma olhada.
  5. Sim não serve. Olá rapaz, já ví alguns notebooks da HP e me espantei com a porcaria de adesivo térmico que eles colocam para transmitir o calor para o cobre. O notebook da minha namorada ficava com a placa em torno de 70c sem fazer nada. Abrimos, tiramos o adesivo térmico e colocamos uma chapa de cobre de 1mm. Caiu para em torno de 55-60c. Agora, 60 não é ruim para uma placa de vídeo. Elas esquenta um pouco sim. Veja se não é sujeira tampando o cooler, e também, veja se seu notebook está no plano de energia "Recomendado", que eu prefiro chamar de "On Demand". Quando o notebook está em "Performance" ele manda o processador trabalhar com toda a força, mesmo quando não há nada para processar.
  6. Olá amigo, faz um tempão que não entro aqui. Mas sua solução não foi muito inteligente, fora que deixa o notebook desprotegido. Se entrar algo ali, pode acabar danificando seriamente o hardware. Fora o incômodo de depender de uma base. Placa de Vídeo: Uma vez ví um rapaz queixando-se de um plástico tampando a saída de ar, de onde supostamente fica a placa de vídeo. E sim! Ela fica ali mesmo, porém o chip dela está para o outro lado, o que não adianta em nada remover aquele plástico. Na realidade, aquele plástico está preso na própria parte de trás da placa de vídeo. Apenas para segurança.
  7. Oi roraimafilho, obrigado! Então, sim, a placa de vídeo não possuí um cooler próprio, e sim uma barra de cobre que passa por sobre seu chip e então se une a barra de cobre que passa sobre o processador. Essa união faz com que o processador também esquente, e diminuí a eficiência do notebook como um todo. Eu também me atentei a temperatura da placa de vídeo, que como já foi dito, ela consegue operar até em 100c. Mas com essa tabela, a temperatura da placa de vídeo não chega nem mesmo aos 80c. A grande falha é que não existe uma tabela para a placa de vídeo, e sim, somente para o processador. Deste modo, todo o meu trabalho teve de ser focado no processador, o que acabou resolvendo o superaquecimento da placa de vídeo. Eu também jogo bastante, principalmente no notebook, e até agora não tive problemas. Alguém mais testou a tabela? Abraços
  8. Interessante ovverman, entendi, pelo visto o Undervolting deixava mais frio a temperatura. Se não me engano, na tabela antiga a fan girava na máxima RPM quando alcançava 60c, e a minha somente quando alcançar 70c. Acho que foi um limite legal, afinal girar no máximo em 60c não é nescessário, tendo em mente que o processador aguenta bem mais. O importante é ver se quando a ventoínha está em 60c ele está girando a 4000rpm, em 65c ela vai girar a 4400rpm, e em 70c 5250rpm. Aqui está a tabela: Name (FANT, Package (0x08) /* ou FANO */ { 0x00, 0x0A8C, /* 2700 - 40c */ 0x0D48, /* 3400 - 50c */ 0x0FA0, /* 4000 - 60c */ 0x1130, /* 4400 - 65c */ 0x1482, /* 5250 - 70c */ 0x1482, 0x1482 }) É muito difícil chegar no máximo. O importante é ver se superaquece, afinal o fluxo de ar deve ser o ideal para a temperatura. De nada adianta 5250rpm com 50c. Até adianta ele resfriaria bastante, mas a bateria acabaria logo. Se puder fazer mais alguns testes, ver se a temperatura está legal, se não está tendo queda de performance, eu agradeceria muito. Eu fiz testes com o Unreal somente. E não passou dos 63c. E isso é muito bom, afinal nosso objetivo é manter uma temperatura condizente com o fluxo de processamento, o problema é superaquecer e não ativar a máxima RPM, desligando o note a força ou fazendo a tela escurecer. Queria agradecer ao ovverman que está testando enquanto eu estou sem tempo para uma coisa desse tipo. Se mais alguém conseguiu usar a tabela e tem alguma observação a fazer, seria de muita valia para todo mundo. Abraços.
  9. Olá overman, muito obrigado por confiar na minha DSDT. Então, o que quis dizer com as temperaturas continuam iguais? Se bem me lembro eu peço para ela girar um poquinho quando alcança 40 graus. Quase sempre está em 40c. Nos dias que eu testei, estava muito frio e eu ainda usei uma base para resfriar o notebook, e consegui fazer o cooler parar, pois alcançou 30c. A velocidade agora é gradativa, e se você jogar algum jogo, vai notar que vai ser muito difícil ele alcançar o máximo de RPM, vai bater nos 60c provavelmente. Eu não entendo muito bem de vida útil de equipamentos, mas se bem me lembro, as ventoínhas são giradas através de um campo magnético criado nas bobinas ( não sei se é esse o nome ) ao redor do pino que segura as pás, não há um desgaste bruto nisso, já que há óleo nesse pino e quase não existe contato entre o pino e sua base. Já vi fans durarem anos, e outras durarem semanas e já começarem a trepidar e fazer barulho. Mas a tecnologia empregada em um notebook é muito melhor trabalhada, basta observar notebooks antigos que seus coolers funcionam perfeitamente. A diferença entre essa minha tabela, e a outra, é que agora possúem níveis de temperatura mais sutís. Então, realmente só atingirá a máxima RPM se alcançar 70c. Eu resolvi fazer o cooler girar a 40c um pouco, pois enquanto o processador está a 40c, a placa de vídeo está 48c ( com a minha tabela, com a antiga deve passar dos 50c ). Quando a gente está jogando, a placa de vídeo está muito mais quente que o processador, e embora essa placa seja feita para trabalhar em até 100c, eu prefiro dar uma trégua para ela. A temperatura da placa de vídeo interfere diretamente na temperatura do processador, já que as barras de cobre da placa de vídeo unem-se com as do processador e então são dissipadas. Para quem preferir, dá para deixar a fan passiva em 40c. Mas eu não sei quais velocidades são as melhores para as determinadas temperaturas. Se alguém souber bastante do assunto, eu altero, ou mesmo se alguém quiser fazer um teste com uma DSDT desse tipo, eu disponibilizo. Abraços.
  10. Olá ovverman, Os arquivos são os mesmos, tanto o ASL quanto o DSL são os "entendíveis" por nós. Basta renomear a extensão ou passar como referência o .DSL. Quando for executar: asl dsdt.asl ao invés disso executar asl dsdt.dsl. Depois disso apenas: asl /loadtable dsdt.aml e reiniciar a máquina.
  11. Opa, desculpa a demora para responder. Vou guardar esse programa aqui RW-Read & Write Utility. Como eu nunca tinha feito testes de stress então tive de me virar, e não consegui muito resultado pesquisando na internet. Obrigado Pfpa. Mas e aí pessoal, alguém testou e achou melhor?
  12. Olá pessoal, É com muita felicidade que venho dizer que a tabela funcionou perfeitamente no Windows. Testei usando o bom e velho Unreal Tournament 2004 com 32 Bots em um mapa muito pequeno. Quando o notebook aquecia e a temperatura subia, a velocidade correspondente a aquela temperatura era ativada. Felizmente não chegou a velocidade máxima, parou em 60c. Depois eu testei com o IntelBurnTest e ainda assim ficou em 60c. Tampei a saída de ar e chegou a 65c e a fan aumentou, chegou em 70c por um breve momento, mas não ativou a velocidade máxima. Tenho uma explicação possível. As temperaturas são verificadas a cada 5 segundos e nem sempre a temperatura mostrada é a temperatura real. Creio que quase sempre ele mostra uma temperatura mais alta que a real. Se não me engano, no Linux quando chegou a 72c ou 73c que ele ativou a velocidade máxima. Bem, depois que eu fechei o programa e a fan foi ficando mais devagar acompanhando perfeitamente a temperatura. Quem quiser testar, pode ficar tranquilo. Também gostaria de dizer que estou muito feliz, pois quando meu notebook hibernava no Linux, ele voltava e não ativava o cooler. Não consigo me lembrar se isso ocorria no Windows, mas acho que não. Então por favor gente, testem essa nova DSDT ( no Linux ficou .dsl e no Windows .asl ) e veja se dá certo em 100% dos casos.
  13. Olá Ovverman, obrigado. Bem, como eu disse, eu testei essa tabela somente no Linux. Para alcançar altas temperaturas eu compilei o Kernel várias e várias com 7 Threads ( 7 processos paralelos compilando partes diferentes ). Conforme a temperatura aumentava a Fan girava com a velocidade que eu havia indicado na tabela DSDT. Infelizmente, ou posso dizer felizmente, foi muito difícil conseguir chegar a 70c, e para fazer isso eu tive de tampar com a mão, a muito contragosto, a saída de ar. Quando alcançou 70c, o cooler disparou em 5250 RPM. O díficil é perceber a sutil diferença entre os ruídos da Fan, pois nas três últimas temperaturas eu deixei como 60c, 65c e 70c e de 65 para 70 o ruído aumenta pouquíssimo. E dura muito pouco, pois já cai para 65c e logo depois para 60c. É muito breve. Mas isso porque eu terminei o processo de compilação, acho que se for em algum jogo ele deverá manter entre 60c e 65c. Para testar os rúidos e saber qual é de qual RPM, eu alterei diretamente a função FON. Para mexer ali basta entender o seguinte: Local é um nome que se dá a uma variável dentro da função e somente ali. Então Local0, Local1, Local2, Local3 ... são variáveis que estão dentro de uma função e foram criadas somente ali. Arg é um nome que se dá aos argumentos passados a uma função. Arg0, Arg1, Arg2 ... Arg7. Com isso em mente, vamos a função FON: Method (FON, 1, NotSerialized) { \_SB.PCI0.ISA.EC55 (0x00, Arg0) } Alí ele diz que é um método ( método ou função são iguais, é que método é usado para orientação a objetos ) chamado FON, que recebe 1 argumento somente. O NotSerialized não é importante para o que queremos. Então temos logo abaixo este cara: \_SB.PCI0.ISA.EC55, ele é um método também mas é diferente, ele representa um dispositivo de hardware. E ele recebe um argumento 0 e o outro com a velocidade da Fan, que é Arg0, ou seja o argumento passado para FON pelo método FCTL. Basta alterar diretamente aí a velocidade desejada em hexadecimal, deixando algo como: Method (FON, 1, NotSerialized) { \_SB.PCI0.ISA.EC55 (0x00, 0x1482) } Bom, hoje mesmo vou testar então a tabela no Windows e rodar algum jogo pesadinho para ver como o cooler se comporta, e posto os resultados aqui.
  14. Olá pessoal, como quase sempre o pessoal acaba fazendo perguntas que saem da ideia inicial do tópico, resolvi não fazer uma resposta e sim criar outro tópico aqui falando sobre melhoramentos na tabela DSDT e consequentemente diminuiçao da temperatura com mais eficiência. Se puderem ver e provavelmente ajudar, seria de grande valia. Obrigado.
  15. Olá gente, Bom, quase nunca uso fórums, então me desculpem se eu coloquei alguma informação em lugar errado. Mas vamos lá. A muito tempo acompanhei as novidades sobre esses Notebooks da Philco, e fiquei muito contente em descobrir que alguém conseguiu resolver o problema de aquecimento. Mas sempre fiquei com uma dúvida, pois embora a solução tenha sido muito bem vinda, e solucionado todos os problemas, ela ainda parecia incompleta, pois o cooler trabalhava apenas em 2 velocidades. Bom, resolvi estudar a tabela, levou bastante tempo, e também tive de aprender AML ( ACPI Machine Language ), quem quiser pode pegar o manual aqui, é interessante entender como funciona: http://www.acpi.info/. Ainda não posso afirmar que esta versão é a melhor, nem que eu coloquei as devidas velocidades nas devidas temperaturas, mas a questão é que a curva de velocidade do cooler, agora é mais suave e responde a diferentes temperaturas. Eu testei compilando o Kernel do Linux várias e várias vezes, e as temperaturas todas bateram com a velocidade que eu coloquei. Infelizmente não tive tempo para testar no Windows, mas como é padrão ( ao menos deveria ) então creio que devem funcionar igualmente. Eu criei dois arquivos .txt ao longo em que ia estudando o código, para ficar mais fácil para eu entender, e claro, mais para frente disponibilizar para outras pessoas, então vou postar os links deles aqui, em ambos arquivos, podem haver informações repetidas. Sabem como é, muito café e pouco tempo, dá nisso. Nesses arquivos estão as funções utilizadas para controle do fan e as variáveis globais que também mexem com a temperatura, há também algumas funções que eu retirei do manual ACPI e traduzi lá, para melhor consultar. AML.txt Explicação.txt Bem, vou tentar explicar o que eu entendi, e o resto, para quem estiver interessado, por favor leiam os arquivos. Há uma definição de temperatura na seguinte lista: _AC0 = 0x10 _AC1 = 0x11 _AC2 = 0x12 _AC3 = 0x13 _AC4 = 0x14 _AC5 = 0x15 _AC6 = 0x16 _AC7 = 0x17 Segundo a ACPI, podem haver ACs de 0 a 9. Quanto menor o número mais quente está o processador e mais rápido o cooler deve girar. Nosso caso vai até 7. Para quem usava o comando no Linux "cat /proc/acpi/fan/FAN*/*" e via 7 fans, esta é a explicação: Na realidade, não são fans, são níveis de controle de temperatura. Agora, a parte que tanto confundiu. Esta definição interage 100% com a tabela CLPT e CLP1, e vou explicar como. Pegamos por exemplo o _AC7, o nível mais baixo, o cooler deve estar desligado aqui praticamente. O valor de _AC7 é 0x17, o valor decimal dele não é importante. Guarde este número, 0x17. Agora a tabela CLPT, a CLPT é igual a CLP1, então chamarei sempre de CLPT. A CLPT é dividida em 2 arrays iguais, cada um com mais 3 arrays, porém com valores diferentes. Pelo o que eu entendi, e isso me confunde até agora, teoricamente o primeiro array seria para o Fan Ativo, e o segundo array para o Fan Passivo. Quem me trás 1 dos arrays, é a função GTLT a qual eu batizei de "Get Temperature List". O que ela faz é o seguinte, através da variável CTJM que teoricamente sempre deveria ter o valor 8, ou seja, sempre verdadeiro ( pois 0 é falso em AML ), ele me trás o índice 0 da tabela CLPT ou CLP1 e depois, independente da tabela, ele pega o índice 0. Na teoria, ele deveria sempre me trazer a CLPT pois 8 é verdadeiro, mas os testes funcionaram somente quando eu alterei a CLP1, e isso eu ainda preciso entender. Estou sem muito tempo, então escreverei aqui o básico e depois irei editando. Bem, aqui está a tabela CLPT que eu alterei ( a CLP1 está igual ): Name (CLPT, Package (0x02) { Package (0x03) { Package (0x0C) { 0x17, /* FAN7 o mais fraco, na teoria */ 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, /* FAN0 o mais forte, na teoria */ 0x20, 0x30, 0xFE, 0xFF }, Package (0x0C) { 0x00, 0x1E, /* 30 c */ 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5C, 0x61, 0x64, 0x67 }, Package (0x0C) { 0x00, 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5A, /* 90 c */ 0x61, 0x64, 0x67, 0x67 } }, Package (0x03) { Package (0x0C) { 0x17, /* FAN7 o mais fraco 2700 RPM */ 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, /* FAN0 o mais forte 5250 RPM */ 0x20, 0x30, 0xFE, 0xFF }, Package (0x0C) { 0x00, 0x1E, /* 30 c */ 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5C, 0x61, 0x64, 0x67 }, Package (0x0C) { 0x00, 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5A, /* 90 c */ 0x61, 0x64, 0x67, 0x67 } } }) Agora tudo faz sentido se observar com cautela. Lá no primeiro indíce, do primeiro ou do segundo array, quem é o primeiro valor? É o 0x17! É o _AC7! E sabem o que mais? Está relacionado diretamente com a tabela FANT e FAN0, pois as comparações são criadas através dos índices, então o índice 0, que é 0x17 equivale ao índice 0 da FANT e assim por diante. E para facilitar um pouco para o nosso lado ( ainda bem ) esses índices também são usados para as temperaturas, que estão nos arrays 1 e 2 dos arrays 0 ou 1. Eu descobri as temperaturas por pura lógica. Existem algumas funções interessantes que, por incrível que pareça não são usadas ( uma até é, mas a variável de retorno é ignorada ) que são: GDTP e GUTP. Lembra da função GTLT? Ela retorna o número 0 do pacote 0 ou 1. A GDTP retorna 1 e a GUTP retorna 2. Com isso eu concluí que talvez o nome dessas funções fossem algo como "Get Down Temperature" e "Get Up Temperature", e aqui vai um exemplo do acesso aos dados da CLPT: CLPT[0][0] = Termal List CLPT[0][1] = Down Temperature CLPT[0][2] = Up Temperature Com isso em mente, entendi que a subida de temperatura e mudança da velocidade da fan ocorre no indice 2, e a velocidade só abaixa, quando ele alcança o índice correspondente no índice 1. Olhando para a tabela temos: Package (0x0C) { 0x00, 0x1E, /* 30 c */ 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5C, 0x61, 0x64, 0x67 }, Package (0x0C) { 0x00, 0x28, /* 40 c */ 0x32, /* 50 c */ 0x3C, /* 60 c */ 0x41, /* 65 c */ 0x46, /* 70 c */ 0x50, /* 80 c */ 0x5A, /* 90 c */ 0x61, 0x64, 0x67, 0x67 } Veja que o cooler liga ( depois de _AC7 ) somente quando a temperatura alcançar 40c ( 0x28 ) e o cooler só desliga quando chegar a 30c ( 0x1E ). Se forem acompanhando vão entender o que ocorre. Desse modo, quase tudo faz sentido! E fará mais sentido se olhar o código e ler meus arquivos, pois você entenderá o que faz cada função. Aqui está minha tabela dsdt.dsl. Bem, eu deixei o ATIVO e o PASSIVO iguais, e alterei ambas FANT e FAN0 e CLPT e CLP1, está tudo igual, e funcionando. Agora, algumas observaçoes para quem puder ajudar: Na teoria, apenas a tabela CLPT deveria ser usada. Mas como eu disse, somente alterando a CLP1 é que o cooler funcionou como o esperado. As tabelas CLPT e CLP1 possúem 2 arrays, cada qual com mais 3 arrays. Não tive tempo de averiguar corretamente qual é o índice ( 0 ou 1 ) que realmente faz efeito, pois ambos possúiam tabelas iguais, e são respectivamente ativo e passivo. ( O ativo 0, sim é 0, deve ser o que faz efeito ). A tabela FANO e a FANT sofrem do mesmo mal que o a CLPT e a CLP1, deveria sempre ser CLPT e FANT mas alguma coisa deve alterar a variável CTJM, porém não está na DSDT. Pode ser alguma chamada direta do hardware. Os valores estão todos em Celsius, somente são convertidos para Kelvin com a função CTOK ( Celsius to Kelvin ), mas isso é somente quando a DSDT parece ser carregada e os dispositivos são configurados. Ocorre somente uma vez. O grande Horror Precisava deste título, pois aqui estava a raíz do problema, por favor peço para que abram o arquivo original da DSDT. Com base em minha lógica ( que parece estar quase certa ) podemos observar as curvas assombrosas de temperatura que definiram para o processador, e agora que tudo faz sentido, fica muito claro o porque o cooler não aumentava gradativamente mesmo que configurássemos a FANT/FANO. Com essas temperaturas, cheguei a conclusão de que o Notebook foi desenvolvido para ser usado no Alaska. Então é isso gente. Se alguém tiver alguma informação valiosa, por favor, continuem. Se arrumar tempo testo a parte do ativo e passivo e tento descobrir porque a bendita CTJM se altera. Downloads Explicação 1: AML.txt Explicação 2: Explicacao.txt DSDT Final: dsdt.dsl DSDT Original: dsdt.dsl.bkp Gostaria de agradecer ao julianocs daqui do Clube do Hardware, por ter começado tudo e aberto essa possibilidade. Antes disso eu nem sabia o que era uma tabela DSDT.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...