当前位置:首页 » 编程软件 » 编译内核引用config

编译内核引用config

发布时间: 2022-05-15 20:00:08

A. 请问在编译linux kernel时,能否自动生成.config 文件,在编译andriod源码时好像可以!!

编译 andrioid 时当然可以,那个配置文件是 android 准备好的,可以直接在他的模拟器里面运行自然 android 知道需要什么配置文件。

如果你自己编译,那么除了你还有谁知道需要什么配置文件?除了你谁谁还知道你有什么设置的需求。

Linux 内核自带了很多默认配置文件,你可以 make help 看看。

B. 怎样将驱动静态的编译到内核中

怎样将驱动静态的编译到内核中
分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。 上面的内容说明:Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动,假如想使这个驱动被编译,还要修改该驱动所在目录下的Makefile。因此,一般添加新的驱动时需要修改的文件有两种(注意不只是两个)*Kconfig
config symboloptions

symbol就是新的菜单项,options是在这个新的菜单项下的属性和选项其中options部分有:1、类型定义:
每个config菜单项都要有类型定义,bool:布尔类型, tristate三态:内建、模块、移除, string:字符串, hex:十六进制, integer:整型例如config HELLO_MODULE
bool "hello test mole" bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的选项,假如选择编译成内核模块,则会在.config中生成一个CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.2、依赖型定义depends on或requires
指此菜单的出现是否依赖于另一个定义config HELLO_MODULE
bool "hello test mole"
depends on ARCH_PXA
这个例子表明HELLO_MODULE这个菜单项只对XScale处理器有效,即只有在选择了ARCH_PXA,该菜单才可见(可配置)。3、帮助性定义
只是增加帮助用关键字help或---help---

更多详细的Kconfigconfig语法可参考: Second: 内核的Makefile内核的Makefile分为5个组成部分:
Makefile 最顶层的Makefile
.config 内核的当前配置文档,编译时成为顶层Makefile的一部分
arch/$(ARCH)/Makefile 和体系结构相关的Makefile
s/ Makefile.* 一些Makefile的通用规则
kbuild Makefile 各级目录下的大概约500个文档,编译时根据上层Makefile传下来的宏定义和其他编译规则,将源代码编译成模块或编入内核。顶层的Makefile文档读取 .config文档的内容,并总体上负责build内核和模块。Arch Makefile则提供补充体系结构相关的信息。 s目录下的Makefile文档包含了任何用来根据kbuild Makefile 构建内核所需的定义和规则。(其中.config的内容是在make menuconfig的时候,通过Kconfig文档配置的结果) 在linux2.6.x/Documentation/kbuild目录下有详细的介绍有关kernel makefile的知识。最后举个例子:
config MTD_flashtest
tristate “ap71 flash"这样当make menuconfig时 ,将会出现 ap71 flash选项。第三:修改该目录下makefile文档。
添加如下内容:obj-$(CONFIG_MTD_flashtest) += flashtest.o这样,当您运行make menucofnig时,您将发现ap71 flash选项,假如您选择了此项。该选择就会保存在.config文档中。当您编译内核时,将会读取.config文档,当发现ap71 flash 选项为yes 时,系统在调用/driver/mtd/maps/下的makefile 时,将会把 flashtest.o 加入到内核中。即可达到您的目的。

C. 怎样使用新编译的内核进行启动

step 1

准备:(1). 所需的内核源码

step2:

  • 切换到源码所在的目录,make distclean 命令:删除生产的.o 和 .config 文件

  • 编译内核之前需要一份配置文件,并在此基础上修改,故借用本地/boot/config-3.13.0-24-generic配置文件,命令: cp /boot/config-3.13.0-24-generic /home/yangqi/code/linux/linux-4.2.3/.config

  • 该配置文件.config 即是对内核裁剪的配置,不用直接打开修改,系统提供menu界面修改,命令:make menuconfig (如果此命令报错,说明需要装ncurses库,安装命令:sudo apt-get install libncurses5-dev) (menu目录如下:)

D. 求助,内核编译时怎样添加自己的CONFIG项

当然需要。。。

第一点,就是源码树中有相应的头文件和函数的实现,没有源码树,你哪调用去呢?(PC上编译的时候内核有导出符号,系统中有头文件,这样就可以引用内核给你的接口了,但是只能编译你PC上版本的内核可加载的模块)。

