Linux之内核编译基础概念

内核组成部分

1、Kernel 2、Kernel Object 3、ramdisk

查看kernel版本

uname

管理kernel object工具

lsmod modinfo modprobe insmod rmmod depmod

与ramdisk相关的工具

mkinitrd dracut

启动流程

POST->boot sequence->bootloader->加载kernel->只读方式挂载root->init->运行系统初始化脚本->默认运行级别->开启或者关闭指定服务->启动终端

升级内核

升级内核可以通过RPM包的方式。那RPM包从哪里来?自己编译或者从网上获取。  这个结论待定!!!!!!!!!!!!!

编译内核的前提

1、准备好开发环境(开发工具,服务器平台开发)

2、获取目标主机硬件设备的相关信息

3、获取目标主机功能的相关信息,比如文件系统(有些不需要的文件系统可以在编译的时候不选择)

4、获取内核源代码包:www.kernel.org  https://mirrors.edge.kernel.org/pub/linux/

第一步:准备开发环境(可以通过yum grouplist/groupinstall 查看/安装)

有个*ncurses* 类包需要安装,这个可以在操作的过程中可能有提示。

第二步(可选) 获取目标主机硬件设备信息

CPU:

PCI设备

USB设备

硬盘信息

还可以通过hal-device程序去了解硬件信息

第三步 下载对应设备增量版本

https://mirrors.edge.kernel.org/pub/linux/

来看看linux-3.10.1的内容

第四步执行内核编译

执行这个操作是为了操作的统一性。以后都是操作Linux目录即可。

需要生成内核编译软件的配置文件

make menuconfig

执行menuconfig需要ncurses-delvel程序,现在就需要安装ncurses,过程就忽略了,通过yum安装

注意:menuconfig必须在linux目录里执行

这个就是make menuconfig界面。注意:配置内核编译参数的方式有很多,menuconfig是一种方式。

调整完meneconfig的图形界面后会生成一个.config的文件

执行make -j 4 执行内核编译工作,操作目录还是linux里面

再执行make modules_install 安装内核模块

最后执行make install 安装内核核心文件

重启系统验证下内核安装结果

哎~~~ 最后没有引导成功,应该是系统BUG问题,我在CentOS6上是做成功的。

原文地址:http://blog.51cto.com/yueyue207/2128679

时间: 2024-10-10 05:39:59

Linux之内核编译基础概念的相关文章

自制linux和内核编译

自制linux和内核编译 1.分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2.挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3.安装grub grub-install --root-directory=/mnt  /dev/sdb 4.建立grub.conf: vim /mnt/boot/gr

【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6.src.rpm 下载地址:http://vault.centos.org/6.2/os/Source/SPackages/ 官网:http://vault.centos.org/ 1.4 从kernel-2.6.32-220.el6.src.rpm获取源码 1. rpm -i kernel-2.6

Linux 跨内核编译驱动

在UBuntu12.04 内核版本3.2.0-29-generic-pae,编译UBuntu14.04内核版本为3.13.0-32-generic的驱动.首先要搭建编译环境. 1.安装相应的内核文件: apt-get install kernel-headers-`uname -r` uname -r : 需要替换为3.13.0-32-generic2 .编译驱动文件 make -C /usr/src/linux-headers-3.13.0-32-generic/ M=`pwd` clean

谢烟客---------Linux之内核编译及LFS制作

内核组成.内核优化.内核编译步骤:开发环境.硬件信息.展开到源码树.内存特性设定.编译 屏幕:在一个终端上,为多个进程,开启多个使用接口. 何谓交叉编译:目标代码非当前平台 有10天没有学习了,去做了LFS,当然得感谢我"瑞哥",学习Linux的导师,www.mykernel.cn , 要不是他告诉我说,选对发行版本和LFS手册很关键,否则很难一次成功的. 前3天就是不懂,好不容易编译到gcc,呀!失败了,..... 心得:体验就够了,没有必要花时间在LFS制作之上,完全浪费时间. 1

Linux tmpfs 文件系统(基础概念)

个人博客首页(点击查看 详情) -- https://blog.51cto.com/11495268个人微信公众号(点击查看详情) -- https://blog.51cto.com/11495268/2401194     1.简介    ceph bluestore 挂载的 就是 tmpfs 文件系统,所以 学习 下 tmpfs 文件系统:本文 描述 tmpfs 文件系统 基础概念  2.tmpfs 基础知识2.1 tmpfs 介绍    tmpfs(temporary filesystem

linux kernel 内核编译

题记:今天装docker,提示我最好用3.10以上的内核 一.环境 1.1 系统环境 [[email protected] kernels]# lsb lsblk        lsb_release   [[email protected] kernels]# lsb_release -a LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graph

谢烟客---------Linux之进程管理基础概念

调用.调用接口.库调用 线性内存地址空间.物理内存地址空间.线性地址.物理地址 交换内存:缺页异常 进程内存结构 常驻内存集.虚拟内存集 进程.进程元数据.结构体.任务结构体.链表 进程类型.状态(read,runing,sleep,stopped,zombie) 可中断睡眠.不可中断睡眠 创建子进程的过程  进程优先级.进程调度.进程队列 过期队列:抢占式多任务.系统调用IO IO模型.系统调用IO等待过程 进程间通信:IPC 硬件 编程接口: syscall(系统调用) libcall(库调

Embeded linux之内核编译错误警告汇总

错误A: WARNING: drivers/spi/hi_spi.o(.data+0x0): Section mismatch in reference from the variable hi_spi_platform_driver to the function .init.text:hi_spi_probe()The variable hi_spi_platform_driver referencesthe function __init hi_spi_probe()If the refe

Linux 集群之基础概念

大纲