内核编译外部模块

一、首先,编译外部模块,需要一个已经编译完成的内核。

        完全编译过的kernel,删掉其中的源文件(即.c文件),也可以编译外部模块。

二、编译语法

    1、手动指定路径

          make -C <path_to_kernel_src> M=$PWD

            选项"M=<dir>"告诉kernel编译系统编译外部模块的源码路径。

            -C $DIR kernel源码路径,编译过程中会改变该路径下内容,编译完成后回                退修改,还原到编译前

    2、使用坏境变量

      make -C /lib/modules/`uname -r`/build M=$PWD

    3、模块安装

           make -C /lib/modules/`uname -r`/build M=$PWD modules_install

   4、一个简单的Makefile

        obj-m   :=hack_unlinkat.o

        EXTRA_CFLAGS := -Dsymname=sys_call_table

        KDIR   := /sdb1/linux-4.4.253

        PWD   := $(shell pwd)

        default:

                make -C $(KDIR) M=$(PWD) modules

        clean:

                rm -rf .*.cmd *.mod.c *.o *.ko .tmp* *.symvers

           hack_unlinkat.c是源文件,把Makefile放到源文件目录下,执行make.最后编              译出来的目标是hack_unlinkat.ko

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luopandeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值