LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: pxbfeiniao

针对性编译内核果然能提高运行速度啊!

[复制链接]
发表于 2010-9-4 12:53:52 | 显示全部楼层
Post by xsam;2110981
我配置要1个小时……localconfig不可靠。我要一个一个选项的看。

Linux内核的配置文件确实挺复杂的,不过熟悉后也没什么难度。
在Arch官方内核上执行make localmodconfig不如直接执行make xconfig,采用kernel.org默认的配置文件更简洁。
要熟悉自己的硬件,比如ALSA里的声卡选自己正在用的,其余取消编译,没有无线网卡的取消一切和无线相关的支持。另外FAT32和NTFS支持还有ISO文件系统编译成模块,只在挂载U盘和光盘后才会调用到,平常就不会占用资源。这些主要针对模块优化,还有一些提速的选项就不讲了,那些对编译速度没影响。Arch官方的配置文件编译的模块太多,是为了支持广泛的硬件,自己也去编译上百款声卡的驱动模块太浪费时间了。

在家目录下建一个kernel26目录,放好各种自己要用的内核源码包、patch,比如我目前放的是kernel.org上的2.6.35源码+Arch官方的2.6.35.4补丁+BFS补丁,参考wiki写好PKGBUILD和kernel26.install。设置好后直接
makepkg -c
跟家人吃晚饭的功夫就编译好了。
回复 支持 反对

使用道具 举报

发表于 2010-9-4 12:57:42 | 显示全部楼层
我上个月(8月份)编译打了BFS的补丁的内核都不是有多少次了,最后搞了个ccache(不过感觉没有什么效果)


白开水隐士那个能让看以下你最后的PKGBUILD之类的东西不,我看下能不能结合aur中的kernel26-bfs弄一个只适用自己机器的东西出来。


顺便问下大家:有没有什么方法自动根据机器生成配置文件?
回复 支持 反对

使用道具 举报

发表于 2010-9-4 13:47:18 | 显示全部楼层
根据机器配置生成配置文件,还不很成熟
回复 支持 反对

使用道具 举报

发表于 2010-9-4 13:49:22 | 显示全部楼层
哈哈哈,今天星期六,晚上搞搞,很久没折腾过内核了
回复 支持 反对

使用道具 举报

发表于 2010-9-4 14:04:32 | 显示全部楼层
Post by jqxl0205;2111026
我上个月(8月份)编译打了BFS的补丁的内核都不是有多少次了,最后搞了个ccache(不过感觉没有什么效果)


白开水隐士那个能让看以下你最后的PKGBUILD之类的东西不,我看下能不能结合aur中的kernel26-bfs弄一个只适用自己机器的东西出来。


顺便问下大家:有没有什么方法自动根据机器生成配置文件?
我是先配置好.config,再把下面的PKGBUILD和kernel26.install扔进linux-2.6.35目录中去的。
pkgname=kernel26-zk
basekernel=2.6.35
pkgver=2.6.35.4
pkgrel=2
pkgdesc="The Linux Kernel and modules"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.kernel.org"
depends=('module-init-tools' 'mkinitcpio')
provides=(kernel26)
install=kernel26.install

build() {
  LOCAL_VERSION="$(grep "CONFIG_LOCALVERSION=" $startdir/.config | sed 's/.*"\(.*\)"/\1/')"

  cd ..
  make || return 1
  mkdir -p $startdir/pkg/{lib/modules,boot}
  make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1

  # There's no separation of firmware depending on kernel version -
  # comment this line if you intend on using the built kernel exclusively,
  # otherwise there'll be file conflicts with the existing kernel
  rm -rf $startdir/pkg/lib/firmware

  install -Dm644 "System.map" "$startdir/pkg/boot/System.map26$LOCAL_VERSION"
  install -Dm644 "arch/x86/boot/bzImage" "$startdir/pkg/boot/vmlinuz26$LOCAL_VERSION"

  # Change the version strings in kernel26.install
  sed -i \
        -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=\"$basekernel\"/" \
        -e "s/LOCAL_VERSION=.*/LOCAL_VERSION=\"$LOCAL_VERSION\"/" \
        $startdir/kernel26.install
}
kernel26.install
KERNEL_VERSION="2.6.35"
LOCAL_VERSION="-zk"

post_install () {
  echo ">>> Updating module dependencies..."
  /sbin/depmod -A -v ${KERNEL_VERSION}${LOCAL_VERSION}
}

post_upgrade() {
  echo ">>> Updating module dependencies..."
  /sbin/depmod -A -v ${KERNEL_VERSION}${LOCAL_VERSION}
}
回复 支持 反对

使用道具 举报

发表于 2010-9-4 14:08:48 | 显示全部楼层
http://wiki.archlinux.org/index. ... ilation_From_Source
其实也是抄的wiki上自己改的。
-zk是我自己设的LOCALVERSION,在内核的配置文件中改,PKGBUILD和kernel26.install中要一致,这个用于标示内核以免文件重复。
另外我的kernel26.install中没有用mkinitcpio生成ramdisk,因为重要的模块都编译进内核,没必要使用ramdisk了。
回复 支持 反对

使用道具 举报

发表于 2010-9-4 18:30:08 | 显示全部楼层
在LinuxToy上面看到的消息,BFS时代可能快要来临了。这样的话我就不用一个月编译这么多次的内核了 &
回复 支持 反对

使用道具 举报

发表于 2010-9-4 18:50:11 | 显示全部楼层
Post by jqxl0205;2111064
在LinuxToy上面看到的消息,BFS时代可能快要来临了。这样的话我就不用一个月编译这么多次的内核了 &


bfs稳定了吗?
回复 支持 反对

使用道具 举报

发表于 2010-9-4 19:19:03 | 显示全部楼层
Post by 难免有错;2111067
bfs稳定了吗?


还行,近一个多月一直在用。
回复 支持 反对

使用道具 举报

发表于 2010-9-7 09:52:41 | 显示全部楼层
Post by jarryson;2111018
我这里只有加上BFS补丁才稍稍有点感觉。。。当然也没有测试数据。。也没说解压同样一个压缩包。。解压的时候1分四十多秒和两分钟有明显的感觉吗

对了,我用OSS于是将内核中整个有关声音的部分都去掉了,很爽。。还有什么蓝牙红外都不要。

于是现在模块只有1156个。


OSS 比 alsa 好吗??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表