关于 2.6 内核升级

发表于:2007-07-04来源:作者:点击数: 标签:
系统:slackware 10.1 kernel: 2.4.29 --- 2.6.11 step 1#mkdir /usr/src/ linux -2.6.11//新建一个2.6.11内核目录 #cp linux-2.6.11.tar.gz /usr/src/linux-2.6.11 #cd /usr/src/linux-2.6.11 step 2#bzip2 -d linux-2.6.11.tar.bz2 #tar -xvf linux-2.6.11

系统:slackware 10.1

kernel: 2.4.29 ---> 2.6.11

step 1  #mkdir /usr/src/linux-2.6.11//新建一个2.6.11内核目录

           #cp linux-2.6.11.tar.gz /usr/src/linux-2.6.11

           #cd /usr/src/linux-2.6.11

step 2  #bzip2 -d linux-2.6.11.tar.bz2              

           #tar -xvf linux-2.6.11.tar//解压,如果下载的是.bz2文件

           #tar -xzvf linux-2.6.11tar.gz //如果所下载的是.tar.gz(.tgz)文件

step 3  #cd linux-2.6.11

           #make mrproper //第一次编译可省略

           #make menuconfig //配置内核,这一部分比较烦琐,而且……

           #make

           #make modules_install

           #make install 

           #cp System.map /boot/System.map-2.6.11 //可选 
           #cp .config /boot/config-2.6.11 //可选 
           # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.11
 

step 4 #vi lilo.conf

           增加如下代码:

           image = /boot/vmlinuz-2.6.11

           label = linux2.6.11

           read -only

           root = /dev/hdax ("x"表示/boot所在的分区)

          #lilo

step 5 #reboot

setup 6 后续问题的解决(比如网络,声卡,显示卡,USB,……)

附内核配置选项说明(来自网络,请慎重选择 :)

代码成熟度选项:

Code maturity level options  --->
  [*] Prompt for development and/or incomplete code/drivers
  [*] Select only drivers expected to compile cleanly
打开使用开发中、不完全的代码/驱动会让内核配置多出很多选项,由于我们需要使用一些正在开发中的功能,因此必需打开这一选项。
通用设置选项,

General setup  --->
 

()  Local version - append to kernel release
这里填入的是64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到。
  [*] Support for paging of anonymous memory (swap)
这是使用交换分区或者交换文件来做为虚拟内存的,当然要选上了。
  [*] System V IPC
表示系统5的Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来
  [*] POSIX Message Queues
这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上
  [*] BSD Process Aclearcase/" target="_blank" >ccounting
这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,建议你最好将它选上。
  [*] BSD Process Accounting version 3 file format
  [*] Sysctl support
这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议你最好将它选上
  [ ] Auditing support
审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用
  (15) Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核日志缓存的大小,12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB for x86 NUMAQ or IA-64,17 => 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、Sleep、Lid(我也不知道这是什么按钮)等按钮是否按下,并做相应的动作
  <*>   Video 集成在板上的显卡的ACPI支持,对有些板卡可能不起作用
  < >   Fan
  <*>   Processor
  <*>   Thermal Zone
  < >   ASUS/Medion Laptop Extras
  < >   IBM ThinkPad Laptop Extras
  < >   Toshiba Laptop Extras
  (0) Disable ACPI for systems before Jan 1st this year
  [ ] Debug Statements
  [*] Power Management Timer Support

APM (Advanced Power Management) BIOS Support  --->
  < > APM (Advanced Power Management) BIOS support
高级电源管理的支持,一般来说笔记本应该选上,台式机可以不选。
  [ ]   Ignore USER SUSPEND
  [*]   Enable PM at boot time
  [ ]   Make CPU Idle calls when idle
  [ ]   Enable console blanking using APM
  [ ]   RTC stores time in GMT 按Unix的标准,硬件的时钟应该设为格林威治时间
  [ ]   Allow interrupts during APM BIOS calls
  [*]   Use real mode APM BIOS call to power off

[*] CPU Frequency scaling
这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
[ ]   Enable CPUfreq debugging
< >   /proc/cpufreq interface (deprecated)
      Default CPUFreq governor (performance)  --->
