AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 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

Ryzen/Threadripper 温度传感器:哪些传感器与哪些内核模块相关以及如何启用它们

  • 772

我可以在 Linux 下的华擎 x399 Taichi 主板上的 AMD Threadripper 1950x 上监控哪些传感器。去年宣布温度监控适用于 Ryzen 处理器,据推测包含在 4.15 内核中,据此:https ://www.phoronix.com/scan.php?page=news_item&px=AMD-Zen-Temps -Hwmon-下一个。但是,似乎温度是偏移的,这是在内核 4.18.6 中根据以下内容修复的:https ://www.phoronix.com/scan.php?page=news_item&px=Linux-4.18.6-k10temp-Correct

据我所知,在 Linux 下绝对没有关于 Windows 下的每核温度监控的说法。

但是,其他消息来源表明我可能需要专门基于我的主板构建模块。这些说明似乎表明我可以根据传感器检测的输出构建适当的内核驱动程序:https ://linuxconfig.org/monitor-amd-ryzen-temperatures-in-linux-with-latest-kernel-modules

根据传感器检测我有 nct6775,但我找不到任何迹象表明我有适当的内核模块(没有用 lsmod 显示,还有其他地方我应该看吗?)。不幸的是,我无法从存储库构建,因为它不再在 github 上。

所以这些是我的问题:

  1. 哪些驱动程序和内核模块提供哪些信息?具体来说,哪些给出了 Windows 下可用的每个核心读数?

  2. linux下锐龙温度驱动的现状如何:完整、不完整、被破解、永远不可靠?

  3. 如果我能得到 nct6775,除了我已经拥有的 K10 之外,它还能给我什么?我还能从哪里获得构建它们的源代码?

  4. 为什么这方面的记录如此糟糕?在课程标准发布一年半之后没有关于此的明确信息,按照行业标准,AMD 是否异常无益?

kernel-modules hardware
  • 1 1 个回答
  • 3667 Views

1 个回答

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

    [OP 删除的答案:] 我仍然想知道:现在究竟是什么使 nct6775 可用?

    在以下链接中回答一般问题有很多尝试。不幸的是,它们都不是全面的,所以我会尝试改进它们。 Linux:如何找到用于设备的设备驱动程序?

    在您的情况下,传感器设备可以作为中所示的链接之一找到ls -l /sys/class/hwmon/*。您可以尝试扩展该命令,并立即找到您的内核模块:

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

    然而,这个命令做了一些假设。它不会在所有情况下都有效。如果命令不起作用,请通过检查链中的每个单独链接来缩小范围。有三种可能的情况。

    1. 你有driver链接,但没有module链接。

      这意味着驱动程序内置在内核中!这会回答你的问题:-)。

      它同样可以ls -l在driver链接上。即查看驱动程序的名称,更改上述命令以删除该/module部分。通常驱动程序名称与可加载模块的名称相同,但有时它们不同。

    2. driver链接不在下面,但是device...

      如果上述命令不起作用,您可能需要替换device为device/device,等等。

      该device链接会将您带到父设备。但有时驱动程序在祖父母设备上,甚至更远:-)。

    3. 没有一个父级device有driver链接,或者根本没有父级device链接。

      该device链接会将您带到父设备。例如,您可能有一个网络设备/sys/class/wlan0,并且/sys/class/wlan0/device可能指向一个提供wlan0.

      在您的情况下,我可以想象它在标准pci总线上没有类似设备的东西。在这种情况下,驱动程序应该定义自己的自定义设备,在/sys/devices/platform/. 这正是coretemp我的英特尔 CPU 驱动程序所做的。

      但是如果你的驱动程序弄错了,它会创建一个没有父设备的设备,因此没有device链接。传感器(hwmon设备)是比较晦涩的子设备之一;我以前见过这种情况发生好几次。往里看ls /sys/devices/virtual/*,我似乎有三个设备出错了,而且都是hwmon设备。

      如果没有“物理”/父母device- 那么就没有driver. 这是真正虚拟设备的预期行为,例如环回 ( lo) 或bridge网络设备。它反映了 Linux 内核的设备模型。在物理设备上,您可以删除绑定到它的驱动程序,并可能绑定不同的驱动程序。在没有物理设备的情况下支持这一点是没有意义的。不幸的是,没有像这样的等效方法来找到实现虚拟设备的模块。


    内容:

    1. 查看 /sys 的示例结果
    2. 我找到了模块名称,现在...

    1. 在 /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
    

    但是其他结果看起来没有那么有用:-)。是什么virtual/thermal/thermal_zone0/hwmon0?

    hwmon设备(和一些其他类型)也有一个name. 例如iwlwifi传感器,它实际上是由我的英特尔 Wi-Fi 卡提供的。但是驱动程序有问题并将其声明为虚拟设备。

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

    这是一个不同的设备,其中驱动程序位于“祖父母”上:

    $ 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
    

    这个驱动也没有模块,因为这个是内核内置的。如果您可以在内核构建配置中找到相应的选项,您可以确认这一点。但是,这不一定与模块命名相同。

    $ 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.我找到了模块名称,现在...

    你说你不是100%确定你做了什么。如果您找到了模块名称,但您担心因为您不记得是否从未知网站安装了它,那么您可以查看以下内容。

    您可以重新加载模块并检查重新加载模块的路径:

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

    然后您可以查询您的包管理器以确认模块文件来自分发内核包。例如对于 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
    

    您的包管理器还应该让您验证已安装的包文件没有被修改。

    确认包裹的来源并不是那么简单:-)。通常你会查看包名并猜测:-)。您可以获得可用软件包的列表以及它们的来源,例如使用dnf info kernel,但我认为 dnf 不能显示已安装的 RPM 文件或可用 RPM 的校验和。

    • 2

相关问题

  • 如何解决 Vuurmuur 中的“内核中不支持连接跟踪”?

  • 无法设置内核模块参数

  • 在 Fedora 27 中未检测到 Broadcom 无线

  • 如何在 Linux 中禁用硬件加速?

  • 销售没有预装专有操作系统的计算机的公司?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve