• UbuntuのDKMSで生成したカーネルモジュールの格納先

    先日の記事でUbuntu14.10でELECOMのWi-Fiアダプタをカーネルのアップデートを気にせず使えるようにする方法を紹介しました。

    DKMSによって新しいLinuxカーネルをインストールした際には、自動的にWi-Fiアダプタのドライバ(カーネルモジュール)が再ビルドされ、モジュール置き場へと格納されます。
    そのモジュール置き場なのですが、どうやらUbuntuでは自由に設定できないようです。

    DKMSのソースツリーの中に作成するdkms.confファイルの中には、下記のようなパラメータを設定します。

    DEST_MODULE_LOCATION[0]=”/updates/dkms”

    実はこのパラメータ部分を/kernel/drivers/net/wirelessなどのように変更しても実際にインストールされるのは、/updates/dkmsになります。
    ちなみにこのパスはカーネルモジュール置き場からの相対パスとなっていますので、フルパスだと下記のようになります。

    /lib/modules/3.13.0-43-generic/updates/dkms

    いくらパラメータを変更しても格納先が変わらないのでおかしーなーと思ってたらこんな記事をみつけました。
    UbuntuのフレーバーであるKubuntuの記事ですが…。

    Kubuntu Wiki DKMSPackaging

    記事中の、DEST_MODULE_LOCATION[0]について引用します。

    DEST_MODULE_LOCATION[0] tells DKMS where to put the kernel object when installing. In this example, the kernel object will be “/lib/modules/$kernelver/updates”. In Ubuntu, this information will be overrade to “/updates/dkms”. It means our kernel objects will be put at /lib/modules/$kernelver/updates/dkms”. Although this information will be overrade, it is still a necessary field.

    こいつを小生のつたない英語力で訳しますと…

    DEST_MODULE_LOCATION[0] により、DKMSはインストールの際、どこにカーネルオブジェクトを配置するかを決定します。このサンプルでは、カーネルオブジェクトは”/lib/modules/$kernelver/updates”に配置されます。Ubuntuでは、この設定情報は”/updates/dkms”によって上書きされます。つまり、カーネルオブジェクトは”/lib/modules/$kernelver/updates/dkms”へと配置されます。この設定情報は上書きされるにもかかわらず、未だ必須の項目となっています。

    ようは、何を設定しても必ず”updates/dkms”配下に配置されるそうです。
    しかし、設定自体は記述しておく必要があるそうです。なんじゃそら。

    他のディストリビューションでは任意のディレクトリに配置できるのでしょうかね。

    カテゴリー: Linux, 技術系

    コメントを残す

    メールアドレスが公開されることはありません。

    計算式の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.