内核获取网站:https://www.kernel.org/pub/linux/kernel/

步骤如下:

1、打开终端,更改用户权限为root。具体做法是在终端输入sudo su,然后按提示输入密码。判断是否是root用户是使用whoami命令,若输出为root则已经切换到root账户。

2、输入mv linux-2.6.36.tar.gz  /usr/src,目的是把下载的内核源代码文件移到/usr/src目录。

3、输入cd /usr/src切换到该目录下。

4、输入tar zxvf linux-2.6.36.tar.gz,目的是解压内核包,生成的源代码放在linux-2.6.36目录下。

5、输入cd linux-2.6.36,切换到该目录下。

6、输入cp /boot/config-,然后按下Tab键,系统会自动填上该目录下符合条件的文件名,然后继续输入 .config,目的是使用在boot目录下的原配置文件。

7、配置内核

方法很多,主要有如下几种:

make mrproper

#make menuconfig  //基于ncurse库编制的图形工具界面

如果没有ncurse 库

Ubuntu: 运行apt-getinstall libncurses5-dev

fedora : 运行 yum install ncurses-devel

#make config  //基于文本命令行工具,不推荐使用

#make xconfig  //基于X11图形工具界面

#make gconfig  //基于gtk+的图形工具界面

由于对Linux还处在初学阶段,所以选择了简单的配置内核方法,即make menuconfig。在终端输入make menuconfig,等待几秒后,终端变成图形化的内核配置界面。进行配置时,大部分选项使用其缺省值,只有一小部分需要根据不同的需要选择。

对每一个配置选项,用户有三种选择,它们分别代表的含义如下:

<*>或[*]——将该功能编译进内核

[]——不将该功能编译进内核

[M]——将该功能编译成可以在需要时动态插入到内核中的代码

注意:SCSI 虚拟机的话要编译进去

8、编译内核只需在终端输入make,然后等待编译的完成。

9、sudo make modules  (编译模块)
 
10、sudo make modules_install  (安装模块)
 
11、make install
 
PS:  以下是内核无法启用的时候照下面做:

sudo mkinitramfs -o /boot/initrd.img-2.6.36

sudo update-initramfs -c -k 2.6.36

sudo update-grub2  //自动修改系统引导配置,产生grub.cfg启动文件。

注意:

之前安装内核2.6.32版本总是失败,虽然和gcc 高版本有点关联,但修改了内核文件,是可以兼容高版本的gcc,之后发现有可能是和我Ubuntu版本12.4有冲突,要么和GRUB2 有点关联,要么和图形界面有点关联,但做人要有恒心,做不出来也要想办法搞出来,之后我又下载了一个2.6.36版本,因为老师的龙芯系统就是2.6.36的内核,安装我电脑虚拟机,果然成功!发现是2.6.32版本太早导致有可能失败,我之前的内核版本是3.8.13.

Linux内核编译和运行(转-段玉磊)的更多相关文章

  1. Linux内核编译和运行

      内核获取网站:https://www.kernel.org/pub/linux/kernel/ 步骤如下: 1.打开终端,更改用户权限为root.具体做法是在终端输入sudo su,然后按提示输入 ...

  2. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  3. TCP/IP协议栈在Linux内核中的运行时序分析

    网络程序设计调研报告 TCP/IP协议栈在Linux内核中的运行时序分析 姓名:柴浩宇 学号:SA20225105 班级:软设1班 2021年1月 调研要求 在深入理解Linux内核任务调度(中断处理 ...

  4. linux内核编译环境配置

    linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

  5. Linux内核编译与安装

    2013-04-16    Linux内核介绍  Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...

  6. Lab1:Linux内核编译及添加系统调用(详细版)

    实验一:Linux内核编译及添加系统调用(HDU) 花了一上午的时间来写这个,良心制作,发现自己刚学的时候没有找到很详细的,就是泛泛的说了下细节地方也没有,于是自己写了这个,有点长,如果你认真的看完了 ...

  7. Linux内核编译、安装流程

    原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请 ...

  8. Linux内核编译完整过程

    Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过 ...

  9. Linux内核编译配置脚本

    环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL Linux内核编译配置脚本 在linux开发过程中熟练使用脚本可以大大简化命令行操作,同时对于需要经常重复操作的指令也是一种备忘 ...

随机推荐

  1. poj 2536 GopherII(二分图匹配)

    Description The gopher family, having averted the canine threat, must face a new predator. The are n ...

  2. 避免ajax中get方法产生缓存的解决办法

    在参数中传一个随机数,就会避免浏览器对get方法异步修改数据缓存,导致不能及时看到最新效果 $.get("<?php echo U('Vip/VipHandouts/change_gr ...

  3. ssh原理

     客户端向服务器端发出连接请求 服务器端向客户端发出自己的公钥 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私 ...

  4. hadoop 常见问题

    1.Eclipse 读取hdfs文件错误:  java.io.IO Exception : Could not obtain block: blk_194219614024901469_1100 fi ...

  5. public protected default private

    简单来说,如果让一个变量或者方法,只想让自己类中的访问,那么就将它们设置成private 如果你想让一个变量或者方法,本包中的类可以访问,而且子类也可访问,但是包外的缺不想让他访问.就设置成prote ...

  6. AutoReleasePool 和 ARC 以及Garbage Collection

    AutoReleasePool autoreleasepool并不是总是被auto 创建,然后自动维护应用创建的对象. 自动创建的情况如下: 1. 使用NSThread的detachNewThread ...

  7. 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看

    从决策树学习谈到贝叶斯分类算法.EM.HMM     引言 最近在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...

  8. C++数据结构之Linked Stack(链式栈)

    上一节用连续的方式实现栈,这种方法用一个确定大小的数组存储栈元素,因为当存储达到数组上限时会遇到麻烦. 连续实现的栈与链式实现的栈的最大不同在于,前者使用一个确定大小的数组存储每一个栈元素,后者使用带 ...

  9. javascript笔记1-基本概念

    关键字: 变量: function test(){ message = 'hi'; //不加var,表示全局变量:加var,表示局部变量 } 数据类型: 总共有五种基本数据类型:Undefined.N ...

  10. 使用Dmitry Sklyarov的方法来破解一款流行的4G调制解调器

    逆向工程师如果对设备代码和固件系统进行检测时,发现了许多经过加密处理的固件文件,该怎么办?在本文中我将通过一个真实的故事来教大家如何利用一些基础的计算机知识以及简单的逻辑来应对这一问题. 因为这篇文章 ...