最終更新:2017-06-23 (金) 17:23:13 (2499d)  

Linux/カーネルモジュール/ビルド

ドキュメント

Building External Modules

CentOS Wiki

カーネルのコンパイルなしにカーネルモジュールをコンパイルする環境を作る

make modules_prepare

make

Makefile

  • obj-m := hello.o
    KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd)
    all:
    $(MAKE) -C $(KERNELDIR) M=$(PWD)

個別のモジュールだけビルド

  • make M={モジュールのパス}
    make modules_prepare
    make M=fs/cifs
  • make SUBDIRS={モジュールのパス}
  • -Cでカーネルソースツリーの場所を指定できる
    make -C <path_to_kernel_src> M=$PWD

  • make -C /lib/modules/`uname -r`/build M=モジュールのソースコード modules_install
  • depmod -a

The directory can be specified in several ways:

  • 1) Use "M?=..." on the command line
  • 2) Environment variable KBUILD_EXTMOD?
  • 3) Environment variable SUBDIRS?

メモ

Module.symvers

  • 何かバージョンチェックとかを行うためのファイル。

ソース

作り方

関連

参考