AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 485472
Accepted
Stonecraft
Stonecraft
Asked: 2018-12-03 03:33:55 +0800 CST2018-12-03 03:33:55 +0800 CST 2018-12-03 03:33:55 +0800 CST

Sensores de temperatura Ryzen/Threadripper: quais sensores estão relacionados a quais módulos do kernel e como habilitá-los

  • 772

Quais sensores posso monitorar no meu AMD Threadripper 1950x em uma mobo ASRock x399 Taichi no Linux. Foi anunciado no ano passado que o monitoramento de temperatura estava funcionando para processadores Ryzen e que supostamente estava incluído no kernel 4.15, de acordo com isso: https://www.phoronix.com/scan.php?page=news_item&px=AMD-Zen-Temps -Hwmon-Próximo . No entanto, parece que as temperaturas estão compensadas, o que foi corrigido no kernel 4.18.6 de acordo com isso: https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.18.6-k10temp-Correct

Tanto quanto posso dizer, não há absolutamente nenhuma conversa sobre monitoramento de temperatura por núcleo no Linux, como está disponível no Windows.

No entanto, outras fontes sugerem que talvez eu precise construir módulos especificamente baseados na minha placa-mãe. Essas instruções parecem sugerir que eu possa construir os drivers de kernel apropriados com base na saída de sensores-detect: https://linuxconfig.org/monitor-amd-ryzen-temperatures-in-linux-with-latest-kernel-modules

De acordo com a detecção de sensores, tenho o nct6775, mas não consigo encontrar nenhum sinal de que tenho o módulo de kernel apropriado (não mostrado com lsmod, há algum outro lugar que eu deva procurar?). Infelizmente, não posso compilar a partir do repositório porque ele não está mais no github.

Então essas são minhas perguntas:

  1. Quais drivers e módulos do kernel fornecem quais informações? Especificamente, quais fornecem as leituras por núcleo disponíveis no Windows?

  2. Qual é o status dos drivers de temperatura para Ryzen no linux: completos, incompletos, hackeados e nunca confiáveis?

  3. Se eu conseguir construir o nct6775, o que isso me dará além do K10 que já tenho? Onde mais eu poderia ir para obter a fonte para construí-los?

  4. Por que isso é tão mal documentado? Não é ter informações claras sobre isso um ano e meio após o lançamento do curso, a AMD está sendo incomumente inútil para os padrões da indústria?

kernel-modules hardware
  • 1 1 respostas
  • 3667 Views

