欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Linux内核编译--编译方法.docx

    • 资源ID:18997568       资源大小:20.42KB        全文页数:23页
    • 资源格式: DOCX        下载积分:10.88金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10.88金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Linux内核编译--编译方法.docx

    Linux内核编译-编译方法一、为什么要编译内核;有时我们为了实现某些功能,比方对iptables的防火墙有些需要内核支持;还有实现一些硬件的支持等,这时我们需要重编内核;二、内核源码版本的选择;假如发行版本提供内核源码,最好还是用发行版本提供的;比方Fedora4.0提供了很多版本的内核源码;我们安装好后,他自带的配置文件大多能知足我们的需要,对于新手来讲,根据自带的内核的配置文件.config,我们也能学到一点怎样配置内核。也没有什么难的,熟能生巧罢了;假如从httpdocsj/doc/d63e781ca300a6c30c229f52.下载最新稳定版本的内核也是能够的;三、内核源码安装或解压;对于FedoraCore4.0来讲,内核源码是放在/usr/src/kernels目录中;假如通过在线升级内核,也是放在这个目录中;假如您的系统中的/usr/src/kernels/中没有内容,讲明您没有安装内核的源码包kernel-devel软件包;您能够通过软件包管理器来补装,请参考(Fedora/Redhat软件包管理指南)假如您用FedoraCore4.0,我建议您在保留老内核的基础上,在线下载最新版本的内核kerenl-devel和对应版本的kernel或者从httpdocsj/doc/d63e781ca300a6c30c229f52.下载,有时可能新的kerenl已经解决了您所面对的问题,这时就没有必要编译内核了;假如您是通过在线安装的内核源码包,比方通过apt+synaptic或者yum安装的,内核源码会被放到/usr/src/kernel下的目录中,您要进入相对应的目录进行编译;在线更新软件包,请参考(Fedora/Redhat软件包管理指南),推荐apt+synaptic工具;假如您是是下载kernel和kernel-devel的rpm包,能够通过来安装;代码:1.rootlocalhostbeinan#rpm-ivhkernel*.rpm复制代码假如您是从httpdocsj/doc/d63e781ca300a6c30c229f52.下载的类似linux-2.6.13.tar.bz2或者linux-2.6.13.tar.gz的,您要把下载下来的文件移到/usr/src目录中解压;然后进入解压的目录中进行配置和编译;代码:1.rootlocalhostbeinan#mvlinux-2.6.13.tar.bz22.rootlocalhostbeinan#cd/usr/src/3.4.rootlocalhostsrc#tarjxvflinux-2.6.12.3.tar.bz2复制代码提示:本文以linux-2.6.12.3为例,其实通过发行版的升级版的kernel-devel和从httpdocsj/doc/d63e781ca300a6c30c229f52.下载下来的差不多,大同小异;不同的是通过在线升级的rpm格式的内核源码包,有配置文件.config能够参考;安装到的目的地是/usr/src/kernel对FC4.0来讲;假如您要高编译和配置内核。四、内核的配置;1、进入目录执行makemrproper,对于从httpdocsj/doc/d63e781ca300a6c30c229f52.下载而来的tar.bz格式的源码包;代码:1.rootlocalhostsrc#cdlinux-2.6.12.3/2.3.rootlocalhostlinux-2.6.12.3#4.5.rootlocalhostsrc#cdlinux-2.6.12.3/6.7.rootlocalhostlinux-2.6.12.3#makemrproper8.9.rootlocalhostlinux-2.6.12.3#makemenuconfig复制代码对于FedoraCore4.0,假如您是通过在线安装的kernel和kernel-devel新版本的包,比方是2.6.12-1.1398_FC4-i686,你能够直进入/usr/src/kernel/相应的目录中直接执行makemenuconfig;利用发行版本提供的.config来配置,这样方便点。不要makemrproper,否则.config就没有了;这也是为什么要用发行版本提供的内核源码升级包的原因;其它配置和安装大同小异;模拟总能够吧;2.扼要的配置内核;进入配置内核的配置形式后,我们可能一无所知,看下面;内核配置有两种方法,一种是直接置入内核*;另一种是编成模块M;两种方法各有优点;直接编入内核的,比方设备的启动,不再需要加载模块的这一经过了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。我们编内核时最好把极为重要的编入内核;其它的假如您不明白的,最好用默认。1移动键盘上下左右键,按Enter进入一个目录。把指针移动到Exit就退出当前目录到上级目录;2针对本人机器存在的问题进行修改,比方大内存的支持;选择本人机器的CPU;移动键盘到Processortypeandfeatures->,然后按ENTER进入;找到Processorfamily(Pentium-Pro)->按ENTER进入;进入后我们发现有好多CPU的型号可选;一般的情况下要根据bash-3.00#cat/proc/cpuinfo输出的信息来选,比方我们的是CeleronP4一代的,应该选如下的,当然默认的486也是能够正常运行的,既然我们重编一次内核,就得选中对应型号的,也许性能有所提高呢;代码:1.Processorfamily(Pentium-4/Celeron(P4-based)/Pentium-4M/Xeon)复制代码对大内存支持;假如内存是1G或者1G以上,但小于4G的,就要选4G支持;假如超过4G的,要选64G的支持;代码:1.HighMemorySupport(4GB)->2.(X)4GB3.()64GB复制代码还有比方声卡等硬件,需要我们一步一步的查看;假如有不明之处,就要按shift+?的组合键来查看讲明。一般的情况下,2.6.x的内核会根据机器的情况自动配出一个文件,只需要我们来查看一下,把重要的地方改改就行了;再举个例子:比方我如今所用的声卡是intelac97的,我应该怎么配置呢?首先要知道本人的声卡的芯片组,我们要通过lspci-v来查看;代码:1.rootlocalhostbeinan#lspci-v复制代码只查看声卡的,应该用如下的方法:代码:1.rootlocalhostbeinan#lspci-v|grepaudio2.00:1f.5Multimediaaudiocontroller:3.IntelCorp.82801DB(ICH4)AC'97AudioController(rev03)复制代码通过上面的输出,我们知道这台机器用的是intelAC97声卡;所以我们要十分注意AC97的配置;代码:找到DeviceDrivers->Sound->Soundcardsupport声卡的支持,这个是一定要选中的吧;AdvancedLinuxSoundArchitecture对声卡支持的ALSA驱动的支持;下面有OSS驱动,只是一部份。假如想用OSS的驱动更全的,能够去买;其它的就看如下的选吧;1.Sequencersupport2.3.Sequencerdummyclient4.5.OSSMixerAPI6.7.OSSPCM(digitalaudio)API*OSSSequencerAPI8.9.RTCTimersupport*VerboseprintkDebug复制代码大多是默认的就好,假如您不知道是做什么用的,或者怎么用;然后我们再向下看有代码:Genericdevices->进入里面1.Dummy(/dev/null)soundcard2.3.VirtualMIDIsoundcard4.5.MOTUMidiTimePieceAVmultiportMIDI6.7.UART16550serialMIDIdriver8.9.GenericMPU-401UARTdriver10.11.ISAdevices->假如您用ISA声卡就在这里面选;12.13.PCIdevices->假如您用PCI声卡,就在这里面选,集成声卡也在这里;14.httpdocsj/doc/d63e781ca300a6c30c229f52.Bdevices->这是USB声卡内核支持选项;我有一个这样的声卡,但没有试过;16.17.PCMCIAdevices->这是PCMCIA声卡的选项,我还没有看过这样的声卡呢;假如您有,就在这里面动动手吧。复制代码由于我用的是Intel集成的声卡,所以要在PCI中选择,我们在中能够看到有两个与INTEL有关的;代码:Intel/SiS/nVidia/AMD/ALiAC97Controller这个才是IntelAC97声卡的;Intel/SiS/nVidia/AMDMC97Modem(EXPERIMENTAL)这个是机器集成的INTEL猫的蜂鸣器的;由于我发现假如把猫的蜂鸣器的驱动也选上,可能造成两个冲突。所以只能选上面的那个;我们再回到OpenSoundSystem->中看看,与我用的声卡是不是有关的?代码:1.OpenSoundSystem(DEPRECATED)2.3.IntelICH(i8xx)audiosupport4.5.OSSsoundmodules6.7.LoopbackMIDIdevicesupport8.9.MicrosoftSoundSystemsupport复制代码我们可以以看到OpenSoundSystem中也有好多的声卡驱动,大家根据前面的lspci-v来选择吧。3对于操作系统所采用的文件系统的支持要编入内核,最好不要编成模块;重要比方我的Fedoracore4.0所采用的文件系统用的是ext3,所以我要把它直接编入内核;好处是不受模块丢失或者损坏而不能启动系统;而有时您把系统所采用的文件系统编译成模块,出现VFS错误,也有这方面的事,可能是您没有把ext3参加到相应的加载模块的配置文件中,所以我们为了减少费事,把风险降到最低,还是要直接置入内模的好;代码:1.Filesystems->2.Ext3journallingfilesystemsupport3.*Ext3extendedattributes4.*Ext3POSIXAccessControlLists5.*Ext3SecurityLabels复制代码假如您还有其它的硬盘分区要读取,比方是reiserfs、ext2、fat、fat32、ntfs等,这样的能够编成模块来支持;再举一例:假如您的的操作系统用的是reiserfs的文件系统,当然就要把reiserfs的直接编入内核,其它的能够编成模块来支持了;4对于硬盘及RAID的支持,要直接编入内核;比方ATA、SATA、SCSI及RAID的支持直接内核支持;有时编完内核后,启动时不能识别硬盘和RAID,大多事情出在这里;Slackware中在这方面有的是模块支持,我们能够把它由模块M改成内核*来支持;假如您不明白,就按默认进行;SATA的硬盘的支持除了选中SATA的支持、IDE设备的支持以外,还要选中SCSI的支持;5对于咱们所没有的设备,能够在内核中不选,熟能生巧罢了;比方我没有ISDN设备,所以就把ISDN去掉;代码:1.ISDNsubsystem->2.Linuxtelephonysupport复制代码假如您没有1394的设备,当然能够把1394的支持也去掉;等等。假如您有USB的设备,要把USB方面好好看看;比方大家常用的移动硬盘;USB猫等,还有扫描仪等;内核配置就讲这么多吧,过多了,我也讲不清楚,水平有限啊;配置好后先要保存1.SaveConfigurationtoanAlternateFile复制代码出来一个1.Enterafilenametowhichthisconfiguration,shouldbesavedasanalternate.Leaveblanktoabort.2.3.config复制代码按回车就行了,这样就保存住了;然后退出Exit,这时也会出现保存;假如你想把.config保存起来,能够再复制一份到安全一点的目录,以备后用;五、编译内核;代码:1.rootlocalhostlinux-2.6.12.3#make2.3.rootlocalhostlinux-2.6.12.3#makemodules_install复制代码这样就编译好了,并把模块也安装在了/lib/modules目录中了,请看:代码:1.rootlocalhostlinux-2.6.12.3#ls/lib/modules/2.3.2.6.11-1.1369_FC42.6.12.3复制代码六、安装内核及配置grub或lilo;1、复制bzImage等相关文件,并创立initrd文件;代码:1.rootlocalhostlinux-2.6.12.3#cparch/i386/boot/bzImage/boot/vmlinuz-2.6.12.32.rootlocalhostlinux-2.6.12.3#cpSystem.map/boot/System.map-2.6.12.33.rootlocalhostlinux-2.6.12.3#cd/boot4.rootlocalhostlinux-2.6.12.3#/sbin/mkinitrdinitrd-2.6.12.3.img2.6.12.3复制代码我们把编译出来的bzImage,拷入到/boot目录,拷贝成vmlinuz-2.6.12.3;并且用mkinitrd来创立imitrd-xxx.img文件,其中xxx为内核的版本号,是通过查看/lib/modules来版本来对应的,我们是编译出来的是2.6.12.3,所以就运行上面的命令创立,创立的出来的是initrd-2.6.12.3.img;不创立这个文件,有时是启动不起来的,比方提示VFS错误等;2、查看系统引导管理器grub或者lilo的配置文件。假如想要让新内核能让系统引导管理器grub和lilo的菜单上能看得到,必须改grub.conf或者lilo.conf,但我们必须保留老内核的在grub和lilo的启动菜单,毕竟我们编内核不能百分百的成功,对不对?安全第一吧;我只讲grub的,我没有lilo,也不会用。所以咱们还是GRUB吧,FC4系统引导管理器是GRUB,所以我们谈谈GRUB的设置;查看/etc/grub.conf;比方我的grub.conf的内容是这样的;代码:1.#grub.confgeneratedbyanaconda2.#3.#Notethatyoudonothavetorerungrubaftermakingchangestothisfile4.#NOTICE:Youdonothavea/bootpartition.Thismeansthat5.#allkernelandinitrdpathsarerelativeto/,eg.6.#root(hd0,7)7.#kernel/boot/vmlinuz-versionroroot=/dev/hda88.#initrd/boot/initrd-version.img9.#boot=/dev/hda10.default=011.timeout=512.#splashimage=(hd0,7)/boot/grub/splash.xpm.gz13.#hiddenmenu14.titleFedoraCore(2.6.11-1.1369_FC4)15.root(hd0,7)16.kernel/boot/vmlinuz-2.6.11-1.1369_FC4roroot=LABEL=/rhgbquiet17.initrd/boot/initrd-2.6.11-1.1369_FC4.img18.titleWinXP19.rootnoverify(hd0,0)20.chainloader+1复制代码我们要把老内核的启动保留下来,以防不测,我们只参加新的内核的启动;所以我加上这样一段;代码:1.titleFedoraCore(2.6.12.3)2.root(hd0,7)3.kernel/boot/vmlinuz-2.6.12.3roroot=LABEL=/rhgbquiet4.initrd/boot/initrd-2.6.12.3.img复制代码咱们再来看一下改正后的配置文件;代码:1.#grub.confgeneratedbyanaconda2.#3.#Notethatyoudonothavetorerungrubaftermakingchangestothisfile4.#NOTICE:Youdonothavea/bootpartition.Thismeansthat5.#allkernelandinitrdpathsarerelativeto/,eg.6.#root(hd0,7)7.#kernel/boot/vmlinuz-versionroroot=/dev/hda88.#initrd/boot/initrd-version.img9.#boot=/dev/hda10.default=011.timeout=5

    注意事项

    本文(Linux内核编译--编译方法.docx)为本站会员(安***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开