浅析如何添加自己的ko到make menuconfig中
其实向make menuconfig添加自己的选项,仅仅是为了向driver传递由用户自己决定的几个不同的宏值.
1.
luther@gliethttp:/vobs/works/lnx2625pxa/drivers/net/wireless$ mkdir bcmxxx
2.
luther@gliethttp:/vobs/works/lnx2625pxa/drivers/net/wireless$ vim Kconfig
追加如下内容:
config BCMXXX
tristate "BCMXXX WLAN driver support"
depends on WLAN_80211
select WIRELESS_EXT
select FW_LOADER
---help---
A driver for Broadcom xxx devices.
source "drivers/net/wireless/bcmxxx/Kconfig" //如果加入的bcmxxx模块有很多宏需要控制,那么加入该选项,进行进一步细致 控制,否则可以去掉
3.向/vobs/works/lnx2625pxa/.config添加,我们的BCMXXX编译时的缺省值.
因为我们的.config是由/vobs/works/lnx2625pxa/setup.sh PRODUCT=xxx产品名称 root=ramdisk来自动生成的,所以应该修改
/vobs/works/lnx2625pxa/arch/arm/configs/xxx产品名称_defconfig中的数值才行.
CONFIG_MRVL8688=m //默认为module
CONFIG_BCMXXX=m //默认为module
4.
luther@gliethttp:/vobs/works/lnx2625pxa$ make menuconfig
这样在
Device Drivers==>Network device support==>Wireless LAN==>就会有加入的
<M> BCMXXX WLAN driver support //这个选项了
对它的修改将直接影响到CONFIG_MRVL8688变量.
5.让他能够被make到
向上级可执行目录追加编译选项
drivers/net/wireless/Makefile|51| obj-$(CONFIG_MRVL8688) += mrvl8688/
luther@gliethttp:/vobs/works/lnx2625pxa/drivers/net/wireless$ vim Makefile
obj-$(CONFIG_BCMXXX) += bcmxxx/ //表示当执行make zImage或者make时,需要执行bcmxxx目录下的Makefile文件
但是因为bcmxxx在pc上的编译比较特殊,需要到bcmsdio/linux目录下执行,
luther@gliethttp:/vobs/works/broadcom/src/bcmsdio/linux$ make -j4
所以上面的地址也应该改为
obj-$(CONFIG_BCMXXX) += bcmxxx/bcmsdio/linux
luther@gliethttp:/vobs/works/broadcom/src/bcmsdio/linux$ vim Makefile
加入如下行
LINUXDIR := $(KBUILD_SRC) //内核/vobs/works/lnx2625pxa/Makefile导出export变量
obj-$(CONFIG_) += sd8688.o
6.将需要加入的bcmxxx驱动放到/vobs/works/lnx2625pxa/drivers/net/wireless/bcmxxx/目录下
然后编写Makefile,好了工作完成了
7.编译了
luther@gliethttp:/vobs/works/lnx2625pxa$ make -j4
====================================================================
在sd8688中作如下修改:
drivers/net/wireless/mrvl8688/Makefile|128| obj-$(CONFIG_MRVL8688) += sd8688.o
drivers/net/wireless/Makefile|51| obj-$(CONFIG_MRVL8688) += mrvl8688/
drivers/net/wireless/mrvl8688/Kconfig|2| bool "Marvell 8688 debugging"
drivers/net/wireless/mrvl8688/Kconfig|5| Marvell 8688 debugging messages. Choosing Y will result in additional debug
drivers/net/wireless/mrvl8688/Kconfig|10| prompt "Marvell 8688 debugging level"
drivers/net/wireless/mrvl8688/Kconfig|15| bool "Marvell 8688 debugging level 1"
drivers/net/wireless/mrvl8688/Kconfig|18| Marvell 8688 debugging level 1, only PRINTM(MSG,...), PRINTM(FATAL,...).
drivers/net/wireless/mrvl8688/Kconfig|21| bool "Marvell 8688 debugging level 2"
drivers/net/wireless/mrvl8688/Kconfig|24| Marvell 8688 debugging level 2, all PRINTM().
drivers/net/wireless/mrvl8688/Kconfig|28| bool "Marvell 8688 proc debug"
drivers/net/wireless/mrvl8688/Kconfig|31| Marvell 8688 proc debug messages. proc in /proc/net/wlan.
drivers/net/wireless/mrvl8688/Kconfig|34| bool "Marvell 8688 reassociation"
drivers/net/wireless/mrvl8688/Kconfig|37| Marvell 8688 re-association.
drivers/net/wireless/mrvl8688/Kconfig|40| bool "Marvell 8688 manufacturing firmware support"
drivers/net/wireless/mrvl8688/Kconfig|43| Marvell 8688 manufacturing firmware support.
drivers/net/wireless/mrvl8688/Kconfig|46| bool "Marvell 8688 big endian"
drivers/net/wireless/mrvl8688/Kconfig|49| Marvell 8688 big-endian platform.
drivers/net/wireless/mrvl8688/Kconfig|52| bool "Marvell 8688 DMA align"
drivers/net/wireless/mrvl8688/Kconfig|55| Marvell 8688 dma align.
drivers/net/wireless/Kconfig|265| tristate "Marvell 8688 WLAN driver support"
drivers/net/wireless/Kconfig|270| A driver for Marvell 8688 devices.
在drivers/net/wireless/Kconfig中
config MRVL8688 //对应CONFIG_MRVL8688变量,可以在.config中定义默认值
tristate "Marvell 8688 WLAN driver support"
depends on WLAN_80211
select WIRELESS_EXT
select FW_LOADER
---help---
A driver for Marvell 8688 devices.
source "drivers/net/wireless/mrvl8688/Kconfig" 表示调入相应Kconfig,放到下面
config MRVL8688_DEBUG //对应CONFIG_MRVL8688_DEBUG变量,可以在.config中定义默认值
bool "Marvell 8688 debugging"
depends on MRVL8688
---help---
Marvell 8688 debugging messages. Choosing Y will result in additional debug
messages being saved to your kernel logs, which may help debug any
problems.
choice //choice表示若干选一,项目之间互斥,有你没他
prompt "Marvell 8688 debugging level"
depends on MRVL8688_DEBUG
default MRVL8688_DEBUG_LEVEL1
config MRVL8688_DEBUG_LEVEL1
bool "Marvell 8688 debugging level 1"
depends on MRVL8688_DEBUG
---help---
Marvell 8688 debugging level 1, only PRINTM(MSG,...), PRINTM(FATAL,...).
config MRVL8688_DEBUG_LEVEL2
bool "Marvell 8688 debugging level 2"
depends on MRVL8688_DEBUG
---help---
Marvell 8688 debugging level 2, all PRINTM().
endchoice
分享到:
相关推荐
自己整理的openwrt编译make menuconfig配置 使用说明: make menuconfig直接按照表格一选择即可,选项按颜色设定 白色字体项可以不选,为附加功能,按需选择 黑色字体项在配置里部分项默认选中,带标注的按需...
在linux系统上编译各种资源时均需要进行配置,而对make menuconfig的具体过程了解清楚有助于知识系统的学习
2.6内核编译配置选项简介--介绍make_menuconfig中的每个选项含义.
把buildroot里的make menuconfig那部分ncurses抠出来,自己 使用make menuconfig配置自己的工程,可以用来玩玩
make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h CC arch/arm/kernel/asm-offsets.s cc1: error: invalid option `abi=aapcs-linux' make[1]: *** [arch/arm/kernel/asm-...
linux内核配置make-menuconfig菜单详解.doc
uclinux2.4移植到s3c44b0上时make menuconfig的配置选项,此选项在第一次make menuconfig时生成,有默认的一些选项。已经做了符合目标板的修改,问题不大了。特此上传
Openwrt学习笔记-通用固件-make-menuconfig配置,Openwrt学习笔记-通用固件
linux menuconig de 详细配置。。
使用到make menuconfig配置工具的时候会依赖这个包,安装的时候选项记得写./configure --enable-mconf
uclinux make menuconfig 的使用--trace 输出的原始数据,
linux内核配置makemenuconfig菜单详解.pdf
PIC驱动裁剪内核时如何配置make menuconfig的问题
这是一个关于linux2.4内核配置的文档 make menuconfig
linux内核添加新驱动实例,并提供menuconfig
linux内核配置make_menuconfig菜单详解.docx
kvm安装文档 erver01> tar xvf linux-2.6.38.tar.bz2 server01> cd linux-2.6.38 ...server01> make menuconfig #此处将kvm相关选项选中,具体如图所示;此外,将SYSFS_DEPRECATED_V2选中,不然容易报错
kernel也是九鼎的,不过他的Makefile和Kconfig中的名字对不上,记得修改,然后在make menuconfig中添加buzzer驱动,记得开启nfs 通过nfs挂载根文件系统 在linux下通过交叉编译工具链编译这个文件,复制到根文件系统...
openwrt config简答介绍