11da177e4SLinus Torvalds#!/bin/sh 21da177e4SLinus Torvalds# 34964451aSFrans Pop# builddeb 1.3 41da177e4SLinus Torvalds# Copyright 2003 Wichert Akkerman <wichert@wiggy.net> 51da177e4SLinus Torvalds# 61da177e4SLinus Torvalds# Simple script to generate a deb package for a Linux kernel. All the 74f66199bSFrans Pop# complexity of what to do with a kernel after it is installed or removed 81da177e4SLinus Torvalds# is left to other scripts and packages: they can install scripts in the 9fe233cb6SFrans Pop# /etc/kernel/{pre,post}{inst,rm}.d/ directories (or an alternative location 10fe233cb6SFrans Pop# specified in KDEB_HOOKDIR) that will be called on package install and 11fe233cb6SFrans Pop# removal. 121da177e4SLinus Torvalds 131da177e4SLinus Torvaldsset -e 141da177e4SLinus Torvalds 153e2ab256SFrans Popcreate_package() { 163e2ab256SFrans Pop local pname="$1" pdir="$2" 173e2ab256SFrans Pop 189461f666SFrans Pop cp debian/copyright "$pdir/usr/share/doc/$pname/" 191ab18486Smaximilian attems cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian" 201ab18486Smaximilian attems gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian" 21b59a1225SFEJES Jozsef sh -c "cd '$pdir'; find . -type f ! -path './DEBIAN/*' -printf '%P\0' \ 22b59a1225SFEJES Jozsef | xargs -r0 md5sum > DEBIAN/md5sums" 239461f666SFrans Pop 243e2ab256SFrans Pop # Fix ownership and permissions 253e2ab256SFrans Pop chown -R root:root "$pdir" 263e2ab256SFrans Pop chmod -R go-w "$pdir" 273e2ab256SFrans Pop 2810f26fa6SAsbjoern Sloth Toennesen # Attempt to find the correct Debian architecture 2910f26fa6SAsbjoern Sloth Toennesen local forcearch="" debarch="" 3010f26fa6SAsbjoern Sloth Toennesen case "$UTS_MACHINE" in 3110f26fa6SAsbjoern Sloth Toennesen i386|ia64|alpha) 3210f26fa6SAsbjoern Sloth Toennesen debarch="$UTS_MACHINE" ;; 3310f26fa6SAsbjoern Sloth Toennesen x86_64) 3410f26fa6SAsbjoern Sloth Toennesen debarch=amd64 ;; 3510f26fa6SAsbjoern Sloth Toennesen sparc*) 3610f26fa6SAsbjoern Sloth Toennesen debarch=sparc ;; 3710f26fa6SAsbjoern Sloth Toennesen s390*) 3810f26fa6SAsbjoern Sloth Toennesen debarch=s390 ;; 3910f26fa6SAsbjoern Sloth Toennesen ppc*) 4010f26fa6SAsbjoern Sloth Toennesen debarch=powerpc ;; 4110f26fa6SAsbjoern Sloth Toennesen parisc*) 4210f26fa6SAsbjoern Sloth Toennesen debarch=hppa ;; 4310f26fa6SAsbjoern Sloth Toennesen mips*) 44d2091767SAnisse Astier debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el) ;; 4510f26fa6SAsbjoern Sloth Toennesen arm*) 46d2091767SAnisse Astier debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el) ;; 4710f26fa6SAsbjoern Sloth Toennesen *) 4810f26fa6SAsbjoern Sloth Toennesen echo "" >&2 4910f26fa6SAsbjoern Sloth Toennesen echo "** ** ** WARNING ** ** **" >&2 5010f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5110f26fa6SAsbjoern Sloth Toennesen echo "Your architecture doesn't have it's equivalent" >&2 5210f26fa6SAsbjoern Sloth Toennesen echo "Debian userspace architecture defined!" >&2 5310f26fa6SAsbjoern Sloth Toennesen echo "Falling back to using your current userspace instead!" >&2 5410f26fa6SAsbjoern Sloth Toennesen echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 5510f26fa6SAsbjoern Sloth Toennesen echo "" >&2 5610f26fa6SAsbjoern Sloth Toennesen esac 5755f88eccSAsbjoern Sloth Toennesen if [ -n "$KBUILD_DEBARCH" ] ; then 5855f88eccSAsbjoern Sloth Toennesen debarch="$KBUILD_DEBARCH" 5955f88eccSAsbjoern Sloth Toennesen fi 6010f26fa6SAsbjoern Sloth Toennesen if [ -n "$debarch" ] ; then 6110f26fa6SAsbjoern Sloth Toennesen forcearch="-DArchitecture=$debarch" 6210f26fa6SAsbjoern Sloth Toennesen fi 6310f26fa6SAsbjoern Sloth Toennesen 643e2ab256SFrans Pop # Create the package 6510f26fa6SAsbjoern Sloth Toennesen dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir" 663e2ab256SFrans Pop dpkg --build "$pdir" .. 673e2ab256SFrans Pop} 683e2ab256SFrans Pop 691da177e4SLinus Torvalds# Some variables and settings used throughout the script 701da177e4SLinus Torvaldsversion=$KERNELRELEASE 714f66199bSFrans Poprevision=$(cat .version) 72c72c75dbSFrans Popif [ -n "$KDEB_PKGVERSION" ]; then 73c72c75dbSFrans Pop packageversion=$KDEB_PKGVERSION 74c72c75dbSFrans Popelse 75c72c75dbSFrans Pop packageversion=$version-$revision 76c72c75dbSFrans Popfi 771da177e4SLinus Torvaldstmpdir="$objtree/debian/tmp" 78bf1b3644SJonathan McDowellfwdir="$objtree/debian/fwtmp" 79ee81b786Smaximilian attemskernel_headers_dir="$objtree/debian/hdrtmp" 80ee81b786Smaximilian attemslibc_headers_dir="$objtree/debian/headertmp" 81810e8437SAnisse Astierdbg_dir="$objtree/debian/dbgtmp" 82f7a2c31fSmaximilian attemspackagename=linux-image-$version 83bf1b3644SJonathan McDowellfwpackagename=linux-firmware-image 84ee81b786Smaximilian attemskernel_headers_packagename=linux-headers-$version 85ee81b786Smaximilian attemslibc_headers_packagename=linux-libc-dev 86810e8437SAnisse Astierdbg_packagename=$packagename-dbg 87687c3dacSSam Ravnborg 884f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 89687c3dacSSam Ravnborg packagename=user-mode-linux-$version 90687c3dacSSam Ravnborgfi 911da177e4SLinus Torvalds 92810e8437SAnisse AstierBUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" 93810e8437SAnisse Astier 941da177e4SLinus Torvalds# Setup the directory structure 95810e8437SAnisse Astierrm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" 96e86c2412Smaximilian attemsmkdir -m 755 -p "$tmpdir/DEBIAN" 97e86c2412Smaximilian attemsmkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename" 98e86c2412Smaximilian attemsmkdir -m 755 -p "$fwdir/DEBIAN" 996607ddadSmaximilian attemsmkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename" 100ee81b786Smaximilian attemsmkdir -m 755 -p "$libc_headers_dir/DEBIAN" 101ee81b786Smaximilian attemsmkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" 102ee81b786Smaximilian attemsmkdir -m 755 -p "$kernel_headers_dir/DEBIAN" 103ee81b786Smaximilian attemsmkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" 104a47b6c61SJoerg Roedelmkdir -p "$kernel_headers_dir/lib/modules/$version/" 1054f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 1069461f666SFrans Pop mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" 107687c3dacSSam Ravnborgfi 108810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 109810e8437SAnisse Astier mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename" 110810e8437SAnisse Astier mkdir -m 755 -p "$dbg_dir/DEBIAN" 111810e8437SAnisse Astierfi 1121da177e4SLinus Torvalds 1131da177e4SLinus Torvalds# Build and install the kernel 1144f66199bSFrans Popif [ "$ARCH" = "um" ] ; then 115687c3dacSSam Ravnborg $MAKE linux 116687c3dacSSam Ravnborg cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" 117d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" 118687c3dacSSam Ravnborg gzip "$tmpdir/usr/share/doc/$packagename/config" 119687c3dacSSam Ravnborg cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version" 120687c3dacSSam Ravnborgelse 1211da177e4SLinus Torvalds cp System.map "$tmpdir/boot/System.map-$version" 122d2091767SAnisse Astier cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" 123a89b433bSFrans Pop # Not all arches include the boot path in KBUILD_IMAGE 124242c5ab0SGuillem Jover if [ -e $KBUILD_IMAGE ]; then 125242c5ab0SGuillem Jover cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version" 126242c5ab0SGuillem Jover else 127a89b433bSFrans Pop cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version" 128a89b433bSFrans Pop fi 129687c3dacSSam Ravnborgfi 1301da177e4SLinus Torvalds 131d2091767SAnisse Astierif grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 132dddcbb7cSJoerg Roedel INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install 133a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/build" 134a47b6c61SJoerg Roedel rm -f "$tmpdir/lib/modules/$version/source" 1354f66199bSFrans Pop if [ "$ARCH" = "um" ] ; then 136687c3dacSSam Ravnborg mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/" 137687c3dacSSam Ravnborg rmdir "$tmpdir/lib/modules/$version" 138687c3dacSSam Ravnborg fi 139810e8437SAnisse Astier if [ -n "$BUILD_DEBUG" ] ; then 140810e8437SAnisse Astier ( 141810e8437SAnisse Astier cd $tmpdir 142810e8437SAnisse Astier for module in $(find lib/modules/ -name *.ko); do 143810e8437SAnisse Astier mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module) 144810e8437SAnisse Astier # only keep debug symbols in the debug file 145810e8437SAnisse Astier objcopy --only-keep-debug $module $dbg_dir/usr/lib/debug/$module 146810e8437SAnisse Astier # strip original module from debug symbols 147810e8437SAnisse Astier objcopy --strip-debug $module 148810e8437SAnisse Astier # then add a link to those 149810e8437SAnisse Astier objcopy --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module 150810e8437SAnisse Astier done 151810e8437SAnisse Astier ) 152810e8437SAnisse Astier fi 1531da177e4SLinus Torvaldsfi 1541da177e4SLinus Torvalds 155d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 156dddcbb7cSJoerg Roedel $MAKE headers_check KBUILD_SRC= 157dddcbb7cSJoerg Roedel $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" 158d7d357bcSJoerg Roedelfi 159e6807785Smaximilian attems 1601da177e4SLinus Torvalds# Install the maintainer scripts 161fe233cb6SFrans Pop# Note: hook scripts under /etc/kernel are also executed by official Debian 162fe233cb6SFrans Pop# kernel packages, as well as kernel packages built using make-kpkg 163fe233cb6SFrans Popdebhookdir=${KDEB_HOOKDIR:-/etc/kernel} 1641da177e4SLinus Torvaldsfor script in postinst postrm preinst prerm ; do 165fe233cb6SFrans Pop mkdir -p "$tmpdir$debhookdir/$script.d" 1661da177e4SLinus Torvalds cat <<EOF > "$tmpdir/DEBIAN/$script" 1671da177e4SLinus Torvalds#!/bin/sh 1681da177e4SLinus Torvalds 1691da177e4SLinus Torvaldsset -e 1701da177e4SLinus Torvalds 1714964451aSFrans Pop# Pass maintainer script parameters to hook scripts 172241ad11fSmaximilian attemsexport DEB_MAINT_PARAMS="\$*" 1734964451aSFrans Pop 174fe233cb6SFrans Poptest -d $debhookdir/$script.d && run-parts --arg="$version" $debhookdir/$script.d 1751da177e4SLinus Torvaldsexit 0 1761da177e4SLinus TorvaldsEOF 1771da177e4SLinus Torvalds chmod 755 "$tmpdir/DEBIAN/$script" 1781da177e4SLinus Torvaldsdone 1791da177e4SLinus Torvalds 180edec611dSmaximilian attems# Try to determine maintainer and email values 181edec611dSmaximilian attemsif [ -n "$DEBEMAIL" ]; then 182edec611dSmaximilian attems email=$DEBEMAIL 183edec611dSmaximilian attemselif [ -n "$EMAIL" ]; then 184edec611dSmaximilian attems email=$EMAIL 185edec611dSmaximilian attemselse 186edec611dSmaximilian attems email=$(id -nu)@$(hostname -f) 187edec611dSmaximilian attemsfi 188edec611dSmaximilian attemsif [ -n "$DEBFULLNAME" ]; then 189edec611dSmaximilian attems name=$DEBFULLNAME 190edec611dSmaximilian attemselif [ -n "$NAME" ]; then 191edec611dSmaximilian attems name=$NAME 192edec611dSmaximilian attemselse 193edec611dSmaximilian attems name="Anonymous" 194edec611dSmaximilian attemsfi 195edec611dSmaximilian attemsmaintainer="$name <$email>" 196edec611dSmaximilian attems 1971da177e4SLinus Torvalds# Generate a simple changelog template 1981da177e4SLinus Torvaldscat <<EOF > debian/changelog 1994bf4cd49SFrans Poplinux-upstream ($packageversion) unstable; urgency=low 2001da177e4SLinus Torvalds 201a83ca277SFrans Pop * Custom built Linux kernel. 2021da177e4SLinus Torvalds 203edec611dSmaximilian attems -- $maintainer $(date -R) 2041da177e4SLinus TorvaldsEOF 2051da177e4SLinus Torvalds 2069461f666SFrans Pop# Generate copyright file 2079461f666SFrans Popcat <<EOF > debian/copyright 2089461f666SFrans PopThis is a packacked upstream version of the Linux kernel. 2099461f666SFrans Pop 2109461f666SFrans PopThe sources may be found at most Linux ftp sites, including: 2119461f666SFrans Popftp://ftp.kernel.org/pub/linux/kernel 2129461f666SFrans Pop 2139461f666SFrans PopCopyright: 1991 - 2009 Linus Torvalds and others. 2149461f666SFrans Pop 2159461f666SFrans PopThe git repository for mainline kernel development is at: 2169461f666SFrans Popgit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2179461f666SFrans Pop 2189461f666SFrans Pop This program is free software; you can redistribute it and/or modify 2199461f666SFrans Pop it under the terms of the GNU General Public License as published by 2209461f666SFrans Pop the Free Software Foundation; version 2 dated June, 1991. 2219461f666SFrans Pop 2229461f666SFrans PopOn Debian GNU/Linux systems, the complete text of the GNU General Public 2239461f666SFrans PopLicense version 2 can be found in \`/usr/share/common-licenses/GPL-2'. 2249461f666SFrans PopEOF 2259461f666SFrans Pop 2261da177e4SLinus Torvalds# Generate a control file 2271da177e4SLinus Torvaldscat <<EOF > debian/control 2284bf4cd49SFrans PopSource: linux-upstream 229aa42abedSRogério BritoSection: kernel 2301da177e4SLinus TorvaldsPriority: optional 231edec611dSmaximilian attemsMaintainer: $maintainer 2322d7204acSRogério BritoStandards-Version: 3.8.4 233ee6eed80SRogério BritoHomepage: http://www.kernel.org/ 2343e2ab256SFrans PopEOF 2353e2ab256SFrans Pop 2363e2ab256SFrans Popif [ "$ARCH" = "um" ]; then 2373e2ab256SFrans Pop cat <<EOF >> debian/control 2381da177e4SLinus Torvalds 239687c3dacSSam RavnborgPackage: $packagename 2408ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 2411da177e4SLinus TorvaldsArchitecture: any 242dc5962fdSSam RavnborgDescription: User Mode Linux kernel, version $version 243dc5962fdSSam Ravnborg User-mode Linux is a port of the Linux kernel to its own system call 244dc5962fdSSam Ravnborg interface. It provides a kind of virtual machine, which runs Linux 245dc5962fdSSam Ravnborg as a user process under another Linux kernel. This is useful for 246dc5962fdSSam Ravnborg kernel development, sandboxes, jails, experimentation, and 247dc5962fdSSam Ravnborg many other things. 248dc5962fdSSam Ravnborg . 2491da177e4SLinus Torvalds This package contains the Linux kernel, modules and corresponding other 250a83ca277SFrans Pop files, version: $version. 2511da177e4SLinus TorvaldsEOF 2521da177e4SLinus Torvalds 253dc5962fdSSam Ravnborgelse 2543e2ab256SFrans Pop cat <<EOF >> debian/control 255dc5962fdSSam Ravnborg 256dc5962fdSSam RavnborgPackage: $packagename 2578ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version 258bf1b3644SJonathan McDowellSuggests: $fwpackagename 259dc5962fdSSam RavnborgArchitecture: any 260dc5962fdSSam RavnborgDescription: Linux kernel, version $version 261dc5962fdSSam Ravnborg This package contains the Linux kernel, modules and corresponding other 262a83ca277SFrans Pop files, version: $version. 263dc5962fdSSam RavnborgEOF 2644f66199bSFrans Pop 265dc5962fdSSam Ravnborgfi 266dc5962fdSSam Ravnborg 267cd8d60a2STheodore Ts'o# Build header package 2685f011d71Smaximilian attems(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles") 2696c635224SBen Hutchings(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles") 270d2091767SAnisse Astier(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles") 271ee81b786Smaximilian attemsdestdir=$kernel_headers_dir/usr/src/linux-headers-$version 272ee81b786Smaximilian attemsmkdir -p "$destdir" 2736c635224SBen Hutchings(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) 2746c635224SBen Hutchings(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -) 275d2091767SAnisse Astier(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be 276a47b6c61SJoerg Roedelln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" 2776c635224SBen Hutchingsrm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" 278cd8d60a2STheodore Ts'oarch=$(dpkg --print-architecture) 279cd8d60a2STheodore Ts'o 280cd8d60a2STheodore Ts'ocat <<EOF >> debian/control 281cd8d60a2STheodore Ts'o 282ee81b786Smaximilian attemsPackage: $kernel_headers_packagename 283cd8d60a2STheodore Ts'oProvides: linux-headers, linux-headers-2.6 284cd8d60a2STheodore Ts'oArchitecture: $arch 285cd8d60a2STheodore Ts'oDescription: Linux kernel headers for $KERNELRELEASE on $arch 286cd8d60a2STheodore Ts'o This package provides kernel header files for $KERNELRELEASE on $arch 287cd8d60a2STheodore Ts'o . 288cd8d60a2STheodore Ts'o This is useful for people who need to build external modules 289cd8d60a2STheodore Ts'oEOF 290cd8d60a2STheodore Ts'o 291bf1b3644SJonathan McDowell# Do we have firmware? Move it out of the way and build it into a package. 292bf1b3644SJonathan McDowellif [ -e "$tmpdir/lib/firmware" ]; then 2936607ddadSmaximilian attems mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/" 2946607ddadSmaximilian attems rmdir "$tmpdir/lib/firmware" 295bf1b3644SJonathan McDowell 296bf1b3644SJonathan McDowell cat <<EOF >> debian/control 297bf1b3644SJonathan McDowell 298bf1b3644SJonathan McDowellPackage: $fwpackagename 299bf1b3644SJonathan McDowellArchitecture: all 300bf1b3644SJonathan McDowellDescription: Linux kernel firmware, version $version 301a83ca277SFrans Pop This package contains firmware from the Linux kernel, version $version. 302bf1b3644SJonathan McDowellEOF 303bf1b3644SJonathan McDowell 3043e2ab256SFrans Pop create_package "$fwpackagename" "$fwdir" 305bf1b3644SJonathan McDowellfi 306bf1b3644SJonathan McDowell 307e6807785Smaximilian attemscat <<EOF >> debian/control 308e6807785Smaximilian attems 309ee81b786Smaximilian attemsPackage: $libc_headers_packagename 310e6807785Smaximilian attemsSection: devel 311e6807785Smaximilian attemsProvides: linux-kernel-headers 312e6807785Smaximilian attemsArchitecture: any 313e6807785Smaximilian attemsDescription: Linux support headers for userspace development 314e6807785Smaximilian attems This package provides userspaces headers from the Linux kernel. These headers 315e6807785Smaximilian attems are used by the installed headers for GNU glibc and other system libraries. 316e6807785Smaximilian attemsEOF 317e6807785Smaximilian attems 318d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then 319d7d357bcSJoerg Roedel create_package "$kernel_headers_packagename" "$kernel_headers_dir" 320ee81b786Smaximilian attems create_package "$libc_headers_packagename" "$libc_headers_dir" 321d7d357bcSJoerg Roedelfi 322d7d357bcSJoerg Roedel 3233e2ab256SFrans Popcreate_package "$packagename" "$tmpdir" 3241da177e4SLinus Torvalds 325810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then 326810e8437SAnisse Astier # Build debug package 327810e8437SAnisse Astier # Different tools want the image in different locations 328810e8437SAnisse Astier # perf 329810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/ 330810e8437SAnisse Astier cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/ 331810e8437SAnisse Astier # systemtap 332810e8437SAnisse Astier mkdir -p $dbg_dir/usr/lib/debug/boot/ 333810e8437SAnisse Astier ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version 334810e8437SAnisse Astier # kdump-tools 335810e8437SAnisse Astier ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version 336810e8437SAnisse Astier 337810e8437SAnisse Astier cat <<EOF >> debian/control 338810e8437SAnisse Astier 339810e8437SAnisse AstierPackage: $dbg_packagename 340810e8437SAnisse AstierSection: debug 341810e8437SAnisse AstierProvides: linux-debug, linux-debug-$version 342810e8437SAnisse AstierArchitecture: any 343810e8437SAnisse AstierDescription: Linux kernel debugging symbols for $version 344810e8437SAnisse Astier This package will come in handy if you need to debug the kernel. It provides 345810e8437SAnisse Astier all the necessary debug symbols for the kernel and its modules. 346810e8437SAnisse AstierEOF 347810e8437SAnisse Astier 348810e8437SAnisse Astier create_package "$dbg_packagename" "$dbg_dir" 349810e8437SAnisse Astierfi 350810e8437SAnisse Astier 3511da177e4SLinus Torvaldsexit 0 352