Hi,
I tried compiling and installing the linux kernel from ABS. I modified the
PKGBUILD file as mentioned in the wiki. The kernel compiles fine and the pkg
gets built with the name linux-custom as specified in the PKGBUILD. But when I
try to install it I get the following error:
$ sudo pacman -Uv linux-custom-3.2.2-1-x86_64.pkg.tar.xz
Root : /
Conf File : /etc/pacman.conf
DB Path : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/
Lock File : /var/lib/pacman/db.lck
Log File : /var/log/pacman.log
GPG Dir : /etc/pacman.d/gnupg/
Targets : linux-custom-3.2.2-1-x86_64.pkg.tar.xz
loading packages...
resolving dependencies...
looking for inter-conflicts...
:: linux-custom and linux are in conflict (kernel26). Remove linux? [y/N] N
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: linux-custom and linux are in conflict
I have attached the PKGBUILD.
--
Madhurya Kakati
() ascii ribbon campaign - against html e-mail
/ www.asciiribbon.org - against proprietary attachments
# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
pkgbase=linux
#pkgname=('linux' 'linux-headers' 'linux-docs') # Build stock -ARCH kernel
pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux}
_basekernel=3.2
pkgver=${_basekernel}.2
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.kernel.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
source=("http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz"
"http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
# the main kernel config files
'config' 'config.x86_64'
# standard config files for mkinitcpio ramdisk
"${pkgname}.preset"
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
'i915-gpu-finish.patch')
md5sums=('364066fa18767ec0ae5f4e4abcf9dc51'
'5e53edbf75fcaa3a8d1697f3a053102d'
'cbd469a1ba0bc8caa765caa42d429ea9'
'875b121a32a619e0ee262c541f330427'
'eb14dcfd80c00852ef81ded6e826826a'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
'4cd79aa147825837dc8bc9f6b736c0a0')
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
# fix FS#27883
# drm/i915: Only clear the GPU domains upon a successful finish
patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
# Some chips detect a ghost TV output
# mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
# Arch Linux bug report: FS#19234
#
# It is unclear why this patch wasn't merged upstream, it was accepted,
# then dropped because the reasoning was unclear. However, it is clearly
# needed.
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config
else
cat "${srcdir}/config" > ./.config
fi
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="${_ kernelname}"|g" ./.config
fi
# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|1 -${pkgrel}|" Makefile
# get kernel version
make prepare
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
####################
# stop here
# this is useful to configure the kernel
#msg "Stopping build"
#return 1
####################
yes "" | make config
# build!
make -j8 bzImage modules
}
package_linux-custom() {
pkgdesc="The Linux Kernel and modules"
groups=('base')
depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16' 'mkinitcpio>=0.7')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26')
conflicts=('kernel26')
replaces=('kernel26')
backup=("etc/mkinitcpio.d/${pkgname}.preset")
install=${pkgname}.install
cd "${srcdir}/linux-${_basekernel}"
KARCH=x86
# get kernel version
_kernver="$(make kernelrelease)"
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
make INSTALL_MOD_PATH="${pkgdir}" modules_install
cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgname}"
# install fallback mkinitcpio.conf file and preset file for kernel
install -D -m644 "${srcdir}/${pkgname}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
# set correct depmod command for install
sed
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g"
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g"
-i "${startdir}/${pkgname}.install"
sed
-e "s|ALL_kver=.*|ALL_kver="/boot/vmlinuz-${pkgname}"|g"
-e "s|default_image=.*|default_image="/boot/initramfs-${pkgname}.img"|g"
-e "s|fallback_image=.*|fallback_image="/boot/initramfs-${pkgname}-fallback.img"|g"
-i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
# remove build and source links
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
# remove the firmware
rm -rf "${pkgdir}/lib/firmware"
# gzip -9 all modules to save 100MB of space
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} ;
# make room for external modules
ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from post_install/upgrade
mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
}
package_linux-headers() {
pkgdesc="Header files and scripts for building modules for linux kernel"
provides=('kernel26-headers')
conflicts=('kernel26-headers')
replaces=('kernel26-headers')
mkdir -p "${pkgdir}/lib/modules/${_kernver}"
cd "${pkgdir}/lib/modules/${_kernver}"
ln -sf ../../../usr/src/linux-${_kernver} build
for i in acpi asm-generic config crypto drm generated linux math-emu
media net pcmcia scsi sound trace video xen; do
cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
done
# copy arch includes for external modules
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/x86"
cp -a arch/x86/include "${pkgdir}/usr/src/linux-${_kernver}/arch/x86/"
# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
# fix permissions on scripts dir
chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
done
# add xfs and shmem for aufs building
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs"
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm"
cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h"
# copy in Kconfig files
for i in `find . -name "Kconfig*"`; do
mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
done
package_linux-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel."
provides=('kernel26-docs')
conflicts=('kernel26-docs')
replaces=('kernel26-docs')
# remove a file already in linux package
rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
}
02-01-2012, 11:13 AM
Alexandre Ferrando
problem installing custom kernel
On 1 February 2012 13:06, Madhurya Kakati <mkakati2805@gmail.com> wrote:
> Hi,
> I tried compiling and installing the linux kernel from ABS. I modified the
> PKGBUILD file as mentioned in the wiki. The kernel compiles fine and the pkg
> gets built with the name linux-custom as specified in the PKGBUILD. But when I
> try to install it I get the following error:
>
> $ sudo pacman -Uv linux-custom-3.2.2-1-x86_64.pkg.tar.xz
> Root * * *: /
> Conf File : /etc/pacman.conf
> DB Path * : /var/lib/pacman/
> Cache Dirs: /var/cache/pacman/pkg/
> Lock File : /var/lib/pacman/db.lck
> Log File *: /var/log/pacman.log
> GPG Dir * : /etc/pacman.d/gnupg/
> Targets * : linux-custom-3.2.2-1-x86_64.pkg.tar.xz
> loading packages...
> resolving dependencies...
> looking for inter-conflicts...
> :: linux-custom and linux are in conflict (kernel26). Remove linux? [y/N] N
> error: unresolvable package conflicts detected
> error: failed to prepare transaction (conflicting dependencies)
> :: linux-custom and linux are in conflict
>
> I have attached the PKGBUILD.
> --
> Madhurya Kakati
>
> () *ascii ribbon campaign - against html e-mail
> / *www.asciiribbon.org * - against proprietary attachments
That's you problem in the PKGBUILD. Your custom kernel doesn't need to
provide, conflict nor replace kernel26, as that is what causes it to
conflict with the Arch one
02-01-2012, 11:24 AM
Madhurya Kakati
problem installing custom kernel
On 02/01/12 at 01:13pm, Alexandre Ferrando wrote:
> provides=('kernel26')
> conflicts=('kernel26')
> replaces=('kernel26')
>
> That's you problem in the PKGBUILD. Your custom kernel doesn't need to
> provide, conflict nor replace kernel26, as that is what causes it to
> conflict with the Arch one
OK. I read the wiki page once more and found out my mistake. Since my kernel
has already been compiled can I create the package without compiling it again?
--
Madhurya Kakati
() ascii ribbon campaign - against html e-mail
/ www.asciiribbon.org - against proprietary attachments
02-01-2012, 11:26 AM
Alexandre Ferrando
problem installing custom kernel
On 1 February 2012 13:24, Madhurya Kakati <mkakati2805@gmail.com> wrote:
> On 02/01/12 at 01:13pm, Alexandre Ferrando wrote:
>> provides=('kernel26')
>> *conflicts=('kernel26')
>> *replaces=('kernel26')
>>
>> That's you problem in the PKGBUILD. Your custom kernel doesn't need to
>> provide, conflict nor replace kernel26, as that is what causes it to
>> conflict with the Arch one
>
> OK. I read the wiki page once more and found out my mistake. Since my kernel
> has already been compiled can I create the package without compiling it again?
> --
> Madhurya Kakati
>
> () *ascii ribbon campaign - against html e-mail
> / *www.asciiribbon.org * - against proprietary attachments
makepkg -R or makepkg --repackage
02-01-2012, 11:27 AM
Jesse Juhani Jaara
problem installing custom kernel
keskiviikko, 1. helmikuuta 2012 17:54:37 Madhurya Kakati kirjoitti:
> OK. I read the wiki page once more and found out my mistake. Since my kernel
> has already been compiled can I create the package without compiling it
> again?
That's you problem in the PKGBUILD. Your custom kernel doesn't need to
provide, conflict nor replace kernel26, as that is what causes it to
conflict with the Arch one
OK. I read the wiki page once more and found out my mistake. Since my kernel
has already been compiled can I create the package without compiling it again?
You can edit the .PKGINFO file directly that's within the .pkg.tar.xz. Also, you
should leave provides (even make it provides=('linux')) so that if you ever
want to remove the [core] kernel, you may do so.