コンテンツにスキップ

「Hwdetect」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Kgx (トーク | 投稿記録)
序文を更新
Kgx (トーク | 投稿記録)
サンプル: 情報を更新
13行目: 13行目:


== サンプル ==
== サンプル ==

以下の方法で [[rc.conf]] の {{Ic|MOD_AUTOLOAD}} を無効化できます。モジュールを探す手間が省けるので、起動時間が短縮されます。
次のメソッドを使用して、[[mkinitcpio.conf]] に {{Ic|MODULES}} を設定できます。

# hwdetect --modules
# hwdetect --modules


コマンドを実行すると以下のように出力されます (もちろん出力はシステムによって変わります):
コマンドを実行すると以下のように出力されます (もちろん出力はシステムによって変わります):
MODULES=(ac battery button processor thermal video cdrom ....)


SOUND : pcspkr
上記の出力をコピーして {{ic|/etc/rc.conf}} の {{ic|MODULES}} セクションを置き換えて {{Ic|MOD_AUTOLOAD}} を "yes" から "no" に変更してください。それで自動ロードがスキップされて起動が高速になります。
OTHER : 8139cp 8139too ac

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


{{Note|
{{Note|If any of the module names change (unlikely) or you install new hardware on your computer, you will need to generate the list of modules again and update {{ic|MODULES}}.}}
* このツールには、{{ic|/etc/mkinitcpio.conf}} 内で使用するための専用の出力があります。
* 新しいカーネルに新しいモジュールが追加された、またはコンピュータに新しいハードウェアをインストールしたためにモジュール名が変更された場合は、モジュールのリストを再度生成し、{{ic|MODULES}} を更新する必要があります。
}}


== ヒント ==
== ヒント ==

2023年12月28日 (木) 20:17時点における版

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 を更新する必要があります。

ヒント

現在使われていないモジュールのリストを生成するには、次を実行:

# hwdetect --modules-not-loaded

もしくは以下のスクリプトを使用:

modules-not-loaded
eval $(hwdetect --modules)
for m in ${MODULES[*]}; do
    if ! grep -sq $(echo $m|tr - _) <(lsmod); then
        echo $m;
    fi
done