给虚拟机中的ubuntu安装新内核

主机操作系统版本:Windows 10
虚拟机版本:Workstation 12 Pro
虚拟机操作系统:Ubuntu 14.04
Linux内核:3.13.0
gcc版本:4.8.2

最近学习linux内核,不少比较经典的书籍都是以2.6.x源码进行讲解的。所以打算在linux虚拟机中安装一个2.6.36的内核。步骤如下:

(一)下载源码
        内核下载官网:www.kernel.org
        下载linux-2.6.36.tar.gz并解压到/usr/src目录下
        进入/usr/src/linux-2.6.36目录,以后的工作都在这个目录下进行 
    (二)定制内核
        为了节省配置内核的时间,我们把系统中现有的配置拷贝到当前目录下
            #sudo cp /boot/config-3.13.0-24-generic ./.config
        无论是否需要自己定制内核,都要执行配置命令
            #sudo make menuconfig
        然后保存退出就行了
    (三)编译内核
        在这里,网上有不少文章都说执行sudo make -j4,我这样编译的时候并没有提示错误,但是make install却有如下提示信息:
           *** Missing file: arch/x86/boot/bzImage
           *** You need to run "make" before "make install".           
        于是改用  #sudo make 来进行编译
        下面是编译过程中遇到的几个错误,这里把他们以及解决方法贴出来(但为什么用make -j4编译没有提示错误呢?)

错误一:
            gcc: error: elf_x86_64: No such file or directory
            gcc: error: unrecognized command line option ‘-m’
            OBJCOPY arch/x86/vdso/vdso.so
            objcopy: ‘arch/x86/vdso/vdso.so.dbg‘: No such file
            make[2]: *** [arch/x86/vdso/vdso.so] Error 1
            make[1]: *** [arch/x86/vdso] Error 2
            make: *** [arch/x86] Error 2
         解决方法:修改文件arch/x86/vdso/Makefile,把"-m elf_x86_64"改为"-m64";把"-m elf_i386"改为"-m32"

错误二:
            In file included from drivers/net/igbvf/ethtool.c:36:0:
            drivers/net/igbvf/igbvf.h: At top level:
            drivers/net/igbvf/igbvf.h:129:15: error: duplicate member ‘page‘
            make[3]: *** [drivers/net/igbvf/ethtool.o] Error 1
            make[2]: *** [drivers/net/igbvf] Error 2
            make[1]: *** [drivers/net] Error 2
            make: *** [drivers] Error 2 
        解决办法:在drivers/net/igbvf/igbvf.h中注释掉129行,及 //struct page *page;

