openwrt增加核心模組的方法

2021-06-18 20:58:49 字數 3144 閱讀 4309

下面就是增加核心模組的方法了

進入package目錄,建立模組目錄

cd backfire/package

mkdir example

進入example目錄,建立makefile檔案和**路徑

cd example

touch makefile

mkdir src

makefile具體內容如下:

#

## this is free software, licensed under the gnu general public license v2.

# see /license for more information.

#include $(topdir)/rules.mk

include $(include_dir)/kernel.mk

pkg_name:=example

pkg_release:=1

include $(include_dir)/package.mk

define kernelpackage/example

submenu:=other modules

title:=example driver

depends:=@linux_2_6

files:=$(pkg_build_dir)/*.$(linux_kmod_suffix)

kconfig:=

endef

define kernelpackage/example/description

kernel module to example

endef

extra_kconfig:= \

config_example=m

extra_cflags:= \

$(patsubst config_%, -dconfig_%=1, $(patsubst %=m,%,$(filter %=m,$(extra_kconfig)))) \

$(patsubst config_%, -dconfig_%=1, $(patsubst %=y,%,$(filter %=y,$(extra_kconfig)))) \

make_opts:= \

arch="$(linux_karch)" \

cross_compile="$(target_cross)" \

subdirs="$(pkg_build_dir)" \

extra_cflags="$(extra_cflags)" \

$(extra_kconfig)

define build/prepare

mkdir -p $(pkg_build_dir)

$(cp) ./src/* $(pkg_build_dir)/

endef

define build/compile

$(make) -c "$(linux_dir)" \

$(make_opts) \

modules

endef

$(eval $(call kernelpackage,example))

3.進入src目錄,建立**路徑和相關原始檔

cd src

touch example.c kconfig makefile

example.c具體內容如下:

#include #include #include /* hello_init ---- 初始化函式,當模組裝載時被呼叫,如果成功裝載返回0 否則返回非0值 */

static int __init hello_init(void)

/* hello_exit ---- 退出函式,當模組解除安裝時被呼叫 */

static void __exit hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

module_license("gpl");

module_author("zhangjiefeng");

kconfig具體內容如下:

config example

tristate "just a example"

help

this is a example, for debugging kernel model.

if unsure, say n.

makefile具體內如如下:

obj-$(config_example) 	+= example.o
回到主路徑 backfire/,編譯選項配置儲存並編譯

make menuconfig

kernel modules --->

other modules --->

kmod-example

選項設定為m,儲存退出

然後編譯該模組:

make package/example/compile

5.編譯出的檔案可以在主路徑的以下路徑找到

./staging_dir/target-mips_r2_uclibc-0.9.30.1/root-lantiq/lib/modules/2.6.32.33/example.ko

./build_dir/linux-lantiq_ar9/example/ipkg-lantiq/kmod-example/lib/modules/2.6.32.33/example.ko

./build_dir/linux-lantiq_ar9/example/example.ko

./build_dir/target-mips_r2_uclibc-0.9.30.1/openwrt-sdk-lantiq-for-linux-x86_64-gcc-4.3.3+cs_uclibc-0.9.30.1/staging_dir/target-mips_r2_uclibc-0.9.30.1/root-lantiq/lib/modules/2.6.32.33/example.ko

./build_dir/target-mips_r2_uclibc-0.9.30.1/root-lantiq/lib/modules/2.6.32.33/example.ko

注:我們使用./build_dir/linux-lantiq_ar9/example/example.ko

OpenWRT 增加核心模組及應用方法

進入package目錄,建立模組目錄 cd mcp branches v1.1 beta1 mcp package mkdir example 進入example目錄,建立makefile檔案和 路徑 cd example touch makefile mkdir src makefile具體內容如...

為 OPENWRT 編譯額外的核心模組

舉個例子,如果想在路由器上跑 openwrt 並未包含的 rtl8188eu 驅動模組該怎麼辦呢?在這裡給出一種快捷但是比較 dirty 的辦法 否則應該自己寫個 package 首先得有編譯韌體時留下的 kernel 的原始碼,包括編譯過程中生成的一些檔案。下面假定 openwrt 的原始碼目錄在...

增加驅動模組到核心樹

現在要把下面的驅動模組新增到核心樹中 module param.ko num.c include include include include static int num 0 static char string this is a test static int array 3 static ...