Ubuntu/Linux内核编译

来自站长百科
跳转至: 导航、​ 搜索

Ubuntu | Ubuntu安装 | Ubuntu使用 | Ubuntu编程

最初用Linux,我们需要满足的可能很小,后来,我们发现,我们也需要属于自己的Linux,我们想方设法优化自己的Linux,最后,到了要编译内核的地步。

软件下载[ ]

下载内核源代码http://www.kernel.org, 注意选择F版,即完整版,下载到哪里,用什么工具都无所谓。

安装必要的软件:

sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot
sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt

解压源代码[ ]

sudo tar xvfj linux-X.tar.bz2 -C /usr/src(之所以解压到这里,是为了以后安装驱动,X为版本号)

有人说要为源代码打上补丁,其实不用,因为不影响编译

下面,进入目录,开始编译:cd /usr/src/linux-X

内核配置[ ]

运用如下代码:

sudo make xconfig

UN shell.jpg

然后就显示这个配置窗口了,有点像Windows注册表编辑器

打钩的选项表示编译进内核(简称Y),空的选项表示不选择(简称N),圆点则表示编译成动态加载的模块(简称M)。Option菜单下的选项最好全选,以后会有用的。

具体配置请参考金步国先生翻译的资料:内核编译配置选项。网址:http://lamp.linux.gov.cn/Linux/kernel_options.html

对于硬件驱动部分,最好先

sudo aptitude install hardinfo

然后

sudo lshw

显示你的硬件以及所需的模块(模块表示为,有的时候没有显示模块,那就要注意),Ctrl+F在配置窗口里打开搜索,搜索你module=或driver=的值,选成Y。

注意下列选项:

  • 在“General setup”里面,有几项普通用户可以放心的去掉:

分别是:POSIX Message Queues 、Cpuset Support、Create deprecated sysfs files、Kernel->user space relay support (formerly relayfs)

  • 在“Block layer”里,假如没有2TB的硬盘,就去掉:Support for Large Block Devices 。
  • 在“ Timer frequency ”里,默认是250Hz,最好选择1000Hz以提高gui响应
  • 下列选项请慎重选择:
  1. Bus options (PCI, PCMCIA, EISA,MCA, ISA)
  2. PCI support
  3. PCI Express support 老式机器没有PCI-E设备的可以选N
  4. ISA support 较新的新机器没有ISA设备,可以选N
  5. MCA support 一般选N
  6. NatSemi SCx200 support 一般选N
  7. PCI Hotplug Support:Support for PCI Hotplug (EXPERIMENTAL) 如果没有PCI热插拔设备,选N
  8. ATA/ATAPI/MFM/RLL support:Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬盘上,那么这里一定要选Y,选M都不行。否则启动时会出现“waiting for root file system”的提示而停滞不前。
  9. SCSI device support 如果有SATA硬盘,就选Y
  10. SCSI disk support 如果你的/boot放在SATA硬盘上,一定要选Y。
  11. Character devices:I2C support 一般可以选Y或者M
  12. Graphics support 不建议把显卡驱动编译进内核。,选M,编译成模块方便日后升级驱动。
  13. VESA VGA graphics support 如果你不确定的话,选上吧。
  14. File systems
    1. CD-ROM/DVD Filesystems:ISO 9660 CDROM file system support 一般选Y
    2. DOS/FAT/NT Filesystems:VFAT (Windows-95) fs support 有FAT32分区就选Y吧
    3. NTFS file system support 有NTFS分区就选Y吧
    4. NTFS write support 如果想对 NTFS分区进行写操作,选Y

一切配置好后,点击保存(软盘图标),退出

开始编译内核[ ]

命令:

sudo make-kpkg clean fakeroot make-kpkg –initrd –append-to-version=xxx kernel_image

上条命令的xxx可以自己选择,但不能是大写。

下面的工作就是等待编译完成,时间长短要看你的配置和你的机器。

编译获得的软件包应该小于10 MB,大一点也没什么关系,如果超过20MB,那就有问题了

安装内核[ ]

  • 编译得到的安装包在上级目录,所以,我们应该是/usr/src
  • 鼠标点击包并且安装它
  • 安装完成后和老内核比较一下大小:ls -l /boot/

注意:此时千万不要删除老内核,因为出了问题还要找他呢

重新启动验证它,建议这个时候把显卡驱动下载下来改成简单文件名以便于一会安装.

如果第一次编译失败,此时就再GRUB里选择老内核,在“新立得软件包管理器”里删除刚刚安装的内核,干掉它,然后重复上述操作。

安装显卡驱动[ ]

如果英特尔显卡或者ATI显卡的驱动你已经编译进内核了,恭喜你,下面的内容无视

重启之后如果你的内核成功启动,但是不能启动图形界面,那就该安装显卡驱动了

在恢复模式(即GRUB里新内核的第二个选现)里选择root,执行下列内容:

cd /刚才下载的驱动程序的目录
sh 驱动程序文件名.run

如果显示没有找到源代码就:

sh 驱动程序文件名.run –kernel-source-path=你编译内核的目录

参考来源[ ]

Ubuntu使用手册导航

Ubuntu安装

U盘安装Ubuntu 10.04 | ubuntu 7.10 server、alternate版本的安装 | Ubuntu/XP下硬盘安装Ubuntu 9.04的方法 |Ubuntu 9.04 RC安装图辑 | Vmware虚拟机下Ubuntu 8.04安装

Ubuntu使用

Ubuntu+Apache+PHP+MySQL+Memcached | 搭建open offcie开发环境 | Apache SSL配置方法 | 清理磁盘空间 | 常用工具介绍

Ubuntu编程

Linux内核编译 | APT常用命令参数 | 配置Java+Eclipse+MyEclipse环境 | 配制Eclipse+PHP开发环境

Ubuntu常见问题

FAQ