「Hwdetect」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎使い方: リンクを更新)
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:ハードウェア検出とトラブルシューティング]]
 
[[Category:ハードウェア検出とトラブルシューティング]]
 
[[en:Hwdetect]]
 
[[en:Hwdetect]]
  +
[https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect hwdetect] はハードウェア検出スクリプトで、主に [[mkinitcpio.conf]] で使用するモジュールのロードやリストに使用されます。そのため、ハードウェアを駆動するためにどのカーネルモジュールが必要かをユーザーに知らせます。これは他の多くのツールとは対照的で、ハードウェアにクエリを発行し、生の情報を表示するだけで、その情報を必要なドライバに関連付ける作業をユーザーに任せます。このスクリプトは、Linux カーネルで採用されている [[Wikipedia:Sysfs|sysfs]] サブシステムによってエクスポートされた情報を利用します。
[[tr:hwdetect]]
 
[https://projects.archlinux.org/svntogit/packages.git/tree/hwdetect/trunk/hwdetect hwdetect] は [[rc.conf]] や [[mkinitcpio|mkinitcpio.conf]] で使用するモジュールをロード・確認するためのハードウェア検出スクリプトです。Linux カーネルによって使われている [[Wikipedia:Sysfs|sysfs]] サブシステムの情報を利用します。
 
   
 
== インストール ==
 
== インストール ==
8行目: 7行目:
 
[[公式リポジトリ]]から {{Pkg|hwdetect}} パッケージをインストールしてください。
 
[[公式リポジトリ]]から {{Pkg|hwdetect}} パッケージをインストールしてください。
   
==使==
+
== 使 ==
   
最新の使用方法は [https://projects.archlinux.org/svntogit/packages.git/tree/hwdetect/trunk/hwdetect こちら] や {{ic|hwdetect --help}} を実行することで確認できます。
+
最新の使用方法は [https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect hwdetect ソース] や {{ic|hwdetect --help}} を実行することで確認できます。
   
 
== サンプル ==
 
== サンプル ==
  +
以下の方法で [[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|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}}.}}
 
   
  +
{{Note|
== ヒント ==
 
  +
* このツールには、{{ic|/etc/mkinitcpio.conf}} 内で使用するための専用の出力があります。
現在使われていないモジュールのリストを生成するには、次を実行:
 
  +
* 新しいカーネルに新しいモジュールが追加された、またはコンピュータに新しいハードウェアをインストールしたためにモジュール名が変更された場合は、モジュールのリストを再度生成し、{{ic|MODULES}} を更新する必要があります。
# hwdetect --modules-not-loaded
 
 
もしくは以下のスクリプトを使用:
 
{{hc|modules-not-loaded|<nowiki>
 
eval $(hwdetect --modules)
 
for m in ${MODULES[*]}; do
 
if ! grep -sq $(echo $m|tr - _) <(lsmod); then
 
echo $m;
 
fi
 
done</nowiki>
 
 
}}
 
}}
  +
  +
== ヒントとテクニック ==
  +
  +
=== 未使用のモジュール ===
  +
  +
現在使用されていないモジュールのリストを生成するには、次のスクリプトを使用します:
  +
  +
#!/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
  +
  +
== 参照 ==
  +
  +
* [[wikipedia:Lspci|lspci, and other hardware detection related tools]]

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

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

インストール

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

使い方

最新の使用方法は 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

参照