1 respostas

  • Voted
  1. Best Answer
    sourcejedi
    2018-12-03T10:38:34+08:002018-12-03T10:38:34+08:00

    [resposta excluída pelo OP:] Eu ainda gostaria de saber: o que exatamente está disponibilizando o nct6775 agora?

    Há muitas tentativas de responder à pergunta geral no link a seguir. Infelizmente, nenhum deles é abrangente, então tentarei melhorá-los. Linux: Como encontrar o driver de dispositivo usado para um dispositivo?

    No seu caso, o dispositivo sensor pode ser encontrado em um dos links mostrados em ls -l /sys/class/hwmon/*. Você pode tentar estender esse comando e encontrar seu módulo do kernel imediatamente:

    ls -l /sys/class/hwmon/*/device/driver/module
    

    No entanto, este comando faz algumas suposições. Não funcionará em todos os casos. Se o comando não funcionar, reduza-o verificando cada elo individual na cadeia. Há três casos possíveis.

    1. Você tem um driverlink, mas nenhum modulelink.

      Isso significa que o driver está embutido no kernel! O que meio que responderia à sua pergunta :-).

      É igualmente possível ls -lno driverlink. Ou seja, para ver o nome do driver, altere o comando acima para remover a /modulepeça. Muitas vezes, o nome do driver é o mesmo que o nome do módulo carregável, mas às vezes eles são diferentes.

    2. O driverlink não está imediatamente abaixo devicede , mas ...

      Se o comando acima não funcionar, talvez seja necessário substituir devicepor device/device, ou assim por diante.

      O devicelink leva você ao dispositivo pai. Mas às vezes o driver está no dispositivo do avô, ou ainda mais :-).

    3. Nenhum dos pais devicetem um driverlink ou não há nenhum devicelink pai.

      O devicelink leva você ao dispositivo pai. Por exemplo, você pode ter um dispositivo de rede /sys/class/wlan0e /sys/class/wlan0/devicepode apontar para uma placa PCI que fornece wlan0.

      No seu caso, posso imaginar não ter nada parecido com um dispositivo no pcibarramento padrão. Nesse caso, o driver deve definir seu próprio dispositivo personalizado, em /sys/devices/platform/. Isso é exatamente o que o coretempdriver da minha CPU Intel faz.

      Mas se o seu driver errar, ele criará um dispositivo sem pai e, portanto, sem devicelink. Sensores ( hwmondispositivos) são um dos dispositivos filhos mais obscuros; Já vi isso acontecer várias vezes antes. Olhando em ls /sys/devices/virtual/*, parece que tenho três dispositivos que erram, e todos eles são hwmondispositivos.

      Se não houver "físico" / pai device- então não pode haver driver. Esse é o comportamento esperado para dispositivos genuinamente virtuais, como loopback ( lo) ou bridgedispositivos de rede. Ele reflete o modelo de dispositivo do kernel Linux. Em um dispositivo físico, você pode remover o driver que está vinculado a ele e potencialmente vincular um driver diferente. Não faria sentido oferecer suporte a isso sem ter um dispositivo físico. É lamentável porque não existe um método equivalente como este, para encontrar o módulo que implementa um dispositivo virtual.


    Conteúdo:

    1. Resultados de exemplo procurando em /sys
    2. Encontrei o nome do módulo, agora...

    1. Exemplo de resultados procurando em /sys

    $ cd /sys/class/hwmon/
    $ ls -l *
    total 0
    lrwxrwxrwx. 1 root root 0 Dec  2 17:50 hwmon0 -> ../../devices/virtual/thermal/thermal_zone0/hwmon0
    lrwxrwxrwx. 1 root root 0 Dec  2 17:50 hwmon1 -> ../../devices/virtual/hwmon/hwmon1
    lrwxrwxrwx. 1 root root 0 Dec  2 17:50 hwmon2 -> ../../devices/virtual/thermal/thermal_zone8/hwmon2
    lrwxrwxrwx. 1 root root 0 Dec  2 17:50 hwmon3 -> ../../devices/platform/coretemp.0/hwmon/hwmon3
    
    $ ls -l hwmon3/device/driver/module
    lrwxrwxrwx. 1 root root 0 Dec  2 18:32 /sys/class/hwmon/hwmon3/device/driver/module -> ../../../../module/coretemp
    

    Mas os outros resultados não parecem tão úteis :-). O que é virtual/thermal/thermal_zone0/hwmon0?

    hwmondispositivos (e alguns outros tipos) também têm um arquivo name. Por exemplo, o iwlwifisensor, que é realmente fornecido pela minha placa Intel Wi-Fi. Mas o driver está com bugs e o declarou como um dispositivo virtual.

    $ head */name
    ==> hwmon0/name <==
    acpitz
    
    ==> hwmon1/name <==
    dell_smm
    
    ==> hwmon2/name <==
    iwlwifi
    
    ==> hwmon3/name <==
    coretemp
    

    Aqui está um dispositivo diferente, onde o driver está no "avô":

    $ ls -l */device/device/driver
    lrwxrwxrwx. 1 root root 0 Dec  2 18:33 /sys/class/hwmon/hwmon0/device/device/driver -> ../../../../bus/acpi/drivers/thermal
    

    Também não há módulo para este driver, porque este está embutido no kernel. Você pode confirmar isso se encontrar a opção correspondente na configuração de compilação do kernel. Isso não é necessariamente nomeado da mesma forma que o módulo.

    $ ls -l */device/device/driver/module
    ls: cannot access '*/device/device/driver/module': No such file or directory
    
    $ grep CORETEMP= /boot/config-$(uname -r)
    CONFIG_SENSORS_CORETEMP=m
    $ grep ACPI_THERMAL= /boot/config-$(uname -r)
    CONFIG_ACPI_THERMAL=y
    

    2. Encontrei o nome do módulo, agora...

    Você disse que não tem 100% de certeza do que fez. Se você encontrou o nome do módulo, mas ficou preocupado porque não se lembra se o instalou de um site desconhecido, aqui estão algumas coisas que você pode ver.

    Você pode recarregar um módulo e verificar o caminho de onde seu módulo foi recarregado:

    $ modprobe --remove coretemp
    
    $ modprobe -v coretemp
    insmod /lib/modules/4.19.4-200.fc28.x86_64/kernel/drivers/hwmon/coretemp.ko.xz
    

    Então você pode consultar seu gerenciador de pacotes para confirmar se o arquivo do módulo veio do pacote do kernel de distribuição. Por exemplo, para RPM:

    $ rpm -q --whatprovides /lib/modules/4.19.4-200.fc28.x86_64/kernel/drivers/hwmon/coretemp.ko.xz
    kernel-core-4.19.4-200.fc28.x86_64
    
    $ rpm -q --whatprovides /boot/vmlinuz-$(uname -r)
    kernel-core-4.19.4-200.fc28.x86_64
    

    Seu gerenciador de pacotes também deve permitir que você verifique se os arquivos do pacote instalado não foram modificados.

    Não é tão simples confirmar de onde veio o pacote :-). Normalmente você olha para o nome do pacote e adivinha :-). Você pode obter uma lista de pacotes disponíveis e de onde eles vêm, por exemplo, com dnf info kernel, mas não acho que o dnf possa mostrar a soma de verificação do arquivo RPM que foi instalado ou dos RPMs disponíveis.

    • 2

relate perguntas

  • Como resolver "sem suporte de rastreamento de conexão no kernel" em Vuurmuur?

  • Não é possível definir os parâmetros do módulo do kernel

  • Broadcom sem fio não detectado no Fedora 27

  • Como desativar a aceleração de hardware no Linux?

  • Empresas que vendem computadores sem sistema operacional proprietário pré-instalado? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve