`

CentOS 内核裁剪

 
阅读更多

1.下载系统对应内核版本

https://www.kernel.org/pub/linux/kernel/

 

2.将本机内核配置文件拷贝至新下载的内核包中

# tar -zxvf linux-2.6.32.tar.gz

# cd linux-2.6.32

# cp /boot/config-2.6.32-279.el6.x86_64 .config

 

3.使用make menuconfig进行内核裁剪(此处实例为去掉USB模组)

# make menuconfig

 

选择Device Drivers “回车”

 

选择USB support 按"空格"取消支持

 

按两下"Esc"退出一层配置(退出两次)

选择“Yes”保存配置

 

4.编译安装裁剪后的内核文件

# make

# make bzImage

# make modules

# make modules_install

# make install


若最后一步make install后出错ERROR: modinfo: could not find module *** 

查看/boot下关键文件的日期

# ls -l /boot/
total 38775
-rw-r--r--. 1 root root 101820 Jun 22 2012 config-2.6.32-279.el6.x86_64
drwxr-xr-x. 3 root root 1024 Nov 8 10:06 efi
drwxr-xr-x. 2 root root 1024 Nov 11 18:58 grub
-rw-r--r--. 1 root root 16186595 Nov 8 10:09 initramfs-2.6.32-279.el6.x86_64.img
-rw-r--r--. 1 root root 11369936 Nov 11 18:58 initramfs-2.6.32.img
drwx------. 2 root root 12288 Nov 8 09:30 lost+found
-rw-r--r--. 1 root root 179157 Jun 22 2012 symvers-2.6.32-279.el6.x86_64.gz
lrwxrwxrwx. 1 root root 23 Nov 11 18:57 System.map -> /boot/System.map-2.6.32
-rw-r--r--. 1 root root 2056341 Nov 11 18:57 System.map-2.6.32
-rw-r--r--. 1 root root 2341856 Jun 22 2012 System.map-2.6.32-279.el6.x86_64
lrwxrwxrwx. 1 root root 20 Nov 11 18:57 vmlinuz -> /boot/vmlinuz-2.6.32
-rw-r--r--. 1 root root 3451632 Nov 11 18:57 vmlinuz-2.6.32
-rwxr-xr-x. 1 root root 3986608 Jun 22 2012 vmlinuz-2.6.32-279.el6.x86_64

均为编译安装前后不久的时间即可忽略

 

5.更改启动内核

# vi /boot/grub/menu.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_kernerl-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/xvda
default=0 #此处更改为0即为默认使用title01(2.6.32)内核启动程序,更改为1即为默认使用title02(2.6.32-279.el6.x86_64)内核启动程序.
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32)
        root (hd0,0)
        kernel /vmlinuz-2.6.32 ro root=/dev/mapper/vg_kernerl-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_kernerl/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_kernerl/lv_root rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32.img
title CentOS (2.6.32-279.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_kernerl-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_kernerl/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_kernerl/lv_root rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-279.el6.x86_64.img

 

6.验证

重启前查看内核版本

# uname -a
Linux kernerl 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

 

重启后查看内核版本

# uname -a
Linux kernerl 2.6.32 #1 SMP Mon Nov 11 18:40:28 CST 2013 x86_64 x86_64 x86_64 GNU/Linux


 

  • 大小: 92.1 KB
  • 大小: 98.7 KB
  • 大小: 39.9 KB
分享到:
评论

相关推荐

    Linux内核裁剪的具体过程和方法.doc

    "Linux内核裁剪的具体过程和方法" Linux内核裁剪是指在Linux系统中,对内核进行裁剪和优化,使其更小、更快、更高效。本文将详细介绍Linux内核裁剪的具体过程和方法。 在 menuconfig 中配置时,需要详细介绍内核...

    centos-kernel-devel-3.10.0-693.el7.x86-64.zip

    2. **定制内核**:对于需要对内核进行特定优化或功能裁剪的场景,开发包提供了编译自定义内核所需的所有资源。 3. **调试内核**:开发人员可以使用内核头文件和调试工具来定位和修复内核级别的问题。 4. **开发...

    Linux内核2.6 Makefile文件

    在嵌入式系统中,由于资源限制,通常需要对内核进行裁剪和定制。因此,理解并能操作Linux内核2.6的Makefile文件对于开发者来说至关重要,它能帮助他们有效地调整内核以适应特定硬件平台的需求。 总的来说,Linux...

    嵌入式系统定制与裁剪-基于PC机的Linux操作系统的裁剪与定制(二).doc

    4. 加载内核和initrd或initramfs(CentOS6)。 5. 运行init进程,它是所有进程的父进程。 6. 显示欢迎界面,标志着系统启动成功。 **主要实现方法**: 提供的bash脚本展示了如何将宿主机上的命令、库文件复制到目标...

    研究论文-嵌入式L inux在PC104平台上的构建与实现.pdf

    在PC104平台上实现嵌入式Linux,需要进行内核裁剪、文件系统配置以及系统移植等工作。这一过程中,使用了Grub作为引导加载程序,Grub是一个先进的引导加载程序,能够支持多种操作系统,易于配置,可以简化系统引导的...

    基于ARM9的嵌入式Linux系统移植 (1).pdf

    然后,开发者会使用menuconfig工具对内核进行配置,选择需要支持的硬件特性、设备驱动和裁剪不必要的功能,以减小内核大小。编译完成后,生成的内核映像将通过Bootloader加载到目标板上。 根文件系统的制作是另一个...

    readme.md.zip

    10. **模块化设计**:Linux内核采用模块化设计,允许根据需要动态加载或卸载部分功能模块,这种灵活性使得内核可以根据具体平台和应用需求进行裁剪和定制。 在"readme.md.zip"这个压缩包中,可能包含了关于Linux...

    嵌入式LINUX教程

    在嵌入式领域,需要根据目标硬件进行内核裁剪,去除不必要的模块,以降低内存占用,提高系统性能。 3. **开发环境搭建**: 开发嵌入式Linux通常需要宿主机环境,如Ubuntu或CentOS等,通过交叉编译工具链在宿主机上...

    基于X86平台的嵌入式Linux实验平台搭建.pdf

    为了使Linux系统能适应于X86嵌入式瘦终端,作者提出通过内核裁剪和文件系统定制,使其在资源有限的环境中依然能够高效运行。具体做法是通过删除Linux内核中不必要的模块和服务,优化系统性能,同时创建和配置适合...

    Linux系统基础知识梳理

    Linux 的学习对于一个...2、支持多种文件系统 3、开源、支持重新编译,裁剪;4、运行稳定,功能强大,性能优异 Linux基础操作命令: ls命令:列举出目录下的文件和目录信息,ls经常使用的参数有三个: -a -l -F ls

    Linux qustion

    - **灵活性**:用户可以根据自己的需求定制内核,裁剪不必要的模块,提高系统的运行效率。 ### Linux 发行版 1. **什么是Linux发行版**: - Linux发行版是指基于Linux内核的操作系统版本,它们在内核的基础上...

    嵌入式Linux(开发环境搭建+应用程序开发+系统移植开发).zip

    1. 内核配置:通过menuconfig命令,开发者可以根据目标设备的硬件特性来裁剪内核,剔除不必要的模块,以优化性能和减少内存占用。 2. 根文件系统构建:根文件系统包含了启动时必需的库、配置文件、服务等,通常使用...

    国嵌Linux笔记.zip

    10. **Linux内核编译与模块开发**:对于嵌入式系统,可能会涉及Linux内核裁剪、编译,以及编写和加载内核模块的实践。 11. **设备驱动程序开发**:对于硬件相关的开发者,这部分可能会介绍Linux设备模型、驱动程序...

    教你如何快速启动Linux 系统

    - 内核裁剪:在编译内核时去除不必要的硬件驱动、文件系统和调试信息,以减小内核大小。 - 模块化内核:将非核心功能如网卡驱动、USB驱动编译为模块,待系统启动后再加载。 2. 提升内核在内存中的运行效率: - ...

    Linux rga说明文档.pdf

    搭建过程中包含了如何查看rga设备节点、如何重新编译内核并烧写新的内核映像等步骤,以及如何在内核配置中选择rga2的编译选项。 在rga设备节点的配置方面,文档提供了在设备树文件中添加rga设备节点的示例代码,...

    详细具体的讲解了linux系统的各种知识,是嵌入式入门的不二之选

    开发者通常会构建自己的Linux发行版,定制内核,裁剪不必要的组件,以适应特定硬件平台的需求。 十一、ARM架构 ARM(Advanced RISC Machines)是广泛应用于嵌入式系统的处理器架构,以其低功耗、高性能著称。Linux...

    RTL8188FU的linux驱动,可以重新编译

    同时,可能还需要内核头文件,可以通过`apt-get install build-essential kernel-package`(Debian/Ubuntu)或`yum install kernel-devel`(Fedora/CentOS)来安装。 2. **解压源码**:将压缩包`RTL8188FU_Linux_v...

    电子-linux一句话精彩问答.pdf

    2. Linux内核编译与定制:了解如何配置Linux内核,编译内核模块,以及如何根据需要裁剪内核功能,优化系统性能。 3. 驱动开发:对于STM32这类微控制器,在Linux系统下可能需要开发特定的硬件驱动程序,以便操作系统...

    2024嵌入式面试资料Linux基础使用

    此外,由于Linux内核的可裁剪性,可以根据具体应用场景的需求调整内核大小和功能,从而满足不同嵌入式设备对性能和资源的不同需求。 ### Linux基础命令 了解并掌握基本的Linux命令对于嵌入式工程师来说至关重要。...

Global site tag (gtag.js) - Google Analytics