hwmon:不足しているカーネルモジュールを追加する

hwmon:不足しているカーネルモジュールを追加する

簡単に言うと:
カーネルモジュール sht3x(https://www.kernel.org/doc/html/latest/hwmon/sht3x.html)が標準のDebianインストールにないようです。外部センサーを読むために必要です。このカーネルモジュールをどのようにインストールしますか?

完全な物語
私はSHT31温度/湿度センサーをDebianノートブックに接続しようとしています。そのためにATtiny85マイクロコントローラをフラッシュするi2c - マイクロ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: -- -- -- -- -- -- -- --                         

ただし、センサーデータを読み取ることはできません。カーネルモジュール sht3x私の(標準Debian)システムにインストールされていませんlsmod

質問
Debianノートブックにsht3xカーネルモジュールをインストールして使用するには?

ベストアンサー1

私はあなたがDebian 10を実行していると仮定していますが、指示は将来のバージョンでも似ています。 Debian 10 で使用されるカーネルバージョンは、必要なモジュールをサポートしていますが、有効ではありません。

  1. ディストリビューションにカーネルソースのデフォルトバージョンをインストールします。

    sudo apt install linux-source
    
  2. 抽出:

    cd /usr/src
    tar xf linux-source-*.tar.xz
    

    (ただ1つのlinux-sourcetarballしか使用できないと仮定し、これは複数のパッケージをインストールしていない場合に当てはまりますlinux-source)。

  3. 現在のカーネル構成をコピーします。

    cd linux-source-*/
    cp /boot/config-$(uname -r) .config
    
  4. モジュール構成の有効化sht3x:

    make menuconfig
    

    (コンパイラなどのツールが欠落していると文句を言うことがあります。sudoはapt install build-essential問題を解決する必要があります。)

    有効にする必要があるオプションとその場所を見つけるには、/「SHT3X」を押して入力してください。

    "SHT3X"の検索結果を示すmake menuconfigスクリーンショット

    これはいくつかの情報を提供します。

    • このオプションはSENSORS_SHT3X;
    • 「デバイスドライバ」、「ハードウェア監視サポート」の下にリストされています。
    • 依存するオプションはすでに有効になっています。
    • しかし、無効になっています。

    を押してEnter検索結果を終了し、「デバイスドライバ」に移動し、をタップしてからEnter「ハードウェア監視サポート」に戻り、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すべてがうまくいくと、モジュールにロードできるファイルが作成されます。

おすすめ記事