第二个,内核模块中会记录版本号的部分,需要记录版本号的原因是不同的内核版本之间,那些接口和调用可能会有比较大的差异,因此必须要保证你的代码和某个特定的内核对应,这样编译出来的模块就可以(也是只能)在运行这个内核版本的Linux系统中加载,否则一个很简单的异常就会导致内核崩溃,或者你的代码根本无法编译通过(接口名变了)。

我上面说的是编译模块的情况,当然如果是把模块直接编译到内核当中去的话,那就不用说了,没有内核源码,你无法编译内核。

E. 编译linux内核的时候,我在.config文件中修改了配置选项,然后执行make,为什么它又给我改回去了

用 make menuconfig
用make -x 可跟踪执行指令就能找到原因

F. linux 内核源码包 .config 什么用处

内核配置参数都保存在这里,默认情况下该配置文件中的配置很保守。我们在执行make xconfig或者make menuconfig之后,退出时会提示我们保存,修改过之后的配置就保存在这个.config文件里了。
一般做的话建议复制/boot目录下的配置文件覆盖这个.config,这样就可以在原系统内核配置的基础上进行修改了。例如:
cp /boot/config-2.6.18-8.el5 .config

G. 编译linux内核时关于.config文件的问题

你要先调用config再去编译啊:
make menuconfig后
选择 “Load an Alternate Configuration File”
输入刚刚你的内核配置文件名
选择 “Save an Alternate Configuration File”
输入 “.config”
保存退出
然后在进行编译即可。

H. Linux内核配置与编译相关流程

linux内核配置与编译相关流程1、清除临时文件、中间文件和配置文件
make
clean
不删除配置文件。
make
mrproper
make
distclean
删除编辑的backup文件、补丁文件等2、确定目标系统的软硬件配置情况,比如CPU的类型,网卡的型号,所需要支持的网络协议。3、使用命令配置内核
make
config
基于文本模式的交互配置。
make
menuconfig
基于文本模式的菜单配置。
make
oldconfig
使用已有的配置文件(.config),但是会询问新增的配置选项。
make
xconfig
图形化的配置(需要安装图形化系统)。4、编译内核
make
zImage
make
bzImage
区别:在X86平台上,zImage只能用于小雨512k内核。如果需要获取详细编译信息,则在后面加上V=1.
编译好的内核位于arch/<cpu>/boot/目录下。
5、编译内核模块
make
moes
6、安装内核模块
make
moes_install
将编译好的内核模块从内核源代码目录到/lib/moes下。7、制作
init
ramdisk
mkinitrd
$initrd-$version
-$version内核安装(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf

/etc/lilo.conf$version为所编译的内核版本号。

I. Android内核编译时如何获得.config文件

得到config之后,直接复制到你下载来的内核文件夹kernel下,更名为.config,打开终端,进入此目录(假设你放在里你的home下,即~/kernel)运行make ARCH=arm menuconfig(ARCH=arm表示编译的是arm平台的)

J. 内核中打开CONFIG_MTD_DEBUG

这是非常重要的选项,选中它则打开内核内存分配函数中的多个类型的检查;
打开该检查后,就可以检测许多内存溢出及忘记初始化的错误,在将已分配内存返回给调用者之前,内核会把其中的每个字节设置为0Xa5,而在释放后将其设置为0X6b。
如果内核开发者在自己的程序输出中或者oops信息中看到上述字符“毒剂”字符,则可以轻松判断出问题所在。
在打开该调试选项后,内核还会在每个已分配内存对象的前面或者后面放置一些特殊的防护值,这样,当这些防护值发生变化时,内核就可以知道有些代码超出了内存的正常访问范围,并提升。
除此之外,还可以检查更多的隐蔽错误。

热点内容
配置业务分类时主要考虑哪些原因 发布:2024-05-07 05:12:40 浏览:184
外网如何访问内网ip 发布:2024-05-07 05:12:30 浏览:814
网易版有拔刀剑的服务器叫什么 发布:2024-05-07 04:56:35 浏览:751
中国好源码 发布:2024-05-07 04:56:29 浏览:872
小兵的服务器是什么 发布:2024-05-07 04:55:46 浏览:186
网易我的世界四月服务器维护 发布:2024-05-07 04:24:58 浏览:214
gdb调试文件夹 发布:2024-05-07 04:03:25 浏览:155
玩5款大型游戏需要什么配置 发布:2024-05-07 03:59:09 浏览:91
什么安卓游戏画面炫酷 发布:2024-05-07 03:58:18 浏览:74
无锡五洋赛德压缩机有限公司 发布:2024-05-07 03:28:05 浏览:152