---   'performance' governor
<*>   'powersave' governor
<*>   'userspace' governor for userspace frequency scaling
[ ]     /proc/sys/cpu/ interface (2.4. / OLD)
<*>   'ondemand' cpufreq policy governor自动调节主频
<*>   CPU frequency table helpers 多数的CPU需要这一项来调节主频
<*> ACPI Processor P-States driver 报告处理器的状态
< > AMD Mobile K6-2/K6-3 PowerNow!
< > AMD Mobile Athlon/Duron PowerNow!
< > AMD Opteron/Athlon64 PowerNow!
< > Cyrix MediaGX/NatSemi Geode Suspend Modulation
<*> Intel Enhanced SpeedStep Intel的变频技术支持
[ ]   Use ACPI tables to decode valid frequency/voltage pairs
---   Built-in tables for Banias CPUs
< > Intel Speedstep on ICH-M chipsets (ioport interface)
< > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
< > Intel Pentium 4 clock modulation
< > nVidia nForce2 FSB changing
< > Transmeta LongRun
< > VIA Cyrix III Longhaul
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated)
[ ] Relaxed speedstep capability checks

总线类型:
[*] PCI support
      PCI access mode (Any)  --->强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备。
[ ] Message Signaled Interrupts (MSI and MSI-X)
[ ] Legacy /proc/pci interface
[ ] PCI device name database
[ ] ISA support
[*]   EISA support
[*]     Vesa Local Bus priming
[*]     Generic PCI/EISA bridge
[*]     EISA virtual root device
[ ]     EISA device name database
[ ] MCA support
< > NatSemi SCx200 support
    PCCARD (PCMCIA/CardBus) support  --->
    PCI Hotplug Support  --->

PCCARD (PCMCIA/CardBus) support  --->一般只有笔记本电脑上才会有PCMCIA插槽,如果你是台式机的话,可以不选这一项,然后跳过这一部份。

PCI Hotplug Support  --->
  < > Support for PCI Hotplug (EXPERIMENTAL)
一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份。

可执行文件格式,
[*] Kernel support for ELF binaries
ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台
< > Kernel support for a.out and ECOFF binaries
<*> Kernel support for MISC binaries
此选项允许插入二进制的封装层到内核中,当使用Java、.NET、Python、Lisp等语言编写的程序时非常有用

硬件设备[相当复杂,看得偶头晕,大家针对自己的设备慎重选择(手边最好准备一本汉英字典:)如果想使用adsl,记得网络部分除了TCP/IP协议还得把ppp部分编译进内核,想当初偶就是把这个给忘了,郁闷了许久:)

文件系统,
<*> Second extended fs support
[*]   Ext2 extended attributes
[*]     Ext2 POSIX Access Control Lists
[*]     Ext2 Security Labels
<*> Ext3 journalling file system support
[*]   Ext3 extended attributes
[*]     Ext3 POSIX Access Control Lists
[*]     Ext3 Security Labels
[ ] JBD (ext3) debugging support
<*> Reiserfs support
[ ]   Enable reiserfs debug mode
[ ]   Stats in /proc/fs/reiserfs
[*]   ReiserFS extended attributes
[*]     ReiserFS POSIX Access Control Lists
[*]     ReiserFS Security Labels
JFS filesystem support
[*]   JFS POSIX Access Control Lists
[ ]   JFS debugging
[ ]   JFS statistics
XFS filesystem support
[*]   Realtime support (EXPERIMENTAL)
[*]   Quota support
[*]   Security Label support
[*]   POSIX ACL support
< > Minix fs support
< > ROM file system support
[*] Quota support
< >   Old quota format support
   Quota format v2 support
[*] Dnotify support
< > Kernel automounter support
< > Kernel automounter version 4 support (also supports v3)
    CD-ROM/DVD Filesystems  --->
    DOS/FAT/NT Filesystems  --->
    Pseudo filesystems  --->
    Miscellaneous filesystems  --->
    Network File Systems  --->
    Partition Types  --->
    Native Language Support  --->
    Profiling support  --->
    Kernel hacking  --->
    Security options --->
    Cryptographic options --->
    Library routines --->

NOTE:

1。如果你英文还可以的话,可以边选择,边看help,个人认为这是最好,最彻底的方法,好象目前 网络上还没一份较好的教程(也许有,偶找不到:)

2。对于有些选项不是很确定的时候,或者英文实在烂的时候(比如偶)help的最后一句基本上都是 “If you are no sure say no/y"这时候你知道该怎么做了吧:)

3。基于个人习惯,偶喜欢把大部分的选项编译进内核,你可以不用这么做,只是个人习惯。

4。以上文字基本来自于网络,我在自己的机器上基本没错(或者有错误,我没看出来),如果你照着做了,出了问题(比如mm跑了之类的)偶实在是无能为力,其实偶也很菜呀!!!

5。其实玩linux最重要的是要有一个百折不挠的心,不用太着急,

     For everything just for fun:)

原文转自:http://www.ltesting.net