如何提取linux kernel的配置文件

如何提取linux kernel的配置文件,第1张

如果你是一个喜欢编译内核的狂人,同时也是经常忘记将默认的.config文件备份的懒家伙,那么下面的方法将会使你

的内核配置工作变得更轻松,从linux 2.6开始内核提供了一种将.config附加到映像文件的方法,通过这种方法,内核

配置者可以不必备份当前的.config文件,而是在需要的时候直接从内核映像中提取.config文件。步骤如下:

1. 配置内核

1.1 make menuconfig;

1.2 选择如下:

General setup --->

<*>Kernel .config support

[*] Enable access to .config through /proc/config.gz

1.3 make uImage

2. 提取配置文件

2.1 方法一,从uImage文件中提取:

2.1.1 打开控制台,cd进入到linux源码树根目录,我的为:/root/Desktop/easy2440/linux-2.6.30.9-easy2440

2.1.2 输入如下命令:scripts/extract-ikconfig arch/arm/boot/uImage >config

2.1.3 命令执行完后,将会在linux源码树根目录下面生成config文件;

2.1.4 config文件即为我们需要的内核配置文件,可以将其替代.config文件。

2.2 方法二,从开发板的/proc/config.gz中提取:

2.2.1 将新生成的uImage文件下载到开发板;

2.2.2 准备串口控制台,启动开发板;

2.2.3 开发板正常启动后,在控制台输入命令:cat /proc/config.gz | gzip -d >/home/config

2.2.4 命令执行完后,将会在/home目录下生成config文件

2.2.5 config文件即为我们需要的内核配置文件,可以将其替代.config文件。

内核配置注意事项

如果打算自己编译内核的话(内核源代码可以到ftp://ftp.kernel.org/pub/kernel/ 下载,国内下载可以到ftp://ftp.cn.kernel.org/pub/kernel/ 这样下载速度更快),在编译之前一般都要先用make menuconfig或make xconfig配置内核。我的系统中没有xconfig,所以只能用menuconfig。在我的Compaq Presario V3414TX laptop上编译2.6.23.x内核时,以下选项是必须要注意的:

1、Networking -->

Wireless LAN -->

[M]Generic IEEE 802.11 Networking Stack (mac80211)

这是Linux当前使用的网络栈模块。如果想要使用无线网卡(我的是Intel PRO/3945 ABG),就要将此选项编为模块(或者编入内核也可以,那样启动时就会自动加载mac80211模块)。否则到时候就要自己去intellinuxwireless.org下载该模块进行安装。

2、Device Drivers -->

Network Drivers -->

Wireless LAN-->

[M]Intel PRO/Wireless 3945ABG Network Connection

Intel PRO/Wireless 3945ABG Network Connection这一项可以换成你的任何无线网卡。同样,如果你想使用无线网卡的话,这一项也是要编为模块的。但是我最后编译的2.6.23.14内核中没有这一项,因此就必须到intellinuxwireless.org下载3495ABG的驱动了。

3、File System -->

DOS/FAT/NT Filesystems -->

<*>VFAT (Windows-95) fs support

(437) Default codepage for FAT (NEW)

(utf8) Default iocharset for FAT (NEW)

将 VFAT (Windows-95) fs support 选为y是为了让内核能支持FAT格式硬盘的挂载。这里codepage要用437;在网上很多文章都说要用936,这样才能让FAT硬盘的文件名显示支持中文,但事实上我这么做之后,在挂载FAT分区时却被新内核提示无法挂载,系统日志显示找不到codepage 936——可是我已经将codepage 936编进内核了啊(下文会说明),因此在这一点上我相当困惑。后来发现FAT分区的中文文件名能否正确显示是取决于 Default iocharset for FAT 这一项,其字符编码要使用utf8才行。原因上,也许是因为Windows的FAT分区默认的字符编码是ascii或gb2312,而Linux默认的是utf8编码,认不得gb2312……这个地方我也不太明白。

4、File System -->

Native Language Support -->

[M]Simplified Chinese charset (CP936, GB2312)

想要中文支持的话,当然要选上这一项(事实上Native Language Support 这一栏我就没动,默认是全部选上的,其中ASCII一项默认被编进内核)。

5、Kernel hacking -->

[ ]Use 4Kb for kernel stacks instead of 8Kb

如果想要使用ndiswrapper作为无线网卡驱动的话,这一项就要选为n。因为据说Windows和Linux的栈结构是不一样的。

config。将光标移动到配置界面末尾,选中“SaveanAlternateConfigurationFile”后。回车,保存当前内核配置,默认配置文件名为config,0.2所示。内核(Kernel),又称核心,是 *** 作系统最基本的部分,主要负责管理系统资源。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11863917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存