做珠宝网站,网页建立网站平台,网站开发难题,前程无忧最新招聘网最近编译Palacios需要linux的内核支持cpu Hot-Plug(内存热插拔)特性#xff0c;无奈我机器上安装的Ubuntu10.04系统默认不支持内存热插拔特性#xff0c;所以需要修改配置文件并重新编译linux内核#xff0c;然后就开始了漫长的linux内核编译过程#xff0c;幸好有个大神帮…最近编译Palacios需要linux的内核支持cpu Hot-Plug(内存热插拔)特性无奈我机器上安装的Ubuntu10.04系统默认不支持内存热插拔特性所以需要修改配置文件并重新编译linux内核然后就开始了漫长的linux内核编译过程幸好有个大神帮我然后参考了网上很多朋友的博客才让我快速结束了这个痛苦的经历。记于此备忘、分享。一、查看自己的机器是否支持cpu Hot-Plug(内存热插拔)特性这也是我的最初的需求。linux命令行执行以下命令:$ cat /boot/config-$(uname -r) | grep HOTREMOVE如果输出以下内容说明你的系统已经支持内存热插拔特性恭喜你不需要重新编译内核了。CONFIG_MEMORY_HOTREMOVEyCONFIG_ARCH_ENABLE_MEMORY_HOTREMOVEy如果没有出现那就得苦逼地去编译内核走起吧骚年。二、查看本机linux内核版本并下载目标linux内核版本2.1 查看本机Linux内核版本sudo uname -r然后去linux内核官网下载需要编译的内核一般都选择比自己本机内核高的版本除非你有特殊要求。 比如我本机的linux内核是linux-2.6.32.21我选择的目标linux内核为2.6.32.27。2.2下载内核linux内核官网为我是内核列表然后选择想要下载的版本的压缩包比如我选择的是linux-2.6.32.27.tar.bz2,如下图所示。(下图两种后缀的压缩文件都是可以的)2.3解压内核将下载的压缩包文件复制到/usr/src目录下然后解压sudo tar xvf linux-2.6.32.27.tar.bz2三、配置内核配置文件这一步是重中之重直接关系到能不能编译成功以及编译后的内核能否运行起来。当时我就被卡在这一步很久。3.1打开配置文件ok上一步我们已经解压完了内核压缩文件现在进入我们解压完的新的内核文件夹中看一看。cd /usr/src/linux-2.6.32.27ls -a这时候你发现目录下并没有配置文件也就是.config文件因此我们要生成一个默认的配置文件运行以下命令sudo make defconfig这时候会生成当前内核的默认配置文件。当然我们还需要对它进行改进要不然启动的时候会找不到文件系统其次我们需要配置的cpu Hot-Plug也是在这里设置的。运行以下命令以图形界面的形式来配置。sudo make menuconfig如果你在这一步报错了提示error: curses.h: No such file or directory说明你的机器上缺少运行menuconfig的必要类库支持。运行一下命令sudo apt-get install libncurses5-dev libncursesw5-dev然后再重新make menuconfig就可以了。3.2配置内核配置文件进去以后看到的界面应该是这样的。(高版本可能有所不同不过大同小异)首先我们先配置文件系统如果不配置新内核一直发现不了文件系统重启后会黑屏然后一个光标一直在左上角闪烁或则提示找不到FileSystem。文件系统配置如下图然后我们配置cpu Hot-Plug特性1.Processor type and features —Meeory model — SparseMemory 2.Processor type and features —Allow for memory hot-add 3.Processor type and features —Allow for memory hot-remove 4.Processor type and features —Page migration 5.Processor type and features —Support for hot-pluggable cpus 6.Power management and ACPI options —ACPI(~~全称~~)Support —Memory Hotplug以上几项都要选上。如果还是不太明白可以看看官方的文档我是官方文档另外还有一篇讲内存热插拔的文章也不错。拿走拿走满足你们哼至此配置已经基本达到了我们的要求。然后一直选择Exit最后会提示让你保存一定要选则YES保存。另外如果在配置文件中你不知道该不该选择某一项那么你就将光标停在那一项上然后按H会有惊喜哟。四、编译及安装好了经历了艰难险阻我们终于走到了这一步。现在可以编译和安装了。(以下命令均在新内核目录内执行)4.1 编译内核sudo make好了只有一句话。这个过程比较漫长如果前面的配置文件没有问题。而且你的编译环境没有问题那么应该是不会出问题。如果你还没有gcc编译环境那么你需要先执行下面的命令安装必要的编译环境。sudo apt-get install build-essential4.2 编译安装内核模块sudo make modules_install这一步应该挺快。4.3 安装内核sudo make install五、生成内核镜像及启动项马上就要成功了。5.1 生成内核镜像首先来看一下这个文件夹/lib/modules/目录下的文件夹ls /lib/modules该文件夹下应该会有两个文件夹一个是你原来系统的内核模块文件另一个是刚编译完的新内核的内核模块文件。然后执行sudo mkinitramfs -o /boot/initrd.img-2.6.32.27sudo update-initramfs -c -k 2.6.32.27命令中的版本号对应你的新版本的版本号。5.2 生成启动引导文件最后就是配置启动时候的grub文件了sudo update-grub2OK.大功告成。不过再来改一点点东西然我们的grub启动的时候等几秒而不是直接进入默认的系统。sudo gedit /boot/grub/grub.cfg然后找到其中所有的timeout0或者timeout负数的都改成timeout10保存、退出。 完成。 重启机器会出现grub界面然后选择新内核进入就好了。六、如果重启后无法看到grub界面怎么办。当时我也遇到了这个问题才开始编译内核的时候由于各种不明问题导致编译完成重启机器后只有一个光标在闪闪闪…连grub界面都木有连原来的系统都进不去啊所以贴心的我就来教你怎么解决这个问题。直接给连接我是秘籍只是需要注意的是上面教程中第一步不需要。只要一个可以装Ubuntu的U盘就可以了就跟使用U盘安装Ubuntu一样只不过用U盘引导起来以后不选择Istall Ubuntu而是进第一项试用Ubuntu。七、参考资料谢谢各位博客的大神们。本博客中许多内容都是摘自你们的博客。谢谢总结如果觉得编程之家网站内容还不错欢迎将编程之家网站推荐给程序员好友。本图文内容来源于网友网络收集整理提供作为学习参考使用版权属于原作者。