单独编译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 即可安装模块。