Evitar que a Dell estrangule a CPU com o adaptador de energia

3

Meu laptop Dell está enfrentando o antigo problema de o adaptador de energia não ser reconhecido pelo computador. Eu sei de fato que é apenas uma quebra no cabo de dados na linha, porque se eu o posicionar corretamente, o cabo é reconhecido e o computador para de afogar a CPU para 20%. Existe alguma maneira que isso pode ser desativado, de modo que eu não tenho o violino com o meu cabo de energia toda vez que eu ligar o computador?

    
por user173724 27.12.2016 / 18:56

3 respostas

8

Eu fiz algumas investigações sobre isso e descobri que provavelmente não há uma boa maneira de impedir laptops recentes da Dell de estrangular a CPU quando ela não detecta um adaptador AC OEM (ou um com um pino de dados quebrado.)

Desativar SpeedStep ou "modos de suspensão adicionais" ou mexer com os perfis de energia no BIOS não faz diferença. O utilitário "Intel Extreme Tuning" não parece oferecer suporte a essas placas-mãe, pois todas as opções de overclock são bloqueadas, mas quando um carregador não-OEM é conectado, ele informa que a aceleração térmica do CPU está ativada e CPU-Z mostra o multiplicador FSB até 5x e a voltagem do núcleo a 0,6 volts.

Meu palpite é que talvez o BIOS tenha sido projetado para enviar falsas leituras de temperatura da placa-mãe para a CPU quando um adaptador não OEM é detectado, fazendo com que ele se estrangule. Parece que a Dell estava falando sério sobre trancá-lo em adaptadores OEM quando eles projetaram este sistema.

Edit: Eu encontrei um utilitário que permitirá que você desabilite a limitação do adaptador desconhecido, pelo menos no Windows (eu não sei ainda se o utilitário funcionará no Linux, ou se há algo similar.) O ThrottleStop possui uma caixa de seleção chamada "BD PROCHOT" que faz com que a voltagem do núcleo da CPU e o multiplicador voltem ao normal quando desativados. Aparentemente este é um "caminho de sinal de 2 vias para a CPU. Ele permite que outros componentes em um laptop como a placa-mãe ou GPU enviar um sinal para a CPU que engana o processador a pensar que é muito quente", confirmando que a maneira como isso recurso "é implementado pelo BIOS é através do envio deste sinal para a CPU quando um adaptador AC desconhecido é detectado.

    
por 29.03.2017 / 18:20
0

Aqui está um programa independente do sistema operacional que você pode compilar com um compilador C / GCC (desde que tenha uma implementação do asprintf disponível) e configurado para rodar automaticamente na inicialização do sistema, o que deve desabilitar o throttling nesses laptops baseados em Intel. Eu usei isso com êxito em um laptop Dell Inspiron 5558 executando o Xubuntu com privilégio de root para o programa, com "msrtools" instalado e "modprobe msr" no arquivo de inicialização antes da execução do programa, para permitir a leitura e gravação dos registros MSR de o lado do usuário (outro sistema operacional pode exigir comandos diferentes para "const char * cmd" para ler / gravar no local de registro do processador 0x1FC e provavelmente exigirá acesso do usuário root / privilegiado para o executável, qualquer que seja a forma)

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#define BUFSIZE (64)

int get_msr_value(uint64_t* reg_value) {
  const char* cmd = "rdmsr -u 0x1FC";
  char cmd_buf[BUFSIZE];

  FILE* fp;

  if ((fp = popen(cmd, "r")) == NULL) {
    printf("Error opening pipe!\n");
    return -1;
  }

  cmd_buf[strcspn(fgets(cmd_buf, BUFSIZE, fp), "\n")] = 0;
  *reg_value = atoi(cmd_buf);

  if (pclose(fp)) {
    printf("Command not found or exited with error status\n");
    return -1;
  }

  return 0;
}

int main(void) {
  const char* cmd = "wrmsr -a 0x1FC";
  char* concat_cmd;
  int ret;
  uint64_t* reg_value = &(uint64_t){0};

  if ((ret = get_msr_value(reg_value))) {
    return ret;
  }

  printf("Old register value: %lu\n", *reg_value);

  *reg_value = *reg_value & 0xFFFFFFFE;  // clear bit 0

  printf("New register value: %lu\n", *reg_value);

  if (asprintf(&concat_cmd, "%s %i", cmd, *reg_value) == -1)
    return -1;

  printf("Executing: %s\n", concat_cmd);

  system(concat_cmd);
  free(concat_cmd);

  return 0;
}
    
por 11.09.2018 / 06:54
-1

'Intel Dynamic plataforma e estrutura térmica' é o programa que limita o seu cpu de cronometragem em velocidade normal.
A desinstalação da plataforma Intel Dynamic e da estrutura térmica devem corrigir o problema.

    
por 13.08.2018 / 03:26