Debian

hwmon:添加缺少的核心模組

  • June 14, 2021

**TL;DR:**標準 debian 安裝中似乎缺少

核心模組 sht3x ( https://www.kernel.org/doc/html/latest/hwmon/sht3x.html )。我需要它來讀取外部感測器。如何安裝此核心模組?

整個故事

我嘗試將 SHT31 溫度/濕度感測器連接到我的 Debian 筆記型電腦。為此,我刷了一個 ATTiny85 微控制器作為i2c-tiny-usb介面。

我讓這部分工作 -lsusb將設備列為

Bus 003 Device 003: ID 0403:c631 Future Technology Devices International, Ltd i2c-tiny-usb interface

我也得到了有希望的回應i2cdetect

$ sudo i2cdetect -l
i2c-3   i2c         i915 gmbus dpc                      I2C adapter
i2c-1   i2c         i915 gmbus vga                      I2C adapter
i2c-8   i2c         i2c-tiny-usb at bus 001 device 017  I2C adapter
i2c-6   i2c         AUX B/port B                        I2C adapter
i2c-4   i2c         i915 gmbus dpb                      I2C adapter
i2c-2   i2c         i915 gmbus panel                    I2C adapter
i2c-0   i2c         i915 gmbus ssc                      I2C adapter
i2c-7   i2c         AUX D/port D                        I2C adapter
i2c-5   i2c         i915 gmbus dpd                      I2C adapter
$ sudo i2cdetect 8
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-8.
I will probe address range 0x08-0x77.
Continue? [Y/n] Y
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- 45 -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

但是,我無法讀取感測器數據,因為我的(標準 Debian)系統上沒有安裝核心模組 sht3xlsmod ,並且沒有在.

問題

如何在我的 Debian 筆記本上安裝和使用 sht3x 核心模組?

我假設您正在執行 Debian 10,但後續版本的說明類似。Debian 10 中使用的核心版本支持您所使用的模組,但未啟用;讓我們解決這個問題。

  1. 在您的發行版中安裝預設版本的核心原始碼:
sudo apt install linux-source
  1. 提取它:
cd /usr/src
tar xf linux-source-*.tar.xz

(假設只有一個linux-sourcetarball 可用,除非您安裝了多個linux-source軟體包,否則會出現這種情況)。 3. 複製目前核心配置:

cd linux-source-*/
cp /boot/config-$(uname -r) .config
  1. 啟用sht3x模組的配置:
make menuconfig

(這可能會抱怨缺少工具,例如編譯器; sudoapt install build-essential應該可以解決問題)。

要查找需要啟用的選項及其位置,請按/並輸入“SHT3X”:

顯示“SHT3X”搜尋結果的 make menuconfig 螢幕截圖

這提供了許多資訊:

  • 該選項被呼叫SENSORS_SHT3X
  • 它列在“設備驅動程序”、“硬體監控支持”下;
  • 它所依賴的選項已經啟用;
  • 但它被禁用。按Enter退出搜尋結果,下到“Device Drivers”,按Enter,再下到“Hardware Monitoring Support”,再按Enter一次,找到“SHT3x”選項,按M將其作為模組啟用。

Tab直到突出顯示“保存”,然後Enter,確認要寫入的文件的名稱 ( .config),然後多次選擇“退出”,直到您返回提示。 5. 最後,建構模組:

make drivers/hwmon/sht3x.ko

這可能需要額外的依賴,至少libelf-devlibssl-dev( sudo apt install libelf-dev libssl-dev)。

如果一切順利,您最終會得到一個drivers/hwmon/sht3x.ko可以作為模組載入的文件。

引用自:https://unix.stackexchange.com/questions/654168