专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Linux » linux内核编译:一个Linux爱好者的2.6.11内核编译过程 »正文

linux内核编译:一个Linux爱好者的2.6.11内核编译过程

来源: 发布时间:星期四, 2008年12月4日 浏览:157次 评论:0

  星期天呀,呵呵,10:30起床,好像有一点早,昨天晚上玩游戏玩到3点钟,好累呀。打开电脑,先玩一会游戏在说。11:00,不玩了,开始干正事了。先换到下去。本来想用虚拟机的,但是我做的ftp不能用,而且还可能好慢的。我的电脑是没有上网的,在我的2003下架了个ftp,想让虚拟机来访问,可是虚拟机和我的电脑连不上,好郁闷。
  
  1.安装module-init-tools-3.0.tar.gz:
  
  # tar -zxvf module-init-tools-3.0.tar.gz
  # cd module-init-tools-3.0
  # ./configure --prefix=/sbin
  # make
  # make install
  # ./generate-modprobe.conf /etc/modprobe.conf
  
  不知道为什么,我用module-init-tools-3.1时make出错。如果改用3.0的就没事了。
  
  2.安装modutils-2.4.25-8.9.i386.rpm:
  
  # rpm -Uvih modutils-2.4.25-8.9.i386.rpm
  对modutils进行升级。
  
  3.安装新内核:
  
  将新内核copy到/usr/src下,
  #tar xzvf -2.6.11.tar.gz -----解压缩.
  II. 将名为linux的符号链接删掉,这时旧版本内核的符号链接.
  #ln -s linux-2.6.11 linux ------建立linux-2.6.11的符号链接linux.
  
  4.设置内核.
  
  # cd /usr/src/linux
  # make mrproper -----删除不必要的文件和目录.
  
  #make config(基于文本的最为传统的配置界面,不推荐使用)
  
  #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
  
  #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
  
  #make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
  
  它们的目的是一样的,那就是生成一个.config文件
  
  这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。
  选择相应的配置时,有三种选择,它们分别代表的含义如下:
  Y--将该功能编译进内核
  N--不将该功能编译进内核
  M--将该功能编译成可以在需要时动态插入到内核中的模块
  如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
  
  附内核配置选项说明(这是我在网上找到的,还可以,有些也是不一样的,给你一个参考)
  
  代码成熟度选项:
  
  Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
  [*] Select _disibledevent=> 128 KB for S/390
  [*] Support for hot-pluggable devices
  是否支持热插拔的选项,肯定要选上
  [*] Kernel Userspace Events
  内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式,选上。
  [*] Kernel .config support
  将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置
  [*] Enable access to .config through /proc/config.gz
  [ ] Configure standard kernel features (for small systems) --->
  这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项,你也不用对它下面的子项操心了。
  --- Configure standard kernel features (for small systems)
  [ ] Load all symbols for debugging/kksymoops
  是否装载所有的调试符号表信息,如果你不需要对内核调试,不需要选择此项。
  [*] Enable futex support
  不选这个内核不一定能正确的运行使用glibc的程序,当然要选上
  [*] Enable eventpoll support
  不选这个内核将不支持事件轮循的系统调用,最好选上
  [*] Optimize for size
  这个选项使gcc使用-Os的参数而不是-O2的参数来优化编译,以获得更小尺寸的内核,建议选上。
  [*] Use full shmem filesystem
  除非你在很少的内存且不使用交换内存时,才不要选择这项
  (0) Function alignment
  (0) Label alignment
  (0) Loop alignment
  (0) Jump alignment
  
  可加载模块:
  Loadable module support --->
  [*] Enable loadable module support
  [*] Module unloading
  不选这个功能,加载的模块就不能卸载
  [ ] Forced module unloading
  [ ] Module versioning support (EXPERIMENTAL)
  [ ] Source checksum for all modules
  [*] Automatic kernel module loading
  
  处理器类型及特性:
  Processor type and features --->
  Subarchitecture Type (PC-compatible) --->
  Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
  [ ] Generic x86 support
  这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个
  [*] HPET Timer Support
  HPET是替代8254芯片的下一代时钟处理器。这里你可以的选上这一选项。如果硬件不支持的话,将仍使用8254时钟处理器
  [*] Symmetric multi-processing support
  对称多处理器支持,在单CPU的机器上,不选这个选项会更快一些。由于超线程技术,看起来是两颗CPU,因些要选上这个选项
  (1) Maximum number of CPUs (2-255) 支持的最大CPU数
  [ ] SMT (Hyperthreading) scheduler support
  [*] Preemptible Kernel
  这个选项能使应用程序即使内核在高负载时也很可靠,建议最好选上
  [*] Machine Check Exception
  这个选项能让CPU检测到系统故障时通知内核,一般我用组装的台式机会选这项。
  < > Toshiba Laptop support
  < > Dell laptop support
  < > /dev/cpu/microcode - Intel IA32 CPU microcode support
  < > /dev/cpu/*/msr - Model-specific register support
  < > /dev/cpu/*/cpuid - CPU information support
  Firmware Drivers --->
  < > BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)
  High Memory Support (4GB) --->
  [ ] Allocate 3rd-level pagetables from highmem
  [ ] Math emulation
  [*] MTRR (Memory Type Range Register) support
  [ ] Boot from EFI support (EXPERIMENTAL)
  [*] Enable kernel irq balancing
  [ ] Use register arguments (EXPERIMENTAL)
  
  电源管理:
  Power management options (ACPI, APM) --->
  [*] Power Management support
  [ ] Power Management Debug Support
  [ ] Software Suspend (EXPERIMENTAL)
  ACPI (Advanced Configuration and Power Interface) Support --->
  APM (Advanced Power Management) BIOS Support --->
  CPU Frequency scaling --->
  
  ACPI (Advanced Configuration and Power Interface) Support --->
  [*] ACPI Support
  这是一种电源管理方式,你可以看看你的BIOS是否支持。如果支持的话建议你选上这项
  [ ] Sleep States (EXPERIMENTAL)
  < > AC Adapter
  < > Battery
  <*> Button 捕获Power、S

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: