コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2016年4月15日 >>> 2016年4月2日
link もっと後

2016年4月15日

DebianでLinuxカーネルモジュールをビルドしたい

目次: Linux

独自のカーネルモジュールをビルドしたかったのですがスマートな方法が良く分からず、力ずくでやってしまいました。

まずaptでLinuxのソースコードを持ってきました。apt-get installだけだと /usr/srcにtarballが置かれるだけなので、手で展開します。

aptでLinuxのソースコードを持ってくる
# apt-get install linux-source-3.16
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  libqt4-dev pkg-config
The following NEW packages will be installed:
  linux-source-3.16
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/83.6 MB of archives.
After this operation, 83.7 MB of additional disk space will be used.
Selecting previously unselected package linux-source-3.16.
(Reading database ... 54876 files and directories currently installed.)
Preparing to unpack .../linux-source-3.16_3.16.7-ckt25-2_all.deb ...
Unpacking linux-source-3.16 (3.16.7-ckt25-2) ...
Setting up linux-source-3.16 (3.16.7-ckt25-2) ...

# cd /usr/src
# ls
linux-config-3.16  linux-source-3.16.tar.xz

# tar xf linux-source-3.16.tar.xz
# ln -s linux-source-3.16 linux

カーネルバージョンを見るか、Debianのカーネルパッケージのバージョンを確認して、適切なカーネルのconfigファイルを展開します。

適切なLinuxのconfigファイルを展開
# cd /usr/src

# uname -a
Linux vbox-blackbird 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

# cp linux-config-3.16/config.amd64_none_amd64.xz linux/
# cd /usr/src/linux
# xz -d config.amd64_none_amd64.xz
# mv config.amd64_none_amd64 .config

ビルドします。Debianのカーネルコンフィグはやたらめったらドライバをビルドするので、かなりビルドに時間が掛かります…。

Linuxをビルド
# cd /usr/src/linux

# make -j 4 bzImage modules
...

ビルドが終わったら、独自カーネルモジュールをビルドします。

独自カーネルモジュールをビルド
# cd /home/username/hoge_module

# make
...

生成された*.koをinsmodして文句言われなければ成功です。

独自カーネルモジュールのinsmod失敗例
# insmod hoge.ko
insmod: ERROR: could not insert module hoge.ko: Invalid module format

こんな風に怒られる時は、昔のバージョンのtarballを展開したときのコードが残っているなど、カーネルのソースコードが古いか、コンフィグを選び間違っていますので、確認しましょう…。

編集者:すずき(2023/04/29 21:35)

コメント一覧

  • hdkさん(2016/04/17 02:32)
    config は /boot に入っていると思いますが、そんなことより、linux-headers-* を入れて /lib/modules/`uname -r`/build/ を使うのが一般的かと...

    dkms というのを使うと今後のカーネルアップデート時に自動で再コンパイルもできるみたいです。
  • すずきさん(2016/04/17 13:46)
    >hdk さん
    言われてみれば config って /boot にありますね。
    /lib/modules/`uname -r`/build/ ってそのためにあったのか…。やってみます。ありがとう。
open/close この記事にコメントする



link もっと前
2016年4月15日 >>> 2016年4月2日
link もっと後

管理用メニュー

link 記事を新規作成

<2016>
<<<04>>>
-----12
3456789
10111213141516
17181920212223
24252627282930

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事3件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17