单独编译widora内核模块的方法

今天在网上看到单独编译openwrt 内核模块的一种方法,做了一些修改,试用了一下发现很方便, 编译速度比用make /packag/kernel/…/compile V=99 这样加快了很多, 前提是你已经编译过固件,并保留了相应目录和kernel 源码等相关文件。
具体步骤如下:

1. 在包含你的模块源码的当前目录下添加一个kmake.sh 文件,内容如下:

#!/bin/sh
PREFIX="/home/midas/openwrt_widora"
ARCH=mips
KSRC="$PREFIX/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.29"
STAGING_DIR="$PREFIX/staging_dir"
TOOLCHAIN_DIR="$STAGING_DIR/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin"
CROSS_COMPILE="$TOOLCHAIN_DIR/mipsel-openwrt-linux-"
PWD=pwd
make clean
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE -C $KSRC M=$PWD modules

具体目录根据你的实际配置调整,完成后赋予执行权限.

2. 我的源码文件是kdraw.c , 制作一个简单的Makefile,内容如下:
obj-m += kdraw.o
clean:
rm -f *.o *.mod.c *.order *.symvers

3 . 在当前目录下执行 ./kmake.sh 开始编译内核模块。 成功后会在当前目录下生成对应的 kdraw.ko 文件.

4. 将 kdraw.ko 传到widora, 执行 insmod kdraw.ko 即可安装模块。