趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • LinuxKernel3.7.1をコンパイルしてみた

    投稿日 2013年 1月 12日 コメントはありません

    SerialATAを外したカーネルをビルドしたBasix-1.0をUSBメモリにインストールして遊んでみたりしているのですが、アップデートマネージャが「カーネルをバージョンアップしろ」と煩いです。

    そこで、この際なので最新のカーネルパッケージを作ってインストールしてみました。構築した環境は前回カーネルパッケージを作った仮想環境です。手順は基本的に同じです。

    1.カーネルソースの入手と展開

    The Linux Kernel Archiveで最新のstableのカーネル3.7.1を入手してきました。
    これをローカルディレクトリに展開します。(前回はシステムディレクトリに展開しましたが)

    2.ターゲットシステムの config ファイルの入手と修正、config実施

    ターゲットシステムの /boot の下から config ファイルを入手してきて、展開したディレクトリの下に「.config」というファイル名で置きます。
    その後、

    $ sudo make oldconfig

    で config ファイルを作り直します。新しい機能をどうするか沢山聞いてくるのですが、基本的にはデフォルトのままにしました。
    この後、.config ファイルを直接編集して、「CONFIG_RTS5139=m」という行を「CONFIG_RTS5139=n」に変更します。そうしないと、カーネル構築中に

    ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!

    というエラーが出てコンパイルが止まります。(本当はどこかのタイプミスみたいなのでそっちを直す方が正しいんでしょうが・・・)
    次に、

    $ sudo make menuconfig

    でSATA/PATAのドライバやFusion MPTドライバなどを外しました。

    3.カーネルパッケージの構築

    以下の手順でカーネルパッケージを構築します。

    $ sudo make-kpkg clean
    $ sudo make-kpkg --initrd kernel_image kernel_headers --append_to_version="-nosata" --revision=20130110.1 -j3

    でパッケージを構築します。

    構築したパッケージをターゲットに持っていって起動を確認した後、元のカーネルパッケージを削除します。この場合、カーネルがバージョンアップしたら毎回パッケージを作り直してインストールしなおさないといけないでしょうねぇ・・・。

    #LinuxMint13 XFCEにも入れちゃいました・・・。

     


    コメントをどうぞ(日本語のみ/Only in Japanese)

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)