LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 977|回复: 4

请教:我想通过ABS编译kernel26,但又想做到以下几点

[复制链接]
发表于 2005-3-22 07:20:21 | 显示全部楼层 |阅读模式
先把ABS上同步来的PKGBUILD贴出来吧。再跟一个帖子看着问。


  1. # $Id: PKGBUILD,v 1.43 2005/03/15 02:38:30 judd Exp $
  2. # Maintainer: judd <jvinet@zeroflux.org>
  3. pkgname=kernel26
  4. pkgver=2.6.11.3
  5. pkgrel=1
  6. pkgdesc="The Linux Kernel and modules (IDE support)"
  7. url="http://www.kernel.org"
  8. backup=('boot/kconfig26')
  9. depends=('module-init-tools')
  10. install=kernel26.install
  11. source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.3.tar.bz2 \
  12.   config logo_linux_clut224.ppm \
  13.   #http://www.acm.rpi.edu/~dilinger/patches/2.6.10/as2/patch-2.6.10-as2.gz \
  14.   http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.6.11/acpi-20050228-2.6.11.diff.bz2 \
  15.   http://ck.kolivas.org/patches/2.6/2.6.11/2.6.11-ck1/patches/nvidia_6111-6629_compat2.diff \
  16.   http://gaugusch.at/acpi-dsdt-initrd-patches/acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch)
  17. md5sums=('9328d85d07e4d02001e0e2ff13a8120d' '69a957616071eae6196db00a410b82db'\
  18.          '5a62bcc7e96601052c7405459b483826' '627ebe9d46c2b34a7b6783fae99c59de'\
  19.          '82488604906bbba37a412c78d7b5c5f0' '977bc6069e122e5f07b0311e094b5733')

  20. build() {
  21.   cd $startdir/src/linux-2.6.11.3
  22.   patch -Np1 -i ../acpi-20050228-2.6.11.diff || return 1
  23.   patch -Np1 -i ../nvidia_6111-6629_compat2.diff || return 1
  24.   patch -Np1 -i ../acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch || return 1
  25.   # various fixes by Andres Salomon
  26.   #patch -Np1 -i ../patch-$pkgver-as2 || return 1
  27.   # remove the -as2 tag
  28.   #sed -i 's|^EXTRAVERSION = .*$|EXTRAVERSION =|g' Makefile
  29.   # Arch logo!
  30.   cp ../logo_linux_clut224.ppm drivers/video/logo/
  31.   # get rid of the 'i' in i686
  32.   carch=`echo $CARCH | sed 's|i||'`
  33.   cat ../config | sed "s|#CARCH#|$carch|g" >./.config
  34.   # build the full kernel version to use in pathnames
  35.   . ./.config
  36.   _kernver="${pkgver}${CONFIG_LOCALVERSION}"
  37.   # load configuration
  38.   yes "" | make gconfig
  39.   # build!
  40.   make clean bzImage modules || return 1
  41.   mkdir -p $startdir/pkg/{lib/modules,boot}
  42.   make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
  43.   cp System.map $startdir/pkg/boot/System.map26
  44.   cp arch/i386/boot/bzImage $startdir/pkg/boot/vmlinuz26
  45.   install -D -m644 Makefile \
  46.     $startdir/pkg/usr/src/linux-${_kernver}/Makefile
  47.   install -D -m644 .config \
  48.     $startdir/pkg/usr/src/linux-${_kernver}/.config
  49.   install -D -m644 .config $startdir/pkg/boot/kconfig26
  50.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include
  51.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel
  52.   for i in acpi asm-generic asm-i386 config linux math-emu net pcmcia scsi video; do
  53.     cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/
  54.   done
  55.   # copy files necessary for later builds, like nvidia and vmware
  56.   cp -a scripts $startdir/pkg/usr/src/linux-${_kernver}
  57.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
  58.   cp arch/i386/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/
  59.   cp arch/i386/kernel/asm-offsets.s \
  60.     $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel/
  61.   # copy in Kconfig files
  62.   for i in `find . -name "Kconfig*"`; do
  63.     mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
  64.     cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
  65.   done
  66.   cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-i386 asm
  67.   chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}
  68.   cd $startdir/pkg/lib/modules/${_kernver} && \
  69.     (rm -f source build; ln -sf /usr/src/linux-${_kernver} build)
  70. }
复制代码
 楼主| 发表于 2005-3-22 07:28:34 | 显示全部楼层

请教:我想通过ABS编译kernel26,但又想做到以下几点

