xz -d linux-4.0.1.tar.xz
3、复制到指定文件夹/usr/src
cp /mnt/hgfs/share/ linux-4.0.1.tar /usr/src
4、进入/usr/src解压tar包
tar -xvf linux-4.0.1.tar
#make menuconfig //基于ncurse库编制的图形工具界面
#make config //基于文本命令行工具,不推荐使用
#make xconfig //基于X11图形工具界面
#make gconfig //基于gtk+的图形工具界面
<*>或[*]------将该功能编译进内核
[]----------------不将该功能编译进内核
[M]--------------将该功能编译成可以在需要时动态插入到内核中的代码
save之后会生成一个 .config 文件,这个文件才是真正的编译内核配置文件
生成内核模块和vmlinuz,initrd.img,Symtem.map文件
注意:#make相当于分别执行#make bzImage 和#make modules,由于是本机替换内核,所以无需分开执行。
vmlinuz的建立有两种方式:
一是编译内核时通过“make zImage”创建,zImage适用于小内核的情况,它的存在是为了向后的兼容性;
二是内核编译时通过命令make bzImage创建,bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”,bzImage中的b是“big”意思。 zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码,所以你不能用gunzip 或 gzip –dc解包vmlinuz。内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage 或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。
具体操作如下:
(1)将生成的linux-4.0.1/.config 拷贝到要替换内核系统的/boot下,并重命名为config-4.0.1
(2)将生成的linux-4.0.1/arch/x86-64/boot/bzImage 拷贝到要替换内核系统的/boot下,并重命名为vmlinuz-4.0.1(注:这里需特别注意拷贝后的文件名变为vmlinuz-x.x.x)。
(3)将生成的linux-4.0.1/System.map 拷贝到要替换内核系统的/boot下,并重命名为System.map-4.0.1
(4)将make modules_install生成的系统目录/lib/modules/linux-4.0.1拷贝到要替换内核系统的/lib/modules下。
(5)在要替换新内核的系统的/lib/modules目录下执行以下命令:
#update-initramfs -c -k 4.0.1,生成/boot/initrd.img-4.0.1
#make menuconfig //基于ncurse库编制的图形工具界面
#make config //基于文本命令行工具,不推荐使用
#make xconfig //基于X11(qt)图形工具界面
#make gconfig //基于gtk+的图形工具界面
------------------------这些都是 创建.config这个内核的配置文件,但用make menuconfig是利用新内核所固有的默认配置基础上所进行的调整,如果说要在原来系统内核的基础上进行修改的话,那么就需要用到make oldconfig这个命令 再了解一下make menuconfig与make oldconfig的区别,他们都是针对.config这个文件来讲的。
(1). 如果.config不存在,运行make menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。
(2). 如果.config存在,运行make menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新。
(3). arch/arm/defconfig是一个缺省的配置文件,make defconfig时会根据这个文件生成当前的.config。
(4). arch/arm/configs文件夹中有许多命名为xxx_defconfig的配置文件,如果运行make xxx_defconfig,当前.config文件会由xxx_defconfig文件生成。
(5). make oldconfig的作用是备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config。
(6).如果是不同的内核版本配置,则cp /boot/config-2.6.32-131.0.15.el6.x86_64 .config不会被make menuconfig所读入。
所以说,根据上面的内容,可以得出这样一个结论。为了使用新的内核功能,当然是用make menuconfig根据新内核默认的配置。如果说,你是在原来内核基础上,增加内核的某个功能的话,就可以用make oldconfig来进行局部的配置了。
其和上面三个:make config,make menuconfig,make xconfig,不是一伙的。
其不是另外一种配置的方式。
而是(直接去)使用某个默认的配置,即和配置内容相关。
和使用何种配置方式(命令行,还是图形界面等等)无关。
目的在于:尽量使用之前的配置(去用都当前的,新的,后者是别的内核或某软件的配置),以达到节省时间的目的
make oldconfig的用法:
4. cd <some-dir>/buildroot
5. cp configs/i486-defconfig-4.3.3 .config
6. make oldconfig
7. make |
很明显,其逻辑就是: