Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Modprobed-dbのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Modprobed-db
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:カーネル]] [[en:Modprobed-db]] {{Related articles start}} {{Related|カーネル}} {{Related|Linux-ck}} {{Related articles end}} [https://github.com/graysky2/modprobed-db modprobed-db] は、システムの実行中にロードされている全ての[[カーネルモジュール]]のリストを生成するユーティリティです。このリストを使うことで、[[カーネル#コンパイル|自分でカーネルをビルドする]]際に未使用のモジュールを全て無効化し、コンパイル時間を劇的に削減することができます。 == インストール == {{AUR|modprobed-db}} パッケージをインストールしてください。 # {{ic|modprobed-db}} を実行してください。まだ存在しないならば {{ic|$XDG_CONFIG_HOME/modprobed-db.conf}} が作成されます。 # {{ic|modprobed-db store}} を実行してください。{{ic|$XDG_CONFIG_HOME/modprobed.db}} データベースファイルが作成され、現在ロードされているモジュールが記録されます。 '''任意:''' 記録したくないモジュールは ignore 配列に追加してください。例えば、ビルドされるモジュールや、他のパッケージによって提供されているモジュールなどです。 無視されるべき一般的なモジュールは、いくつかすでに追加されています: {{hc|$ cat ~/.config/modprobed-db.conf|2= IGNORE=(nvidia vboxdrv vboxnetflt vboxnetadp vboxpci lirc_dev lirc_i2c osscore oss_hdaudio oss_usb tp_smapi thinkpad_ec zavl znvpair zunicode zcommon zpios zfs spl splat) }} == 使用方法 == === データベースを生成する === 初期データベースが作成されたら、現在データベースに登録されているモジュールを表示するには {{ic|modprobed-db list}} を、現在ロードされているカーネルモジュールでデータベースを更新するには {{ic|modprobed-db store}} を使ってください。 ==== 推奨事項 ==== [[#modprobed-db でカーネルをビルドする|不必要なモジュールを除いてカーネルをビルドする]]前に、モジュールの使用状況を基にデータベースを大きくして、システムが必要とするモジュールをすべて記録するのに十分な時間、{{ic|modprobed-db}} をインストールした状態で公式の Arch カーネルを "使用する" ことが推奨されます。以下では、適切なモジュールをロードしてカタログ化できるようにするためのアクションをいくつか提案しています: * 必要にあるであろう全種類の[[ファイルシステム]]をマウントする。 * 使用するであろう全種類のリムーバブルメディアを挿入する (USB、DVD、CD など)。 ** これには、必要ならば、ISO イメージファイルのマウントも含まれます。ISO イメージファイルのマウントには '''loop''' モジュールと '''isofs''' モジュールが使用されます。 * マシン上の全デバイスを使用する (ネットワークインターフェイス、入力デバイス、ウェブカメラ、モバイルデバイスなど)。 * 必要なアプリケーションを全て使用する。一部のアプリケーションはカーネルモジュールに依存しているからです。例えば: ** IP ブロック/フィルタリングソフトウェア ({{AUR|pgl-cli}} など) は、[[iptables]] カーネルモジュールを必要とします。 ** 暗号化ソフトウェア ({{AUR|truecrypt}} など) は、暗号化用のカーネルモジュールを必要とします。モジュールを確実にロードさせるために、暗号化済みのコンテナをいくつかマウントしてください。 ** 特定の [[QEMU]] 構成では、カーネルモジュールが必要です。 ** [[lm-sensors]] は、ハードウェアのセンサーを読むためにカーネルモジュールを必要とします。 * 別の Linux カーネルを実行して modprobed-db を再度実行してみる。他の Linux カーネルでは、他のカーネルでは有効化されていないモジュールが含まれている可能性があります。 これらのアクションは、定期的に {{ic|modprobed-db store}} でデータベースを更新して新しくロードされたカーネルモジュールを捕捉することと並行に行われることになっています。 ==== 自動的かつ定期的にデータベースを更新する ==== {{ic|modprobed-db store}} の実行は以下の方法により自動化できます: ===== Cron ===== modprobed-db を使用する最も便利な方法は、{{ic|/usr/bin/modprobed-db store}} を定期的に実行する crontab エントリを追加することです。 1時間ごとにスクリプトを実行する例: $ crontab -e 0 */1 * * * /usr/bin/modprobed-db store &> /dev/null ===== systemd ===== cron ではなく、{{ic|modprobed-db.service}} [[ユーザーユニット]]を[[起動/有効化]]することもできます。このユニットは、1時間毎、そして起動時とシャットダウン時に、store モードで modprobed-db を実行します。 他のサービスやタイマーのように、{{ic|modprobed-db.service}} [[ユーザーユニット]]の[[ユニットステータス|ステータス]]はクエリできます。 ==== 手動でデータベースを編集する ==== [[#自動的かつ定期的にデータベースを更新する]] 方法や、手動で {{ic|modprobed-db store}} を実行することは、絶対に確実というわけではありません: * 一部のモジュールはデータベースの更新と更新の間でロードとアンロードが行われてしまい、捕捉されない可能性があります。 * 一部のモジュールはブートの途中で使用され、{{ic|modprobed-db}} によって捕捉されません (例: {{ic|efivarfs}})。それらは手動で {{ic|modprobed.db}} ファイルに追加する必要があります。 ありがたいことに、{{ic|modprobed.db}} データベースファイルは、1行に1つのカーネルモジュール名が記述されているシンプルなテキストファイルです。手動で編集してモジュールを追加/削除できます。手動で編集した後は、{{ic|modprobed-db store}} を実行してモジュールを自動で並べ替えさせることをおすすめします。 ===== 推奨モジュール ===== 以下のモジュールは、広く使用されているため、{{ic|$XDG_CONFIG_HOME/modprobed.db}} データベースに追加することが推奨されます: * {{ic|ext4}}、{{ic|fat}}、{{ic|vfat}}: 一般的な[[ファイルシステム]]と [[EFI システムパーティション]]をサポートするため。 * {{ic|loop}}: ファイルをファイルシステムとしてマウントするため。 * {{ic|isofs}}: ISO ファイルをマウントするため。 * {{ic|cifs}}: [[Samba]] などのネットワークファイルシステム用。 * {{ic|efivarfs}}: [[UEFI#UEFI 変数]] のファイルシステムをマウントするため。 * {{ic|usb_storage}}: [[USB ストレージデバイス]]をサポートするため。 * {{ic|usbhid}}: USB 入力デバイスをサポートするため。 === modprobed-db でカーネルをビルドする === データベースが十分に生成できたら、[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/README?id=refs/tags/v4.3.3#n205 make localmodconfig] で直接読み込むことができます。 ==== 伝統的なコンパイル方法 ==== {{ic|modprobed-db}} は、[[カーネル/伝統的なコンパイル方法|伝統的なコンパイルワークフロー]]において [[カーネル/伝統的なコンパイル方法#Arch のデフォルト設定|Arch のデフォルトの .config ファイル]]を用いた設定ステップに自然に介入します。 ==== 公式 Arch カーネルの PKGBUILD を使う ==== 公式の Arch カーネルの {{ic|PKGBUILD}} は、これを自動的に行うように変更できます: {{bc|1=... msg2 "Applying patch $src..." patch -Np1 < "../$src" done msg2 "Setting config..." cp ../config .config make olddefconfig '''make LSMOD=$HOME/.config/modprobed.db localmodconfig''' make -s kernelrelease > ../version ... }} ==== linux-tkg を使う ==== [https://github.com/Frogging-Family/linux-tkg linux-tkg] は、ユーザフレンドリーなカーネルビルドスクリプトを提供しています。さらに、デスクトップ/ゲーミングパフォーマンスを向上させることを目的とした追加のパッチも含まれています。不必要なモジュールを取り除くための {{ic|modprobed-db}} データベースの使用は、この設定ファイルでオン/オフを切り替えることができます。 == 推奨モジュール == *cifs *ext2 *ext3 *ext4 *fat *isofs *loop *efivars *vfat *usb_storage == カスタムカーネルで '''make localmodconfig''' と modprobed-db を使用するメリット == #ファイルシステム上のカーネル容量の縮小 #コンパイル時間の短縮 Arch カーネルのバージョン 3.8.8-1 による比較 (ABS を使用): {{Note| The modprobed.db on the test machine contains 209 lines; YMMV based on specific usage and needs.}} {| class="wikitable" style="text-align:center" | '''マシン CPU''' || '''スレッド数''' || '''make localmodconfig'''||'''モジュール数''' || '''HDD 上のモジュール容量''' || '''コンパイル時間''' |- | Intel i7-3770K @ 4.50 GHz || 8 || {{No}} || 3,025 || 129 MB || 7分37秒 |- | Intel i7-3770K @ 4.50 GHz || 8 || {{Yes}} || 230 || 18 MB || 1分13秒 |- | Intel Q9550 @ 3.40 GHz || 4 || {{No}} || 3,025 || 129 MB || 14分21秒 |- | Intel Q9550 @ 3.40 GHz || 4 || {{Yes}} || 230 || 18 MB || 2分20秒 |- | Intel E5200 @ 3.33 GHz || 2 || {{No}} || 3,025 || 129 MB || 34分35秒 |- | Intel E5200 @ 3.33 GHz || 2 || {{Yes}} || 230 || 18 MB || 5分46秒 |- |} *'''ビルドされるモジュールの数が 1/13''' *'''容量が 1/7''' *'''コンパイル時間が 1/6''' モジュールの数を確認: find /scratch/linux-3.8 -name '*.ko' | wc -l HDD 上の容量を確認: find /scratch/linux-3.8 -name '*.ko' -print0 | xargs -0 du -ch 設定済みの linux-3.8.8 のコンパイル時間を確認 (標準の Arch 設定を使用): $ time make -jx modules {{Note|The Arch standard is to gzip each module; the numbers shown in the table above are not gzip'ed but the savings ratio will be unaffected by this.}} == 参照 == * https://docs.kernel.org/admin-guide/README.html#configuring-the-kernel {{ic|make localmodconfig}} のドキュメント * https://docs.kernel.org/kbuild/kconfig.html とその親ディレクトリ
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
Modprobed-db
に戻る。
検索
検索
Modprobed-dbのソースを表示
話題を追加