错误三:
            In file included from drivers/scsi/pmcraid.c:57:0:
            drivers/scsi/pmcraid.h: At top level:
            drivers/scsi/pmcraid.h:601:8: error: duplicate member ‘sense_buffer‘
            drivers/scsi/pmcraid.c: In function ‘pmcraid_abort_cmd‘:
            drivers/scsi/pmcraid.c:2940:33: warning: variable ‘res‘ set but not used [-Wunused-but-set-variable]
            drivers/scsi/pmcraid.c: In function ‘pmcraid_ioctl_passthrough‘:
            drivers/scsi/pmcraid.c:3745:5: warning: variable ‘access‘ set but not used [-Wunused-but-set-variable]
            drivers/scsi/pmcraid.c: In function ‘pmcraid_check_ioctl_buffer‘:
            drivers/scsi/pmcraid.c:4052:6: warning: variable ‘access‘ set but not used [-Wunused-but-set-variable]
            make[3]: *** [drivers/scsi/pmcraid.o] Error 1
            make[2]: *** [drivers/scsi] Error 2
            make[1]: *** [drivers] Error 2
            make[1]: Leaving directory `/home/ashish/litmus-rt‘
            make: *** [debian/stamp/build/kernel] Error 2 
        解决办法:在drivers/scsi/pmcraid.h中注释掉571行,及//u8 *sense_buffer;
    (四)安装内核
        #sudo make modules_install 把内核模块拷贝到/lib/modules/2.6.36目录下
        #sudo make install 把内核镜像文件和initrd文件拷贝到/root目录下并生成grub的配置文件
    (五)配置grub
        虽然在执行make install的时候有自动配置grub,但启动的时候并没有grub选择界面,我们还需要一些其他配置
        配置grub有两种方式,一种是直接配置/boot/grub/grub.cfg,这种方式很麻烦,具体方式自行百度,因为我也不会。。。
        另一种方式是配置/etc/default/grub文件,然后运行#sudo update-grub生成/boot/grub/grub.cfg文件。
        为了让系统在开机时显示grub的选择界面,我们需要在/etc/default/grub中添加一行:GRUB_TIMEOUT_STYLE=menu。
        想了解更多配置命令,查看 info -f grub -n ‘Simple configuration‘

时间: 2024-10-12 15:37:12

给虚拟机中的ubuntu安装新内核的相关文章

教你如何快速编译安装新内核

随着内核版本的更新换代,你是否有觉得自己的内核版本有些低了呢?如果有的话,没关系,今天小编就来教大家如何编译安装新的内核. 在编译安装内核之前先检查我们的虚拟机所在的磁盘空间,预留空间10G以上,不然编译安装内核无法完成.下面我们就开始内核的编译安装吧. (1)下载源码文件 先在内核官网(www.kernel.org/)上下载最新版本的内核到桌面上,然后rz拷到linux系统上,找到一个空目录如/app/tmp,将之移到/app/tmp中,然后再解包解压,就会生成一个目录 (2)准备文本配置文件

如何使用 SSH 连接 VMWare 虚拟机中的 Ubuntu

环境 VMWare Player 5.0.2,Ubuntu 13.10  VMWare共有3种网络连接模式,分别是: 1. bridged(桥接模式):虚拟机将直接连接到物理局域网,使自身独立于宿主机外,从局域网路由器获取IP.这种方式虚拟OS可以和局域网中其他终端实现互访.桥接模式有一个子选项“Replicate physical network connection state.”,它的意思是如果在笔记本等移动设备上使用虚拟机的桥接模式,当宿主机在无线网络和有线网络之间进行切换时,虚拟OS的

window用ssh连接本机虚拟机中的ubuntu

@window用ssh连接本机虚拟机中的ubuntu 主机和虚拟机间通信,需将2台机器的IP地址设为同一网段. 1.设置虚拟机: 虚拟机–> 设置–> Hardware –> Network Adapter,在网络连接处设置为 “桥接:直接连接到物理网络”,“NAT:使用已共享的主机IP地址”处打勾. 2.window和虚拟机下ubuntu的IP地址设为同一网段Ubuntu配置和修改IP地址请看本博客相关文章Ubuntu配置和修改IP地址 3.互ping下,判断windows与linux

window系统下的pycharm对虚拟机中的Ubuntu系统操作MySQL数据库

问题:程序员和数据库的爱情故事:程序为了追一个叫MySQL数据库的姑娘,先苦练功夫,自己模拟泡妹过程积累经验,于是想到一个解决方法:[解决虚拟机跑需要连接数据库的程序卡的问题,通过在物理机Windows系统的pycharm连接虚拟机Ubuntu的 数据库] 1. 想法:程序员首先在自己家(Windows系统下中的pycharm程序),连接自己家中卧室(虚拟机中的Ubuntu)的美女模型(MySQL数据库): 2. 准备工作:泡妹子想要更漂亮的 自己也需要升级,曾经10w的money就跟你走了,(

Win7中使用Eclipse连接虚拟机中的Ubuntu中的Hadoop2.4<3>

经过前几天的学习,基本上能够小试牛刀编写一些小程序玩一玩了,在此之前做几项准备工作 明白我要用hadoop干什么 大体学习一下mapreduce ubuntu重新启动后,再启动hadoop会报连接异常的问题 答: 数据提炼.探索数据.挖掘数据 map=切碎,reduce=合并 重新启动后会清空tmp目录,默认namenode会存在这里,须要在core-site.xml文件里添加(别忘了创建目录,没权限的话,须要用root创建并把权限改成777):<property> <name>h

虚拟机中CentOS系统添加新磁盘

查看当前系统分区 命令:fdisk –l 运行虚拟机时添加了磁盘,系统不能识别到新的磁盘即sdb,需要重启虚拟机:shutdown -r now 新磁盘进行分区并格式化 命令:fdisk /dev/sdb 根据提示依次输入m.1,输入w保存 再次使用 "fdisk -l "这个命令来查看会发现出现了/dev/sdb1(说明已经完成了分区工作) 对新建的分区进行格式化:格式化成ext3的文件系统即可 挂载已分区好的/dev/sdb1 1)手动挂载:使用mount /dev/sdb1 /要

SSH连接虚拟机中的Ubuntu 12.0.4

摘要:主要是解决不能使用ssh远程Ubuntu的问题.使用的远程工具是putty.也可以使用xshell.ubunut12.0.4是装在虚拟机中的.不过这个应该没有什么影响. 一:问题的出现 前两天使用VMware装了一个ubuntu12.0.4之后.因为常常使用命令行.又喜欢在虚拟机与实体机中切来切去.感觉很不方便.就想在xp中远程ubuntu.遇到了点小意外.经过一会调试解决成功.把过程记录一下.好记性不如烂笔头. 在开始连接的时候.老是连接不成功.就想着具体是哪方面的问题.按照思路一步一步

如何解决虚拟机中的ubuntu系统方向键与退格键不能正常使用的问题

问题描述: 在虚拟机中安装了ubuntu系统,打开vi,当vi进入insert模式后,后退键(backspace)不能删除字符,上下左右键也对应了W,S,A,D. 解决办法: cp /etc/vim/vimrc ~/.vimrc

虚拟机中的centos安装VMwareTool

这篇文章讲的是虚拟机中如何安装VMwareTool的方法,希望可以帮助的有用的朋友 1.图形界面运行centos. 2.在虚拟机菜单栏中点击 虚拟机->安装 VMWARE TOOLS 子菜单,会弹出安装信息. 3.进入图形界面会看到CD/DVD已经加载VMware Tools. 4.运行终端,进入media目录,会看到VMware Tools [[email protected] /]# cd /media/[[email protected] media]# lsVMware Tools 5.