• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

编译核心的方法

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网
  编辑好核心设定档之后,再来就是重头戏喽!!
  现在您可以开始来编译战死无数脑细胞所得来的战利品了,不过在编译之前,可能还得再奉献一些脑细胞来注意一些事项 ^_^
  不同时期的版本提供了不同的编译方法,请您务必留心了!!
  请先切换身份为 root
  如果您使用的版本是 4.0 (不含) 以前的版本;或者是使用 RELEASE 路线的版本,而且 /usr/src 目录中只有 sys/ 这个子目录,那么您一定得用这种方式来编译安装您的核心︰
  shell# cd /usr/src/sys/i386/confshell# /usr/sbin/config MYKERNELshell# cd ../../compile/MYKERNELshell# make dependshell# makeshell# make installshell# make clean
  ·config
  检查核心设定文件是否有语法上的错误,如果没有就会在 /usr/src/sys/compile 建立 MYKERNEL/ 子目录,并将所需的原始程序代码覆制到 MYKERNEL/ 此目录下,准备好提供编译工作的环境
  ·make depend
  检查所需的档案是否都存在
  ·make
  开始编译核心。编译好之后的核心档名为 kernel,并存放于 /usr/src/sys/compile/MYKERNEL/ 目录下
  ·make install
  安装编译好的核心与模块。
  将 /modules 目录更名为 /modules.old
  将编译好的模块安装到 /modules 目录中
  将 /kernel 核心档更名为 /kernel.old
  将编译好的核心档安装到 /kernel
  ·make clean
  清除 /usr/src/sys/compile/MYKERNEL/ 目录下的所有档案
  config 指令所产生的档案不会清除。
  相关 make 的指令可以用 shell# make depend all install clean 来合而为一,这样就不用待在计算机旁等着下达下一个指令了!!
  
  如果您是 4 字头的恶魔族 (FreeBSD 4.x),你要用底下的方法来编译核心︰
  shell# cd /usr/srcVer: 4.2 (不含) 以后的版本shell# make buildkernel KERNCONF=MYKERNELshell# make installkernel KERNCONF=MYKERNELVer: 4.2 (含) 以前的版本shell# make buildkernel KERNEL=MYKERNELshell# make installkernel KERNEL=MYKERNEL
  ·make buildkernel KERNCONF=MYKERNEL
  这个指令相等于先做 config 再做 make clean 然后执行 make depend
  没有问题后就执行 make 来编译核心与模块
  ·make installkernel KERNCONF=MYKERNEL
  这个指令相等于执行 make install 指令
  其实这两个指令就是 make kernel KERNCONF=MYKERNEL 的拆开版。也就是说,如果您直接下达 make kernel KERNCONF=MYKERNEL 指令时,就会自动为您编译核心与模块,且安装它们就定位了。
  如果您觉得要打这么长串的指令很麻烦的话,您可以在 /etc/make.conf 档案中加入 KERNCONF=MYKERNEL 的设定,就可以只下达 make kernel 指令。
  如果您管理多部使用相同版本但配备不同的机器,您可以将所有的核心设定文件在执行速度较快的机器上进行编译,然后再将各机器的核心移过去安装。您可以同时编译它们,只要在 /etc/make.conf 中加入如下的设定即可。
  # /etc/make.conf file# --- 省略 ---KERNCONF=MYKERNEL1 MYKERNEL2 MYKERNEL3 MYKERNEL4# --- 省略 ---# 各核心设定文件名称要以空白间隔开来哟
  觉得每次要编译核心时,明明就没有更新核心的原始码,偏偏编译时模块就要再编一次,实在是很讨人厌,尤其是在速度特别慢的机器时,更是有想按下 Ctrl+C 的冲动 @@
  其实您可以不用每次都编译模块的,用这个指令吧︰
   make -DNO_MODULES kernel KERNCONF=MYKERNEL
  您也可以在 /etc/make.conf 档案中加入如下设定 (二选一)︰
  # /etc/make.conf file# --- 省略 ---NO_MODULES=true # 编译 kernel 时不编译模块MODULES_WITH_WORLD=true # 只在 buildworld 时才编译模块# --- 省略 ---
  两种方法随您选用哦 ^_^
  如果您要将在 A 主机上编译好的核心覆制到 B 主机上更新现有核心的话,您需执行如下指令︰
   install -c -m 555 -o root -g wheel -fschg /path/kernel /kernel
  -c => 覆制档案
  -m => 档案权限
  -o => 档案拥有者
  -g => 工作群组
  -f => 档案旗号
  最后,再一次提醒您 ~ ~
  要记得切换到 root 的身份来做这些事哟还有,系统安全等级要设为「0」 哟,不然您一定会吃鳖的 ^_^
  最后,让我们来复习一下编译 kernel 的步骤︰
  1.安装核心原始程序代码
  2.编辑一个适合您系统的核心设定文件
  3.决定编译核心的方式
  4.编译新的核心并且安装
  5.重新开机测试新的核心
  
  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网