Linux内核编译测试

内核编译:

Step 1:配置内核编译选项。

make menuconfig

Optional Step :排除编译结果文件(.o)等之间的依赖性。

make mrproper

Optional Step:清除历史编译结果。

make clean

Step 2:编译内核。

make bzImage #编译内核

make modules #编译各内核模块,如驱动等。

make modules_install #将编译好的模块安装至 /lib/modules/x.xx.x 目录下。

Step 3:生成初始盘镜像 initrd.img。


cd linux-source-x.xx.x/.config #复制配置文件至/boot目录

sudo cp .config /boot/config-x.xx.x

#x.xx.x 对应 /lib/modules/x.xx.x 目录。

# -o 指示了镜像的输出目录。

sudo mkinitramfs -o /boot/initrd.img-x.xx.x x.xx.x

Step 4:修改Grub配置。

在/boot/grub/grub.cfg中复制一段已有的启动项条目,将其中的内核相关文件地址修改至新内核相关文件所在位置。

如:

复制下段:

menuentry‘Ubuntu,Linux 3.2.0-36-generic-pae‘ --class ubuntu --class gnu-linux --class gnu --class os {

        recordfail

        gfxmode $linux_gfx_mode

        insmod gzio

        insmod part_msdos

        insmod ext2

        set root=‘(hd0,msdos1)‘

        search --no-floppy --fs-uuid --set=root 7b4e922c-d943-4b84-9c75-4fdc57cf1a3f

        linux   /boot/vmlinuz-3.2.0-36-generic-pae root=UUID=7b4e922c-d943-4b84-9c75-4fdc57cf1a3f ro   quiet splash $vt_handoff

        initrd  /boot/initrd.img-3.2.0-36-generic-pae

}

修改为:

menuentry ‘Test,Linux 3.7.4‘ --class ubuntu --class gnu-linux --class gnu --class os {

        recordfail

        gfxmode $linux_gfx_mode

        insmod gzio

        insmod part_msdos

        insmod ext2

        set root=‘(hd0,msdos1)‘

        search --no-floppy --fs-uuid --set=root 7b4e922c-d943-4b84-9c75-4fdc57cf1a3f

        linux  /boot/core/vmlinuz-3.7.4root=UUID=7b4e922c-d943-4b84-9c75-4fdc57cf1a3f  ro   quiet splash $vt_handoff

        initrd  /boot/core/initrd.img-3.7.4

}

Step 5:测试

在虚拟机启动时按Esc,强制进入Grub启动菜单。

在菜单中选择’Test,Linux 3.7.4,使用刚编译的内核初始化系统,查看启动过程,看是否存在异常,如一切正常,则表明内核编译正确,反之则需要继续修改编译选项。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 14:04:18

Linux内核编译测试的相关文章

【转】6.4.6 将驱动编译进Linux内核进行测试

原文网址:http://www.apkbus.com/android-98520-1-1.html 前面几节都是将Linux驱动编译成模块,然后动态装载进行测试.动态装载驱动模块不会随着Android系统的启动而自动装载,因此Android系统每次启动都必须使用insmod或modprobe命令装载Linux驱动模块. 对于嵌入式系统(包括嵌入式Android.嵌入式Linux等)一般都采用将Linux驱动编译进内核的方式.这样做虽然没有动态装载灵活,但Linux驱动会随着Android的启动而

Linux内核编译及系统裁剪之一

Linux内核编译方法详解及系统裁剪之一详解 我们的内核是由两部分组成的: 1,内核核心 核心文件的路径是/boot/vmlinuz-内核版本号 如下图-> 2,内核模块(ko:kernel object,内核对象) ko文件的路径是/lib/modules/内核版本号/下的所有文件 如下图-> 我们的内核有两种设计风格: 1,单内核设计风格 Linux的内核就属于是单内核设计风格的,不过Linux的单内核设计风格采用了微内核设计风格的模块化设计思想,所以使得我们的Linux内核的核心可以被设

Linux内核编译过程分析

http://pan.baidu.com/s/1ntqLA7v 其中是我总结生成的一些文档,以便于理解当我们输入make uImage后,系统是怎么一步一步生成uImage的,我采用的是逆向分析的方法. Linux内核的编译结构还是挺复杂的,我分析的还不到位,文档还有欠缺. 下面是缩略图,在共享的目录中有一个swf的文件,可以用浏览器打开,然后就可以动态的阅读了,同时还提供了通过网页.PDF以及word阅读的文件. Linux内核编译过程分析,布布扣,bubuko.com

Linux内核编译完整过程

Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过程中的一些实际经验. 内核简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性. Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可

Linux内核编译和替换小结

Linux内核编译和替换小结 一 准备工作 1 当前Linux 环境 系统版本为 3.8.13.13-cdos 2 下载内核源码 在网站 www.kernel.org ,选择合适的版本下载. 本次下载版本为官方最新开发版本 linux-3.17.tar.xz ? 二 内核编译 1 解压源码 当前系统的源码位置为 /usr/src/linux-headers-3.8.13.13-cdos 新的源码解压到 /opt/linux-3.17,使用命令 #tar xvf linux-3.17.tar.xz

linux内核编译与开发

一.Linux内核简介linux kernel map: linux 系统体系结构: linux kernel体系结构: arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RING0级别最高, 这样linux用户代码运行在RING3下,内核运行在RING0,这样系统本身就得到了 充分的保护 用户空间(用户模式)转到内核空间(系统模式)方法: ·系统调用 ·硬件中断 linux kernel 体系结构: 虚拟文件系统VFS: VFS(虚拟文件系统)隐藏各种文件系统的具体细节,

Linux内核编译步骤

编译之前,一定要查看,内核源码中,Documentation/Changes文件,查看内核编译时,需要的运行环境,如果不适合编译和有可能失败. 由于2.4和2.6内核的编译方法不是完全一样,所以我们分开两种情况讨论 编译2.4内核:                                                         编译2.6内核 第一步:make mrproper -清理内核源代码树(清理垃圾信息)             make mrproper 第二步:mak

Linux内核编译 Ubuntu 14.04.3 server 升级至3.19.8

读书笔记:<Linux内核设计与实现>,原书第3版,陈莉君 康华 译 第2章:从内核出发     2.3节:编译内核 实验: ============================================================ 系统环境:VM虚拟机 Ubuntu 14.04.3 LTS server版 任务:编译安装新的内核 注意:不要跨大版本,我在3.19版本内 耗时:2小时 所有版本的内核: https://www.kernel.org/pub/linux/kernel

linux内核编译,配置本机驱动

1.前言  编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多驱动,不懂硬件的我们,看到都头大.本人第一次安装gentoo的时候,内核编译了5次,前4次主要失败原因是以太网卡驱动.无线网卡驱动.显卡驱动.声卡驱动都没一次性配置正确.虽然gentoo提供了genkernel命令,可以自动帮你编译内核,但还是想自己手工尝试下. 2.获取本机驱动信息 既然跟内核挂钩