第一步: 对硬件进行设置,使其满足要求并下载内核:
1. 新添加一块20G的硬盘及修改内存:
⑵ ubuntu下怎么编译linux内核
linux下编译软件通扰袭用三步曲:
./configure
make
sudo make install
但是编译内核要复杂的多,特别是定制内核,需要根据特定的硬件信息,配置.config文件。可以说.config文件是编译linux内核是否优异的关键。凯裂也可以到github或者码元上寻找有没有类似的型号,找到盯李闭同一型号的电脑可以直接到内核源码目录下,然后依次执行shell命令:make
sudo make install
sudo make moles_install
sudo update-grub2 或者sudo update-grub就可以了
⑶ CentOS 5.5下如何编译安装新内核
第一步:下载内核
传送门:地址.笔者下载的是3.2.84版本
第二步:解压编译内核
由于我下的是.tar.xz文件,用tar命令不能直接解压。
1.我的系统里不带xz解压软件,先下载xz-5.0.3.tar.bz2文件并解压安装
tar -jvxf xz-5.0.3.tar.bz2 cd /opt/xz-5.0.3 #进入解压后的文件夹 ./configure make make install2.解压内核
xz -d linux-3.2.84.tar.xz tar -xvf linux-3.2.84.tar3.如果是第一次编译内核,并没有上次残留的文件可以跳过该步骤(最好仔细看下指令对应的功能)
make mrproper make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块 make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件 make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。4.搭建编译内核所需要的环境
yum -y install gcc yum install ncurses ncurses-devel yum install openssl-devel5.进入内核解压文件夹配置内核参数
由于我是个小白不会选,为了方便,直接用make localmodconfig命令,这个命令是以本来的.config文件为基础去选,可以参考论文:嵌入式linux系统的裁剪优化和测试技术.然后我就一直回车直到结束。然后再输入make menuconfig命令进入图形选择菜单,将kenel hacking中的Sample..选项去掉(具体那一项我忘了,尴尬),退出保存。然后编辑.config文件中的“CONFIG_SYSFS_DEPRECATED”,默认该选项为not set,被注释掉的,将其改为y,即修改为“CONFIG_SYSFS_DEPRECATED=y”,之后可能还要修改,后面再说。
6.编译新内核
make bzImage && make moles && make moles_install7.安装内核
8.编译安装可能出现的情况
应该是没什么问题, 不过也不排除会出现下面的情况:make:警告:检测到时钟错误。您的创建可能是不完整的。 解决办法:find . -type f -exec touch {} ; 重新编译下就好了。
9.处理下img中的东西(我说不清楚= =)
1)解压initrd文件
# cp /boot/initrd-3.2.84.img /tmp # cd /tmp/ # ls initrd-2.6.30.4.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.30.4.img | cpio -i释放之后看到如下内容
# ls bin dev etc init lib proc sbin sys sysroot2)编辑init,删掉其中重复的四行中的两行 echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko 3)重新打包initrd
# find . | cpio -c -o > ../initrd 11538 blocks # cd .. # gzip -9 < initrd > initrd.img # ls initrd-2.6.30.4.img initrd initrd.img这里面的initrd.img就是重新打包后的文件。 4)把initrd.img复制到/boot下 命令:#cp initrd.img /boot 5)修改grub.config,在/etc文件夹下 把initrd-3.2.84.img改为initrd.img就可以了 6)reboot重启 记得选择自己的内核!别错过啦!
以上内容就是小编为大家带来的关于CentOS 5.5下编译安装新内核的方法了,希望可以帮助到大家!
⑷ 如何编译Linux内核
一、编译环境
ubuntu 5.10,要编译的内核源码版本2.6.12 二、下载并解压源代码 首先从linux内核的官网www.kernel.org把源代码下载下来。为了和后面实验要求符合,我们要下载使用O(1)调度器的源码。因此这里下载了2.6.12版本源码。下载 下linux-2.6.12.tar.bz2,将下载源码放入/usr/src/目录下。如下图所示: 解压该源码: 三、构建编译环境 现在我们得到的只是源代码,只是许许多多的文本文件,要想使这些文件成为可以运行的程序,需要使用编译器进行编译以及链接。编译器有很多,但在里linux下一般都使用gnu的开源编译器套件,这里包括gcc等,现在我们安装基本的编译器套件,如图所示: 四、安装ncurses库 这里使用Ubuntu系统,因为系统自带的ncurses库在支持make menuconfig的时候会出错,所以,依然要安装ncurses库,这里我们从源码安装。首先去ncurses官网http://ftp.gnu.org/pub/gnu/ncurses/ 上下载源码。这里我们下载5.9版本,并通过简单的安装方式.configure 和make、make install方式安装。如下图所示: 五、配置内核 一切准备工作做完,现在我们就可以配置内核了,这里我们使用make menuconfig方式。如下图: 在使用make menuconfig这个命令后,会出现如下的字符界面,我们就可以在这个界面上对内核进行配置。但是如果这不是你第一次配置这个内核,那么请先运行:make mrproper来清除以前的配置,回到默认配置,然后再运行:make menuconfig.
在这里,我们以对cpu支持的配置为例,其余的选项就不一一详述,首先查看本机的cpu类型,如下图:
在这里我们可以看到,我的电脑的cpu是AMD Athlon的,因此我们在cpu选项里面选用AMD,如下图所示:
在这里需要注意的是:
A、 cpu的设置在linux内核编译过程中,不是必需的,即使保持默认的386选项(我们刚才把它改成了AMD),内核也能正常运行,只不过运行慢一些而已。
B、 一般容易出问题的地方在于Device Driver的设置。我在一开始就遇到了在内核编译完,通过grub引导系统过程中报 “ALERT! /dev/sda1 does not exist . Dropping to a shell!”的错误。这是因为硬盘驱动没有配置好而造成的。运行lspci命令,查看到下面这行:
由此确定,需要配置SCSI、PCI-X、Fusion-MPT驱动,需要在响应的驱动选项里将[M]设置为[*],因为硬盘驱动是在系统开机的时候加载,所以不能以模块形式加载。
把这几个驱动内部的选项全部改为[*]:
六、编译内核
对内核的配置完成之后,现在就可以开始编译内核了,只需要一个简单的make命令即可,之后我们就只能慢慢等,直到编译完成,在我的电脑上,大概用了25分钟。下图是运行make后的部分输出。
七、安装内核
编译完成之后,我们需要安装内核,主要分为如下几步:
1)、安装模块
安装模块,对于内核来说,每一个内核版本有自己的模块目录,默认在/lib/moles/内核版本号这个目录下,make moles_install会创建对应的目录,并把对应的模块文件拷贝过去。注意,这一步必须要在编译过内核再做。
2)、拷贝bzImage文件
bzImage文件是内核映像文件,是启动内核所必需的,我们应当把它拷贝到/boot目录下。在这里,我为自己新建了一个目录,我们把它拷贝过去,并且按照一般内核映像文件的命名方式为它改名为vmlinuz-2.6.12。
3)、制作initrd文件
initrd文件命名为initrd.img-2.6.12
4)、修改grub启动项
要能引导起我们的新系统,需要更改grub配置,增加启动选项。ubuntu 5.10的grub版本比较低,配置文件为/boot/grub/menu.lst,高版本的grub可能在/boot/grub/grub.cfg里。在原有启动项基础上,添加我们自己的启动项,并把它设为默认启动项,配置如下:
5)重启
不出意外的话,我们的内核已经正常加载了,运行uname -a,会发现,内核版本已经是2.6.12了。
⑸ linuxmake瀹夎呮病链夋潈闄恖inuxmake瀹夎
LINUX鍐呮牳缂栬疟姝ラわ纻
缂栬疟鍙婂畨瑁呯亩瑕佹ラわ细缂栬緫Makefile鐗堟湰淇℃伅瀹氢箟鍐呮牳鐗规э纴鐢熸垚閰岖疆鏂囦欢.config锛岀敤浜庣紪璇戯细makexconfig缂栬疟鍐呮牳锛歮ake瀹夎呭唴镙革细makeinstall瀹夎呮ā鍧楋细makemoles_install鍏蜂綋姝ラゅ备笅锛氩唴镙搁厤缃鍏埚畾涔夊唴镙搁渶瑕佷粈涔堢壒镐э纴骞惰繘琛岄厤缃銆傚唴镙告瀯寤虹郴缁燂纸Thekernelbuildsystem锛夎繙涓嶆槸绠鍗旷敤𨱒ユ瀯寤烘暣涓鍐呮牳鍜屾ā鍧楋纴𨱍充简瑙f洿澶氱殑楂樼骇鍐呮牳鏋勫缓阃夐”锛屼綘鍙浠ユ煡鐪妇ocumentation/kbuild鐩褰曞唴镄勫唴镙告枃妗c
鍙鐢ㄧ殑閰岖疆锻戒护鍜屾柟寮忥细makemenuconfig锻戒护锛歮akemenuconfig缂栬疟鍐呮牳缂栬疟鍜屽畨瑁呭唴镙哥紪璇戞ラわ细$cd/usr/src/linux2.6$make瀹夎呮ラ(loggedas$makeinstall$makemoles_install鎻愬崌缂栬疟阃熷害澶氲姳涓浜涙椂闂村湪鍐呮牳閰岖疆涓婏纴骞朵笖鍙缂栬疟闾d簺浣犵‖浠堕渶瑕佺殑妯″潡銆
杩欐牱鍙浠ユ妸缂栬疟镞堕棿缂╃煭涓哄师𨱒ョ殑1/30锛屽苟涓旇妭鐪佹暟锏綧B镄勭┖闂淬
鍙﹀栵纴浣犺缮鍙浠ュ苟琛岀紪璇戝氢釜鏂囦欢锛$make-j
linux涓璵ake锻戒护镐庝箞鐢锛
鐢ㄦ硶锛
1銆乵ake锛
杩欎竴姝ュ氨鏄缂栬疟锛屽ぇ澶氭暟镄勬簮浠g爜鍖呴兘缁忚繃杩欎竴姝ヨ繘琛岀紪璇戯纸褰撶劧链変簺perl鎴杙ython缂栧啓镄勮蒋浠堕渶瑕佽皟鐢╬erl鎴杙ython𨱒ヨ繘琛岀紪璇戯级銆
濡傛灉鍦╩ake杩囩▼涓鍑虹幇error锛屽氨瑕佽颁笅阌栾浠g爜锛堟敞镒忎笉浠呬粎鏄链钖庝竴琛岋级锛岀劧钖庡彲浠ュ悜寮鍙戣呮彁浜bugreport锛堜竴鑸鍦↖NSTALL閲屾湁鎻愪氦鍦板潃锛夈傛垨钥呯郴缁熷皯浜嗕竴浜涗緷璧栧簱绛夛纴杩欎簺闇瑕佽嚜宸变粩缁嗙爷绌堕敊璇浠g爜銆
make镄勪綔鐢ㄦ槸寮濮嬭繘琛屾簮浠g爜缂栬疟锛屼互鍙娄竴浜涘姛鑳界殑鎻愪緵锛岃繖浜涘姛鑳界敱浠栫殑Makefile璁剧疆鏂囦欢鎻愪緵鐩稿叧镄勫姛鑳姐
姣斿俶akeinstall涓鑸琛ㄧず杩涜屽畨瑁咃纴makeuninstall鏄鍗歌浇锛屼笉锷犲弬鏁板氨鏄榛樿ょ殑杩涜屾簮浠g爜缂栬疟銆
make鏄疞inux寮鍙戝椾欢閲岄溃镊锷ㄥ寲缂栬疟镄勪竴涓鎺у埗绋嫔簭锛屼粬阃氲繃鍊熷姪Makefile閲岄溃缂栧啓镄勭紪璇戣勮寖杩涜岃嚜锷ㄥ寲镄勮皟鐢╣cc銆乴d浠ュ强杩愯屾煇浜涢渶瑕佺殑绋嫔簭杩涜岀紪璇戠殑绋嫔簭銆
涓鑸𨱍呭喌涓嬶纴浠栨墍浣跨敤镄凪akefile鎺у埗浠g爜锛岀敱configure杩欎釜璁剧疆鑴氭湰镙规嵁缁椤畾镄勫弬鏁板拰绯荤粺鐜澧幂敓鎴愩
linux涓锛岀殑makeinstall锛
make鏄鐢ㄦ潵缂栬疟镄勶纴瀹冧粠Makefile涓璇诲彇鎸囦护锛岀劧钖庣紪璇戙
makeinstall鏄鐢ㄦ潵瀹夎呯殑锛屽畠涔熶粠Makefile涓璇诲彇鎸囦护锛屽畨瑁呭埌鎸囧畾镄勪綅缃銆傜敤娉曪细1銆乵ake锛氲繖涓姝ュ氨鏄缂栬疟锛屽ぇ澶氭暟镄勬簮浠g爜鍖呴兘缁忚繃杩欎竴姝ヨ繘琛岀紪璇戯纸褰撶劧链変簺perl鎴杙ython缂栧啓镄勮蒋浠堕渶瑕佽皟鐢╬erl鎴杙ython𨱒ヨ繘琛岀紪璇戯级銆傚傛灉鍦╩ake杩囩▼涓鍑虹幇error锛屽氨瑕佽颁笅阌栾浠g爜锛堟敞镒忎笉浠呬粎鏄链钖庝竴琛岋级锛岀劧钖庡彲浠ュ悜寮鍙戣呮彁浜bugreport锛堜竴鑸鍦↖NSTALL閲屾湁鎻愪氦鍦板潃锛夈傛垨钥呯郴缁熷皯浜嗕竴浜涗緷璧栧簱绛夛纴杩欎簺闇瑕佽嚜宸变粩缁嗙爷绌堕敊璇浠g爜銆俶ake镄勪綔鐢ㄦ槸寮濮嬭繘琛屾簮浠g爜缂栬疟锛屼互鍙娄竴浜涘姛鑳界殑鎻愪緵锛岃繖浜涘姛鑳界敱浠栫殑Makefile璁剧疆鏂囦欢鎻愪緵鐩稿叧镄勫姛鑳姐傛瘆濡俶akeinstall涓鑸琛ㄧず杩涜屽畨瑁咃纴makeuninstall鏄鍗歌浇锛屼笉锷犲弬鏁板氨鏄榛樿ょ殑杩涜屾簮浠g爜缂栬疟銆俶ake鏄疞inux寮鍙戝椾欢閲岄溃镊锷ㄥ寲缂栬疟镄勪竴涓鎺у埗绋嫔簭锛屼粬阃氲繃鍊熷姪Makefile閲岄溃缂栧啓镄勭紪璇戣勮寖杩涜岃嚜锷ㄥ寲镄勮皟鐢╣cc銆乴d浠ュ强杩愯屾煇浜涢渶瑕佺殑绋嫔簭杩涜岀紪璇戠殑绋嫔簭銆备竴鑸𨱍呭喌涓嬶纴浠栨墍浣跨敤镄凪akefile鎺у埗浠g爜锛岀敱configure杩欎釜璁剧疆鑴氭湰镙规嵁缁椤畾镄勫弬鏁板拰绯荤粺鐜澧幂敓鎴愩
2銆乵akeinstall杩欐浔锻戒护𨱒ヨ繘琛屽畨瑁咃纸褰撶劧链変簺杞浠堕渶瑕佸厛杩愯宫akecheck鎴杕aketest𨱒ヨ繘琛屼竴浜涙祴璇曪级锛岃繖涓姝ヤ竴鑸闇瑕佷綘链塺oot𨱒冮檺锛埚洜涓鸿佸悜绯荤粺鍐椤叆鏂囦欢锛夈
濡备綍鍦╱buntu涓瀹夎卪akefile鏂囦欢锛屾眰璇︾粏姝ラわ纻
1銆侀吨瑁呯郴缁2銆佷粠鍒镄剈buntu绯荤粺閲岀紪璇戜竴涓猰ake𨰾垮埌浣犵殑绯荤粺閲岄溃鐢3銆佷笅杞藉瑰簲鐗堟湰镄刴ake.deb鍖呯敤dpkg锻戒护瀹夎咃纸纭淇濅綘涓嬭浇镄刴ake镄勭増链镄勪緷璧栧凡缁忚В鍐充简锛屼粬渚濊禆鐗瑰畾鐗堟湰镄刲ibc锛夎繖浜涙槸浣犳棤娉曚娇鐢╝pt-get瀹夎呰蒋浠舵椂镄勫嚑涓阃夋嫨銆傚叾涓锛岄吨瑁呯郴缁熸渶绠鍗曟湁鏁堬纴姣旷珶浣犺翠綘鐜板湪镄勮繖涓鏄涓钥佺増链浜