Linux内核编译以及内核引导启动

Linux源码编译的步骤,其实很简单,主要是在配置哪些模块的功能开启方面需要熟悉下,下面来看看,编译Linux内核需要有哪些步骤:

1、需要去Linux官网上去下载一个内核版本的源码,

https://www.kernel.org/

实例使用的是如下版本:

linux-2.6.32.65.tar.xz

2、需要解压下载下来的压缩包,解压出来后会出现如下文件夹

xz  linux-2.6.32.65.tar.xz

tar xvf linux-2.6.32.65.tar

linux-2.6.32.65

3、进入到linux-2.6.32.65文件目录中。运行如下命令:

make  menuconfig

注:此命令是用来配置需要编译的功能项,linux内核提供了很多种配置的命令,本文只讲述使用图形界面来配置功能项的命令

运行命令后会出现图形化的配置界面,按照提示,配置自己需要的功能项即可

4、使用如下命令编译内核

make -j2  > /dev/null

注:-j2  ->  此选项是表示在编译的过程中,衍生出2个作业同时进行(当cpu在做耗时操作时,可以保证充分利用多核处理器的性能)16核处理器   可以衍生出32个作业同时进行,即-j32

> /dev/null  -> 此选项是用来处理编译过程中的编译信息。如此配置的意思是将编译过程中的无用的信息重定向到无返回值的黑洞,错误信息会输出到控制台

以上几步结束,linux内核的编译也就结束了

下面是生成引导镜像的操作:

5、使用make modules_install 命令,既可在/boot/目录下生成如下引导文件:

initramfs-2.6.32.65.img

vmlinuz-2.6.32.65

System.map-2.6.32.65  -> 内存地址与函数的映射关系

6、修改Linux的引导文件 /etc/grub.conf

仿照模板修改。

注:解释下grup.conf文件中的选项的意思

default=X为默认启动的系统,0为排在第一个的系统,以此类推。

  timeout=X为Grub菜单停留的时间,单位为秒

  title XXX,XXX为标题,也就是你要引导的操作系统的名字,可以自己修改

 

     root(hdX,Y)X和Y都代表一个数值,X是linux的根分区在哪个硬盘上。如你只有一个硬盘。那就是hd0。如果你的linux的一个发行版是安装在第

二个硬盘,这个X,就是1。Y是代表您所安装的linux是在哪个区。这个数值有点不同,不太好说清楚。举个例子来说。比如我把Mandrake安装到第

二块硬盘的第二个分区,也就是hdb5了。那他的root (hdX,Y),就应该写为root(hd1,4),也就是说Y=hdaZ或hdbZ中的Z减去1。

  kernel (hdX,Y)/boot/vmlinuz root=/dev/hdaZ和initrd (hdX,Y)/boot/initrd.img就是要引导哪个硬盘分区的映像和initrd文件,一定要写正确XY的数值,不然无法引导系统

以上步骤结束后,重启电脑,在grub界面按下enter键。你就可以看到你添加的title引导项了。选择你的引导项,如果内核的功能编译没有问题的话,应该就会启动你的系统了。

时间: 2024-10-16 05:40:55

Linux内核编译以及内核引导启动的相关文章

修复/boot及/etc/fstab、自制linux、编译安装内核

实验一.破坏dev/sda 的MBR的446字节: 破坏:dd if=/dev/zero of=/dev/sda bs=1 count=446 查看:hexdump -C -n 512 /dev/sda 发现前面的字节都为0 状况一.刚破坏未重启的时候修复: 可以利用grub重新生成: grub grub> root (hd0,0) grub> setup (hd0) quit退出 修复完之后使用hexdump -C -n 512 /dev/sda查看发现已经修复成功 状况二.破坏之后重启了,

【转】Linux驱动模块编译进内核中

原文网址:http://blog.chinaunix.net/uid-29287950-id-4573481.html BQ27501驱动编译进内核 一.       驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录: 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项: 3. 在目录的 Makefile 文件中增加对新源代码的编译条目. bq27501驱动编译到内核中具体步骤如下:

Linux系统启动流程、内核及模块管理

Linux系统启动流程.内核及模块管理 Linux系统的组成部分组成:内核+根文件系统(kernel+rootfs)内核(kernel): 进程管理(创建.调度.销毁等).内存管理.网络管理(网络协议栈).驱动程序.文件系统.安全功能IPC:Inter Process Communication机制本地进程间通信机制:消息队列.semerphor.shm(共享内存)跨主机进程间通信机制:socket等运行中的系统环境可分为两层:内核空间.用户空间内核空间(模式):内核代码(特权级操作-->系统调

Linux内核编译、管理以及kickstart和引导镜像制作

其实内核就是系统上面的一个文件,包含了驱动主机各项硬件的检测程序与驱动模块,而Linux的内核是单内核体系,且是模块化的 内核的组成部分: 核心文件:/boot/vmlinuz-VERSION 模块文件:/lib/modules/VERSION/ *.ko: 模块间或许存在依赖关系: ramdisk: 非必须性内容:只是用于实现内核在无法加载根文件设备时提供 内核模块管理: lsmod命令:列出已经装载的模块 另一种办法:# cat /proc/modules modinfo: 查看指定模块的详

linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)

linux是如何组成的?答:linux是由用户空间和内核空间组成的为什么要划分用户空间和内核空间?答:有关CPU体系结构,各处理器可以有多种模式,而LInux这样的划分是考虑到系统的安全性,比如X86可以有4种模式RING0~RING3  RING0特权模式给LINUX内核空间RING3给用户空间linux内核是如何组成的?答:linux内核由SCI(System Call Interface)系统调用接口.PM(Process Management)进程管理.MM(Memory Managem

Linux重新编译内核指南

Linux的一个重要的特点就是其源代码的公开性,全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用.而Linux的内核则是这些特点的最直接的代表. 为什么要升级内核 正如它的名字的字面意义,Linux的内核承担着Linux操作系统的最为核心的任务,是其它程序和硬件等运行过程中的仲裁者:它要管理所有进程的内存,保证它们都能平等得到处理器的时隙.此外,它还提供程序和硬件之间的接口等功能. 通常,更新的内核会支持更

Linux内核编译与安装

平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------------------------------------- 内核的编译分为两种:X86平台和ARM嵌入式平台 一.X86 平台:虚拟机Ubuntu10.04 内核版本:3.0.80 1.下载(并安装)源码:linux-3.0.08 https://www.kernel.org/pub/linux/

linux的几个内核镜像格式Image 和 u-boot启动内核和文件系统时的一些环境变量的设置

关于编译powerpc linux的几个Image参考原文 http://blog.sina.com.cn/s/blog_86a30b0c0100wfzt.html 转载▼ PowerPC架构 Linux和ARM,X86等平台有些差异,PowerPC平台HW参数不是通过命令行方式传递到Linux,而是通过传递Device tree文件的方式传递参数,所以PowerPC平台Linux需要编译dtb和uImage才能正常加载,另外PowerPC架构linux还提供simpleImage的方式加载,也

linux内核编译相关

参考:http://www.arm.linux.org.uk/docs/kerncomp.php 一. 内核编译1) linux 2.4make clean/make mrpropermake depmake zImagemake modules //编译模块2) linux 2.6make clean/make mrpropermake // 编译内核同时编译了模块3) 模块安装上述步骤完成后,模块分布在各个内核目录下,通过下面命令安装到具体目录下:make modules_install I