dkms | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff -Nurp dkms-2.0.19.orig/dkms dkms-2.0.19/dkms --- dkms-2.0.19.orig/dkms 2011-12-25 16:52:20.000000000 +0200 +++ dkms-2.0.19/dkms 2011-12-25 17:10:54.050287439 +0200 @@ -895,18 +895,24 @@ function prepare_kernel() else config_arch=$2 fi - # x86 - for config_type in desktop586 desktop netbook server xen-pvops; do - [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/x86/configs/$config_arch_defconfig-$config_type" + if [ "$1" == `uname -r` ] && [ -e "/proc/config.gz" ]; then + kernel_config="/proc/config.gz" + elif [ -e "/boot/config-$1" ]; then + kernel_config="/boot/config-$1" + else + # x86 + for config_type in desktop586 desktop netbook server xen-pvops; do + [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/x86/configs/$config_arch_defconfig-$config_type" + [ ! -e "$kernel_config" ] && kernel_config="" + done + # arm + for config_type in iop32x kirkwood versatile; do + [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig-$config_type" + [ ! -e "$kernel_config" ] && kernel_config="" + done + [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/configs/defconfig" [ ! -e "$kernel_config" ] && kernel_config="" - done - # arm - for config_type in iop32x kirkwood versatile; do - [ `echo "$1" | grep "$config_type"` ] && kernel_config="$kernel_source_dir/arch/$config_arch/defconfig-$config_type" - [ ! -e "$kernel_config" ] && kernel_config="" - done - [ -z "$kernel_config" ] && kernel_config="$kernel_source_dir/arch/$config_arch/configs/defconfig" - [ ! -e "$kernel_config" ] && kernel_config="" + fi fi elif [ -e /etc/redhat-release ] || [ -e /etc/fedora-release ]; then if [ -z "$kernel_config" ] && [ -d "$kernel_source_dir/configs" ]; then @@ -956,7 +962,11 @@ function prepare_kernel() if [ -n "$kernel_config" ]; then echo $"using $kernel_config" - cp -f "$kernel_config" .config + if file -b -i "$kernel_config" | grep -q "application/x-gzip"; then + zcat "$kernel_config" > .config + else + cp -f "$kernel_config" .config + fi elif [ -e .config ]; then echo $"using $kernel_source_dir/.config" echo $"(I hope this is the correct config for this kernel)" @@ -983,7 +993,11 @@ function prepare_kernel() if [ -n "$kernel_config" ]; then echo $"using $kernel_config" - cp -f "$kernel_config" .config + if file -b -i "$kernel_config" | grep -q "application/x-gzip"; then + zcat "$kernel_config" > .config + else + cp -f "$kernel_config" .config + fi elif [ -e .config ]; then echo $"using $kernel_source_dir/.config" echo $"(I hope this is the correct config for this kernel)"