「Hwdetect」の版間の差分
ナビゲーションに移動
検索に移動
(→サンプル: 情報を更新) |
(→使い方: リンクを更新) |
||
(同じ利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
[[Category:ハードウェア検出とトラブルシューティング]] |
[[Category:ハードウェア検出とトラブルシューティング]] |
||
[[en:Hwdetect]] |
[[en:Hwdetect]] |
||
− | [[tr:hwdetect]] |
||
[https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect hwdetect] はハードウェア検出スクリプトで、主に [[mkinitcpio.conf]] で使用するモジュールのロードやリストに使用されます。そのため、ハードウェアを駆動するためにどのカーネルモジュールが必要かをユーザーに知らせます。これは他の多くのツールとは対照的で、ハードウェアにクエリを発行し、生の情報を表示するだけで、その情報を必要なドライバに関連付ける作業をユーザーに任せます。このスクリプトは、Linux カーネルで採用されている [[Wikipedia:Sysfs|sysfs]] サブシステムによってエクスポートされた情報を利用します。 |
[https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect hwdetect] はハードウェア検出スクリプトで、主に [[mkinitcpio.conf]] で使用するモジュールのロードやリストに使用されます。そのため、ハードウェアを駆動するためにどのカーネルモジュールが必要かをユーザーに知らせます。これは他の多くのツールとは対照的で、ハードウェアにクエリを発行し、生の情報を表示するだけで、その情報を必要なドライバに関連付ける作業をユーザーに任せます。このスクリプトは、Linux カーネルで採用されている [[Wikipedia:Sysfs|sysfs]] サブシステムによってエクスポートされた情報を利用します。 |
||
8行目: | 7行目: | ||
[[公式リポジトリ]]から {{Pkg|hwdetect}} パッケージをインストールしてください。 |
[[公式リポジトリ]]から {{Pkg|hwdetect}} パッケージをインストールしてください。 |
||
− | ==使 |
+ | == 使い方 == |
− | 最新の使用方法は [https:// |
+ | 最新の使用方法は [https://github.com/archlinux/svntogit-packages/blob/packages/hwdetect/trunk/hwdetect hwdetect ソース] や {{ic|hwdetect --help}} を実行することで確認できます。 |
== サンプル == |
== サンプル == |
||
30行目: | 29行目: | ||
}} |
}} |
||
− | == ヒント == |
+ | == ヒントとテクニック == |
− | 現在使われていないモジュールのリストを生成するには、次を実行: |
||
− | # hwdetect --modules-not-loaded |
||
+ | === 未使用のモジュール === |
||
− | もしくは以下のスクリプトを使用: |
||
+ | |||
− | {{hc|modules-not-loaded|<nowiki> |
||
+ | 現在使用されていないモジュールのリストを生成するには、次のスクリプトを使用します: |
||
− | eval $(hwdetect --modules) |
||
+ | |||
− | for m in ${MODULES[*]}; do |
||
+ | #!/bin/bash |
||
− | if ! grep -sq $(echo $m|tr - _) <(lsmod); then |
||
+ | modules=($(awk '{print $1}' /proc/modules)) |
||
− | echo $m; |
||
+ | |||
− | fi |
||
+ | for hw in $(hwdetect --show-modules | awk -F: '{gsub("-","_"); print $2}'); do |
||
− | done</nowiki> |
||
+ | 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.conf に MODULES
を設定できます。
# hwdetect --modules
コマンドを実行すると以下のように出力されます (もちろん出力はシステムによって変わります):
SOUND : pcspkr OTHER : 8139cp 8139too ac
使用するものに応じて、モジュール名をコピーして、/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