「Modprobed-db」の版間の差分
Kusakata.bot2 (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
Kusakata.bot2 (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
||
63行目: | 63行目: | ||
*{{AUR|linux-bfs}}{{Broken package link|{{aur-mirror|linux-bfs}}}} |
*{{AUR|linux-bfs}}{{Broken package link|{{aur-mirror|linux-bfs}}}} |
||
*{{AUR|linux-bridge-pl}}{{Broken package link|{{aur-mirror|linux-bridge-pl}}}} |
*{{AUR|linux-bridge-pl}}{{Broken package link|{{aur-mirror|linux-bridge-pl}}}} |
||
− | *{{AUR|linux-ck-fbcondecor |
+ | *{{AUR|linux-ck-fbcondecor}} |
*{{AUR|linux-ck}} |
*{{AUR|linux-ck}} |
||
*{{AUR|linux-lqx}} |
*{{AUR|linux-lqx}} |
2020年12月31日 (木) 14:45時点における版
modprobed-dbAUR はシステムで使われているモジュールを全て記憶して簡単に呼び出せるようにします。make localmodconfig
を使って最小のカーネルをビルドしたいと思っているユーザーならとても役に立ちます。現在ロードされている全てのモジュールを調査して .config
でロードされていない機能をオフにすることでカーネルパッケージを小さくしてコンパイル時間も短縮できます。
目次
インストールとセットアップ
AUR から modprobed-dbAUR パッケージをインストールできます。
modprobed-db
を実行すると$XDG_CONFIG_HOME/modprobed-db.conf
が (存在してない場合) 作成されます。modprobed-db store
を実行すると現在ロードされているモジュールが保存されます。
任意: 無視したいモジュールは ignore 行列に追加してください。例えば他のパッケージにモジュールが入っている場合などです。デフォルトでは以下のモジュールが含まれています:
$ cat ~/.config/modprobed-db.conf
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)
使用方法
最初にデータベースが作成されたら、通常通りにシステムを使って (USB スティックを接続したり、モジュールを必要とするハードウェアを使ったり、モジュールを必要とするファイルシステムをマウントするなど)、以下の方法のどちらかで定期的にデータベースを更新します:
Cron
modprobed-db を使用する最も便利な方法は /usr/bin/modprobed-db store
を定期的に実行する crontab エントリを追加することです。
1時間ごとにスクリプトを実行する例:
$ crontab -e 0 */1 * * * /usr/bin/modprobed-db store &> /dev/null
Systemd
cron を使いたくない Systemd ユーザーは付属のサービスを使うことができます: modprobed-db.service
。起動時とシャットダウン時、それと1時間ごとに store モードで modprobed-db を実行します。
$ systemctl --user enable modprobed-db.service $ systemctl --user start modprobed-db.service
データの使用
上述したとおり、このスクリプトはカーネルをコンパイルするときに make localmodconfig と組み合わせて使われることが想定されています。十分なデータベースが作成されたら、カーネルをコンパイルする前に /usr/bin/modprobed-db recall
を実行して全てのモジュールをロードしてから make localmodconfig を使います。
Arch の公式カーネルの PKGBUILD を使う
Arch の公式カーネルの PKGBUILD はネイティブの対応はしていませんが、以下のように簡単に設定することができます:
... # get kernel version make prepare sudo /usr/bin/modprobed-db recall <---- insert this line make localmodconfig <---- insert this line # load configuration # Configure the kernel. Replace the line below with one of your choice. #make menuconfig # CLI menu for configuration #make nconfig # new CLI menu for configuration #make xconfig # X-based configuration #make oldconfig # using old config from previous kernel version # ... or manually edit .config ...
AUR のカーネルを使う
AUR のカーネルパッケージの中には PKGBUILD ファイルで modprobed-db にネイティブで対応しているものがあります。例:
- linux-bfsAUR[リンク切れ: アーカイブ: aur-mirror]
- linux-bridge-plAUR[リンク切れ: アーカイブ: aur-mirror]
- linux-ck-fbcondecorAUR
- linux-ckAUR
- linux-lqxAUR
- linux-lts310AUR[リンク切れ: パッケージが存在しません]
- linux-lts312AUR[リンク切れ: パッケージが存在しません]
- linux-lts-ckAUR
- linux-pfAUR
- linux-uksm-ckAUR[リンク切れ: アーカイブ: aur-mirror]
- linux-iceAUR[リンク切れ: パッケージが存在しません]
- linux-uksmAUR
modprobed-db を使用する他のパッケージを調べるには:
cd /scratch git clone --depth 1 http://pkgbuild.com/git/aur-mirror.git find /scratch/aur-mirror -iname "PKGBUILD" -print0 | xargs -0 grep -i 'modprobed-db recall\|modprobed_db recall' | sort
もしくは、こちらのリンク から .tar.xz スナップショット (約 90 MB) をダウンロードして、最新のコミットメッセージをクリックしてください。
推奨事項
make localmodconfig でカーネルをビルドする前に、パッケージをインストールしてから相当期間はシステムを"使用"して、システムの使用状況に応じてデータベースがシステムに必要なモジュールを全て収集するまで成長させることが推奨されています。適当なモジュールをロードしてカタログ化させるために以下のような操作をすることが推奨されます:
- あらゆるリムーバブルメディア (USB, DVD, CD など) を挿入
- マシンに接続された全てのデバイスを使用 (wifi, ネットワーク, カメラや ipod などの USB デバイスなど)
- あらゆるファイルシステムのマウント (ext2/3/4, fat, vfat, CIFS 共有, NFS 共有など)
- 必要とするモジュールを確認するため出来る限り多数の (いつも使っている) アプリケーションを使用。例えば、pgl-cliAUR などの IP ブロック/フィルタリングソフトウェア。
- iso イメージファイルをマウントすることがある場合はマウントしてください (loop と isofs モジュールが記録されます)。
- truecrypt などの暗号化ソフトウェアを必要とする場合は、データベースに crypto モジュールが記録されるように、ソフトウェアをロードして暗号化コンテナをマウント。
- 別の Linux カーネルを試用。デフォルトのカーネルでは有効になっていないモジュールが含まれている可能性があります。
推奨モジュール
- cifs
- ext2
- ext3
- ext4
- fat
- isofs
- loop
- efivars
- vfat
- usb_storage
カスタムカーネルで make localmodconfig と modprobed-db を使用するメリット
- ファイルシステム上のカーネル容量の縮小
- コンパイル時間の短縮
Arch カーネルのバージョン 3.8.8-1 による比較 (ABS を使用):
マシン 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