On Sunday 22 October 2006 11:47, "Régis Décamps" <[EMAIL PROTECTED]> wrote 
about 'Re: [gentoo-user] asterisk zaptel-1.2.9.1 error':
> >   * Could not find a usable .config in the kernel source directory.
> >   * Please ensure that /usr/src/linux points to a configured set of
> > Linux sources.
> You should hava a backup of your linux-kernel configuration in /boot.
> use ls -al /usr/src/linux to check that the version of the kernel
> source is the same than the kernel image you use. In which case you
> can:
> ln -s /boot/Config-<version> /usr/src/linux/.config

Try the script below instead, it might not fix everything, but it's less 
hit-and-miss than manually searching for a configuration backup that you 
may not even have.

#!/bin/bash
if [ -h /usr/src/linux ]; then
  echo 'You have a /usr/src/linux symlink, good.'
  if [ "$(readlink /usr/src/linux)" == "linux-$(uname -r)" ]; then
     echo 'It points to your running kernel, also good.'
  else
     echo "But, it points to the wrong place.  I'll fix it."
     ln -snf "linux-$(uname -r)" /usr/src/linux || exit 127
  fi
elif [ -e /usr/src/linux ]; then
  echo 'You have a /usr/src/linux, but it is not a symlink.'
  echo "Your system is broken, but I can't automatically fix it."
  exit 1
else
  echo "You don't have a /usr/src/linux, let me make one for you."
  ln -snf "linux-$(uname -r)" /usr/src/linux || exit 127
fi

if [ -r /proc/config.gz ]; then
  echo 'You have a /proc/config.gz, good.'
else
  echo "You either don't have a /proc/config.gz or I can't read it."
  echo "Sorry, I can't access the configuration of your running kernel."
  exit 1
fi

if [ -r /usr/src/linux/.config ]; then
  echo 'You already have a readable /usr/src/linux/.config, hrm.'
elif [ -e /usr/src/linux/.config ]; then
  echo "Your /usr/src/linux/.config exists, but I can't read it."
  echo "There's probably a permissions problem somewhere."
  exit 1
else
  echo 'No /usr/src/linux/.config, using running config.'
  zcat /proc/config.gz > /usr/src/linux/.config || exit 127
  exit 0
fi

if zcat /proc/config.gz | diff /usr/src/linux/.config - ; then
  echo 'Your /usr/src/linux/.config and your running configuration agree.'
  echo "I can't believe you wasted my CPU cycles. ;)"
  exit 0
else
  echo -n 'Your /usr/src/linux/.config and your running configuration '
  echo -n 'are different.  You should build and install, as needed, this '
  echo -n 'new configuration.  After doing so, you should be able to '
  echo -n 'compile out-of-tree modules, but they will not be usable until '
  echo    'you boot into the newly configured kernel.'
  exit 1
fi

-- 
"If there's one thing we've established over the years,
it's that the vast majority of our users don't have the slightest
clue what's best for them in terms of package stability."
-- Gentoo Developer Ciaran McCreesh

Attachment: pgp8jVDRw99yT.pgp
Description: PGP signature

Reply via email to