先把ABS上同步来的PKGBUILD贴出来吧。再跟一个帖子看着问。


  1. # $Id: PKGBUILD,v 1.43 2005/03/15 02:38:30 judd Exp $
  2. # Maintainer: judd <jvinet@zeroflux.org>
  3. pkgname=kernel26
  4. pkgver=2.6.11.3
  5. pkgrel=1
  6. pkgdesc="The Linux Kernel and modules (IDE support)"
  7. url="http://www.kernel.org"
  8. backup=('boot/kconfig26')
  9. depends=('module-init-tools')
  10. install=kernel26.install
  11. source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.3.tar.bz2 \
  12.   config logo_linux_clut224.ppm \
  13.   #http://www.acm.rpi.edu/~dilinger/patches/2.6.10/as2/patch-2.6.10-as2.gz \
  14.   http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.6.11/acpi-20050228-2.6.11.diff.bz2 \
  15.   http://ck.kolivas.org/patches/2.6/2.6.11/2.6.11-ck1/patches/nvidia_6111-6629_compat2.diff \
  16.   http://gaugusch.at/acpi-dsdt-initrd-patches/acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch)
  17. md5sums=('9328d85d07e4d02001e0e2ff13a8120d' '69a957616071eae6196db00a410b82db'\
  18.          '5a62bcc7e96601052c7405459b483826' '627ebe9d46c2b34a7b6783fae99c59de'\
  19.          '82488604906bbba37a412c78d7b5c5f0' '977bc6069e122e5f07b0311e094b5733')

  20. build() {
  21.   cd $startdir/src/linux-2.6.11.3
  22.   patch -Np1 -i ../acpi-20050228-2.6.11.diff || return 1
  23.   patch -Np1 -i ../nvidia_6111-6629_compat2.diff || return 1
  24.   patch -Np1 -i ../acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch || return 1
  25.   # various fixes by Andres Salomon
  26.   #patch -Np1 -i ../patch-$pkgver-as2 || return 1
  27.   # remove the -as2 tag
  28.   #sed -i 's|^EXTRAVERSION = .*$|EXTRAVERSION =|g' Makefile
  29.   # Arch logo!
  30.   cp ../logo_linux_clut224.ppm drivers/video/logo/
  31.   # get rid of the 'i' in i686
  32.   carch=`echo $CARCH | sed 's|i||'`
  33.   cat ../config | sed "s|#CARCH#|$carch|g" >./.config
  34.   # build the full kernel version to use in pathnames
  35.   . ./.config
  36.   _kernver="${pkgver}${CONFIG_LOCALVERSION}"
  37.   # load configuration
  38.   yes "" | make config
  39.   # build!
  40.   make clean bzImage modules || return 1
  41.   mkdir -p $startdir/pkg/{lib/modules,boot}
  42.   make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
  43.   cp System.map $startdir/pkg/boot/System.map26
  44.   cp arch/i386/boot/bzImage $startdir/pkg/boot/vmlinuz26
  45.   install -D -m644 Makefile \
  46.     $startdir/pkg/usr/src/linux-${_kernver}/Makefile
  47.   install -D -m644 .config \
  48.     $startdir/pkg/usr/src/linux-${_kernver}/.config
  49.   install -D -m644 .config $startdir/pkg/boot/kconfig26
  50.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include
  51.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel
  52.   for i in acpi asm-generic asm-i386 config linux math-emu net pcmcia scsi video; do
  53.     cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/
  54.   done
  55.   # copy files necessary for later builds, like nvidia and vmware
  56.   cp -a scripts $startdir/pkg/usr/src/linux-${_kernver}
  57.   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
  58.   cp arch/i386/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/
  59.   cp arch/i386/kernel/asm-offsets.s \
  60.     $startdir/pkg/usr/src/linux-${_kernver}/arch/i386/kernel/
  61.   # copy in Kconfig files
  62.   for i in `find . -name "Kconfig*"`; do
  63.     mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
  64.     cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
  65.   done
  66.   cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-i386 asm
  67.   chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}
  68.   cd $startdir/pkg/lib/modules/${_kernver} && \
  69.     (rm -f source build; ln -sf /usr/src/linux-${_kernver} build)
  70. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 07:35:56 | 显示全部楼层
不小心多提交了一个,tx-cary帮忙删了那个吧。
下面谈正事儿:

1、如果我想用其它版本的内核,比如2.6.10,除了要修改最上面的版本,下载地址,相应的md5,还有没有其它要注意的地方?

2、想打自己的补丁,除了在紧跟着的打补丁的段落加入相应的语句,还有没有其它要注意的地方?

3、这个东西我并不是能看得太懂,它是从上级目录直接拷贝了config文件做为.config,对吧?那我希望有自己的.config,不知道下面哪种方法可行
:1. 在makepkg打完补丁后中断makepkg过程,进入src目录,自己make gconfig得到.config,覆盖上级目录原有的config文件。
:2. 直接把PKGBUILD中的

  1. # load configuration
  2. yes "" | make config
复制代码

make config 换成 make gconfig
(这个我觉得可行的可能性不大……汗……)

4、除了PKGBUILD,其它文件用不用修改?

over
回复 支持 反对

使用道具 举报

发表于 2005-3-22 09:31:40 | 显示全部楼层
1、如果我想用其它版本的内核,比如2.6.10,除了要修改最上面的版本,下载地址,相应的md5,还有没有其它要注意的地方?

一般来说这样就可以了。
2、想打自己的补丁,除了在紧跟着的打补丁的段落加入相应的语句,还有没有其它要注意的地方?

没有问题,除非一些特殊的情况,如顺序等,可以看看kernel26-mm和kernel26-nitro的PKGBUILD。
3、这个东西我并不是能看得太懂,它是从上级目录直接拷贝了config文件做为.config,对吧?那我希望有自己的.config,不知道下面哪种方法可行

可以直接修改config文件,也可以先解压kernel源代码,使用make gconfig生成config文件后放入makepkg目录。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 11:01:48 | 显示全部楼层
多谢ganloo。
回复 支持 反对

使用道具 举报

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

本版积分规则

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