Hwdetect

提供: ArchWiki
2023年12月28日 (木) 20:24時点におけるKgx (トーク | 投稿記録)による版 (他言語へのリンクを修正)
ナビゲーションに移動 検索に移動

hwdetect はハードウェア検出スクリプトで、主に mkinitcpio.conf で使用するモジュールのロードやリストに使用されます。そのため、ハードウェアを駆動するためにどのカーネルモジュールが必要かをユーザーに知らせます。これは他の多くのツールとは対照的で、ハードウェアにクエリを発行し、生の情報を表示するだけで、その情報を必要なドライバに関連付ける作業をユーザーに任せます。このスクリプトは、Linux カーネルで採用されている sysfs サブシステムによってエクスポートされた情報を利用します。

インストール

公式リポジトリから hwdetect パッケージをインストールしてください。

使い方

最新の使用方法は こちらhwdetect --help を実行することで確認できます。

サンプル

次のメソッドを使用して、mkinitcpio.confMODULES を設定できます。

# hwdetect --modules

コマンドを実行すると以下のように出力されます (もちろん出力はシステムによって変わります):

SOUND    : pcspkr
OTHER    : 8139cp 8139too ac

使用するものに応じて、モジュール名をコピーして、/etc/mkinitcpio.confMODULES セクションを置き換えます。ハードウェアの検出とモジュールの依存関係の計算の一部またはすべてがすでに記載されているため、システムはより速く起動するはずです。

ノート:
  • このツールには、/etc/mkinitcpio.conf 内で使用するための専用の出力があります。
  • 新しいカーネルに新しいモジュールが追加された、またはコンピュータに新しいハードウェアをインストールしたためにモジュール名が変更された場合は、モジュールのリストを再度生成し、MODULES を更新する必要があります。

ヒントとテクニック

未使用のモジュール

現在使用されていないモジュールのリストを生成するには、次のスクリプトを使用します:

#!/bin/bash
modules=($(awk '{print $1}' /proc/modules))

for hw in $(hwdetect --show-modules | awk -F: '{gsub("-","_"); print $2}'); do
    if ! grep -q "$hw" <(printf '%s\n' "${modules[@]}"); then
        printf '%s\n' "$hw";
    fi
done

上位レベルのモジュール

その逆のスクリプトも、特定のハードウェアとの関連性が低いという意味で、より高レベルのモジュールをリストアップしていて興味深いです:

#!/bin/bash
lowlevel=($(hwdetect --show-modules | awk -F: '{gsub("-","_"); print $2}'))

for mod in $(awk '{print $1}' /proc/modules); do
    if ! grep -q "$mod" <(printf '%s\n' "${lowlevel[@]}"); then
        printf '%s\n' "$mod";
    fi
done

参照