linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 内核研究 >
栏目导栏
资料搜索
热门文章
·linux-2.6内核升级文档
·Linux源代码的注释
·linux2.6内核编译方法详述
·Linux操作系统内核编译详解
·Linux内核结构详解
·Linux配置与编译内核
·Linux内核升级全攻略
·定时器
·FC5(Fedora Core5)下编译内核总
·Ubuntu 6.06 dapper 内核编译初
·Linux 内核编译详解
·Linux内核管理基础知识概述
·Linux2.4升级到2.6内核升级指南
·如何编译linux内核
·第八章 设备驱动
最新文章
·Linux Kernel 最新稳定版2.6.2
·Kernel硬件中断的初始化流程
·Linux内核bootsplash功能的实现
·Linux内核2.6.25全新发布加入众
·Debian Linux系统编译内核标准
·Linux2.4内核和2.6内核对Initr
·2.6.24内核编译 initrd-2.6.24
·Qtopia应用程序与Linux内核数据
·Linux 2.6内核中sysfs文件系统
·Linux2.6内核驱动移植参考
·Andrew Morton:Linux内核的执法
·Fedora 8 Linux系统的内核配置
·Kernel中的irq.c函数
·Linux核心出现权限扩张及记忆体
·Linux 2.6本地权限提升漏洞
Google
 
Ubuntu 6.06 dapper 内核编译初级指南
[ 作者:  加入时间:2006-08-09 11:09:13  来自:Linux联盟收集 ]
对于dapper ,下面介绍一种不通过打deb包编译安装,而是通过通用的方式编译安装新内核的方法:

我现在是以root登录。先打开新力得软件包管理器(Synapic Package Manager),确认 kernel-package、module、gcc、make等组件都已装好。

以下提到的软件包,如果在
新力得包管理器中找不到的,可以到 http://packages.ubuntulinux.org/dapper/ 去搜索安装。

www.kernel.org下载内核源码包,我现在下的内核版本是2.6.17.6

把源码包解压到 /usr/src/linux-2.6.17.6,然后在/usr/src/下创建一个名为linux的指向/usr/src/linux-2.6.17.6的链接(link)。

在shell中输入
root@localhost:~# cd ..
root@localhost:/# cd /usr/src/linux

root@localhost:/usr/src/linux# make mrproper

root@localhost:/usr/src/linux# make xconfig
或者make gconfig

此时qconf已经读取了默认配置,你也可以这样做:
在qconf中点File->Load 去读取其他的设置文件。
比如 /boot/config-2.6.15-23-686

下面在qconf中配置.config文件。选“Y”(打勾)就是把它编译到内核中,选“M”(打点)把它编译成模块,供内核动态调用。选“N”就是不安装。

关于每一选项的说明,qconf里都有,这里不再赘述。如果你没有把握,保持默认选项就行了。
下面只是简单提几项:

General setup
    Optimize for size (Look out for broken compilers!)    发烧友可以选Y以获得更小的内核。
   
Processor type and features
    Symmetric multi-processing support    如果你没有多线程处理器这个可以选N
    Processor family    根据你的CPU来选择。
    High Memory Support  1G以上内存的选“4GB”, 1G以下的,将来也不打算升级到1G的,选“off”.
   
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    PCI support
        PCI Express support  老式机器没有PCI-E设备的可以选N
    ISA support 较新的新机器没有ISA设备,可以选N
    MCA support    一般选N
    NatSemi SCx200 support  一般选N
    PCI Hotplug Support
        Support for PCI Hotplug (EXPERIMENTAL)     如果没有PCI热插拔设备,选N
   
Device Drivers   
    Block devices
        Packet writing on CD/DVD media
            Enable write caching (EXPERIMENTAL)  如果你有刻录机,想启用写缓存功能,选Y
   
    ATA/ATAPI/MFM/RLL support
        Include IDE/ATA-2 DISK support  如果你的/boot是放在IDE硬盘上,那么这里一定要选Y,选M都不行。否则启动时会出现“waiting for root file system”的提示而停滞不前。
    SCSI device support  如果有SATA硬盘,就选Y
        SCSI disk support  如果你的/boot放在SATA硬盘上,一定要选Y。   
    Character devices
        I2C support 一般可以选Y或者M   
    Graphics support    不建议把显卡驱动编译进内核。,选M,编译成模块方便日后升级驱动。
        Support for frame buffer devices
            VESA VGA graphics support    可以选Y
        Logo configuration
            Bootup logo    如果想看到Linux启动logo,选Y
    Sound 
        Sound card support  选Y, 除非你没有声卡

其他的驱动,酌情添加删除,根据机器配置删除不需要的驱动可以缩短编译时间。你可以在命令行下输如lspci或者dmesg查看硬件信息。

File systems
    CD-ROM/DVD Filesystems
        ISO 9660 CDROM file system support 一般选Y
    DOS/FAT/NT Filesystems
        VFAT (Windows-95) fs support    有FAT32分区就选Y吧
        NTFS file system support    有NTFS分区就选Y吧
            NTFS write support    如果想对 NTFS分区进行写操作,选Y
    Native Language Support
        Simplified Chinese charset (CP936, GB2312)        选Y或者M使读取FAT分区不会遇到中文乱码现象
       
       
设置完毕后,按一下保存按钮,无论原先载入的是哪个配置文件,
qconfig都将设置保存到 /usr/src/linux/.config 这个隐含文件。

下面输入make开始编译,这一过程大约需要60-90分钟
root@localhost:/usr/src/linux# make

安装内核
root@localhost:/usr/src/linux# make install

编译模块
root@localhost:/usr/src/linux# make modules

安装模块
root@localhost:/usr/src/linux# make modules_install

然后
root@localhost:/usr/src/linux# cd /
root@localhost:/usr/src/linux# /usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.17.6 2.6.17.6

如果有出错提示,可能是因为 initramfs-tools 没有装,先把它装上吧。

如果没有这一步骤,那么开机就会出现提示
……
initrd /initrd.img-2.6.17.6
Error 15: File not found

最后打开 /boot/grub/menu.lst
在 ## ## End Default Options ## 下面添加类似下面的两段

title        Ubuntu, kernel 2.6.17.6
root        (hd0,4)
kernel        /vmlinuz-2.6.17.6 root=/dev/hdd6
initrd        /initrd.img-2.6.17.6
savedefault
boot

title        Ubuntu, kernel 2.6.17.6 (recovery mode)
root        (hd0,4)
kernel        /vmlinuz-2.6.17.6 root=/dev/hdd6 ro single
initrd        /initrd.img-2.6.17.6
boot

注意 root和kernel字段要模仿menu.lst下面已有的内容写。
下面是 (hd0,4),那么你也写(hd0,4),下面写root=/dev/hdd6,你也写root=/dev/hdd6,只是内核的版本号改为现在编译的版本号。
然后把下面重复的savedefault删除。

重新启动计算机,在GRUB中选择新内核启动。如果启动失败,你可以重启选择老内核。

如果你的
NTFS file system support
NTFS write support
这两项都选了Y,但是开机认不出NTFS分区,那么可以尝试以下解决方案:

http://packages.ubuntu.com/dapper/admin/sysv-rc-conf 下载 sysv-rc-conf
双击下好的deb包安装,如果缺少其他的包,补装上。

以root权限在shell中输入
root@localhost:~# sysv-rc-conf

找到evms, 按空格把那一行的X全部清空。
输入q退出保存。
重启系统 Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息