Provided by: module-assistant_0.11.9_all bug

NAME

       module-assistant - manage kernel modules packages

SYNOPSIS

       module-assistant [ -fihnqstv ] [ -k source/headers directory ] [ -l kernel versions ] { update | search |
       prepare | auto-install | list | list-available | list-installed | auto-unpacked | get | build | install |
       clean | purge | fakesource } [ pkg ... ]

       m-a ...

DESCRIPTION

       module-assistant is the command-line tool for handling module-source packages that have been prepared for
       the Debian distribution. It helps users to build and install module package(s) easily  for  one  or  more
       custom kernels.

       Unless  the  -h,  or  --help  option  is  given,  one of the commands below should be present to invoke a
       function explicitly. If no (or no valid) command is specified and the dialog tool is available, a  simple
       graphical user interface will pop up and guide you trough the available functionality.

       NOTE:  don't  even  think  about  using  some  random linux-source-x.y.z package contents (or linux-x.y.z
       tarball from the Internet) to specify the kernel source for your currently running kernel.  Don't!  Those
       source  is  not exactly what have been used to build the running kernel and its configuration most likely
       does not match yours. You need the configured kernel source directory or  at  least  the  derived  linux-
       headers-...  package  containing  the kernel configuration for the exact kernel version (complete version
       string).  If you do not understand  anything  of  the  above,  run  "m-a  prepare"  and/or  look  at  the
       description  and  contents  of  some  linux-headers-... package.  Please run the module-assistant prepare
       command once before you do anything else.

       For some packages, linux-headers (reduced source) is not enough. You  will  have  the  choice  to  run  a
       completely customized kernel, or to recreate the source that have been used to build the current one. The
       fakesource function may be useful, see below.

       In order to configure a kernel source properly, you  need  to  make  sure  that  the  file  version.h  is
       generated. To get it, configure the options as usual (make menuconfig etc.)  and run make dep (for kernel
       2.4.x) or make prepare (for newer ones).

COMMANDS

       Most commands require a specification of the package names that they should be applied on.  pkg can be  a
       single  word (package name) or multiple names. The word all will be expanded to the list of all available
       packages, the word alli to the list of currently installed (source) packages and the word  allu  will  be
       expanded to the list of packages that seem to be installed and unpacked in the base source directory.  If
       a source package with the given name is not available, module-assistant (abbreviated:  m-a)  will  extend
       the  package  name  with the popular suffixes like -kernel, -driver, -module, -source and combinations of
       them.

       Multiple commands can be specified in one invocation, eg. "m-a clean,get,build arla cdfs"  is  the  short
       way  to  write  "module-assistant  clean  arla-modules-source ; module-assistant clean cdfs-src ; module-
       assistant get arla-modules-source cdfs-src ; module-assistant  build  arla-modules-source  cdfs-src"  (or
       similar).

       If you do not like the dialog/whiptail GUI, feel free to use the -t switch to disable it.

       update update  is  used  to  resynchronize  the version index files from their sources. This happens with
              helper scripts provided by the packages. module-assistant has  a  default  built-in  list  of  the
              packages  that  it should look for but other packages can be registered by module-assistant if the
              maintainer adds the helper script.

       prepare
              Tries to determine the name of the required linux-headers package (either  the  one  matching  the
              currently running kernel or for the versions specified with -l), installs it if needed and creates
              the /usr/src/linux symlink if needed. Also installs the build-essential package to ensure  that  a
              sane compiler environment is established.

       fakesource
              Experimental  function  which  tries to determine the name of the required/compatible linux-source
              package,  installs  it,  modifies  the  Makefile  to  look  like  the  original  source  and  runs
              configuration  routines  as  needed.  Warning: DO NOT RELY ON THE RESULTING SOURCE. It may be very
              different from the original version.

       list | list-available | la
              list-available (abbreviated with  la)  presents  a  list  of  details  about  specified  packages,
              including  installed  version,  installable  versions  and  recently built binary packages. If the
              package names are omitted, shows all known packages. With -v, prints long package paths.

       list-installed | li
              Synonym to list alli. Acts like list-available  but  limits  the  list  to  the  installed  source
              packages.

       search Synonym  to  list  -s.  Looks for locally compiled packages first and (if none found) searches for
              alternative installation candidates with apt-cache.

       get    get followed by the package list installs the package source,  downloading  source  packages  when
              needed.

       build  build  is  followed  by  one  or  more source packages that should be built. It chooses the kernel
              source appropriate for the  currently  running  kernel  unless  different  directories  have  been
              specified.  If  the  build  fails,  look for the most recent log file in /var/cache/modass (or the
              user-specified location).

       install
              install is followed by one or more packages desired for installation. The last built  package  for
              the current running kernel is chosen.

       auto-install | a-i
              auto-install  is followed by one or more packages desired for installation. It will run prepare to
              configure your system to build packages, get the package source, try to build it for  the  current
              kernel  and install it.  You can use alli or allu shortcuts to select all installed modules source
              packages or only those that have been unpacked before (similar  to  the  make-kpkg  tool  normally
              does, looking in $MODULE_LOC)

       auto-build | a-b
              like auto-install but does not install the package immediately

       clean  clean clears the build directories of the kernel packages.

       purge  purge  clears  the  information  cache of a source package and removes all binary packages locally
              built from it (that module-assistant knows about). USE WITH CARE!

OPTIONS

       -t

       --text-mode
              Show pure build/install/update logs, no progress bars.

       -k

       --kernel-dir
              The kernel source directories to be used for builds. You can  specify  multiple  directories  with
              multiple  options  or  separated by commas or line separators (e.g using -k "`echo /usr/src/linux-
              headers-*`" ).  The kernel versions detected in this directories are automatically  added  to  the
              list of target kernel versions (see --kvers-list for details).

       -l

       --kvers-list
              List  of  kernel  version  strings  (as in KVERS) to act on. If omitted, the version string of the
              currently running kernel is inserted. If --kernel-dir specifies additional source directories, the
              kernel versions that belong to them will be inserted too.

              The  locations  of  the  kernel source (or headers) that belong to this kernel versions are either
              detected by a lookup in the "usual" locations on Linux systems, or they must be specified with the
              --kernel-dir option.

       -v

       --verbose
              Shows a bit more information, like full paths of the binary packages.

       -n

       --no-rebuild
              If a package that is to be generated does already exist in the target directory (maybe in on older
              version), -n prevents from building the package again.

              The default behaviour is to skip when exactly the same file (with the  same  filename)  is  to  be
              generated  as  the one that already exists, and the new filename could be detected before starting
              the build process (depends on the module package).

       -f

       --force
              Never look for target file (in another version) and force a build.  For the get command,  download
              a newer version of a package even if it is already installed.

       -u

       --userdir
              All  relevant environment variables with paths will be redirected to new directories under the one
              specified with this option.

       -i

       --non-inter
              When the package build was not successful,  just  continue  with  other  candidates.  By  default,
              module-assistant  will suggest to examine the build log. This option may also modify the behaviour
              of dpkg and apt-get to reduce the need for human interaction and  install  build  dependencies  as
              needed.

       -o

       --unpack-once
              Try  to not unpack twice. The option needs to be also specified when the package is being unpacked
              for the first time.  Experimental option, don't rely on it.

       -O

       --not-unpack
              Never unpack the source tarball. Useful after manual manipulation of module source.

       -q

       --quiet
              Suppress some of the noisy messages during the processing.

       -S

       --sudo-cmd
              A replacement command for superuser commands to be used instead of sudo.

       -s

       --apt-search
              See search command for details.

       -h

       --help Prints the usage overview.

ENVIRONMENT VARIABLES

       You can export the following environment variables to modify the behaviour of  the  build  scripts.  Some
       packages may ignore them or interpret them differently.

       KPKG_DEST_DIR
              KPKG_DEST_DIR  specify the target directory where the resulting Debian package should be installed
              into. However, many packages ignore this variable and install the file into  the  directory  above
              the kernel source directory or above the current directory.

       KERNELDIRS
              KERNELDIRS  specifies or extends the list of kernel source/header directory which m-a should build
              modules for. See /-k/-Option for details.

       SIGNCHANGES
              If SIGNCHANGES is set, .changes files will be  generated  (calling  kdist_image  rule  instead  of
              kdist) and debsign (or gpg or pgp) will be executed to sign the changes.

       KMAINT | DEBFULLNAME | DEBNAME
              Specifies the realname of the person building the package (interesting for .changes file only)

       KEMAIL | DEBEMAIL
              Specifies  the  email  address  of  the person building the package (interesting for .changes file
              only).

       MODULE_LOC
              A  different  location  for  the  (already  extracted)  module  source  directories.  Default   is
              /usr/src/modules.

       MA_VARDIR
              A  different  location  for  cached data, used by helper scripts from module-assistant. Default is
              /var/cache/modass.

       MA_APTCMD
              Command to download install packages, to use instead of the apt-get.

       MOD_SRCDIR
              A different location for module source tarballs. Default is /usr/src.

       ROOT_CMD
              Wrapper command to execute command as root. If you are not root, fakeroot is chosen automatically.
              This  variable  must be interpreted by individual packages so some of them may ignore it. However,
              you can still run module-assistant inside of the ROOT_CMD wrapper.

NON-ROOT USAGE

       module-assistant can work without being root. However you won't be able to use apt-get or dpkg to install
       the  packages,  and  you cannot write to /var/cache/modass on a normal Debian system. So the commands are
       get, install, auto-install and prepare are taboo for regular users.  However,  if  the  sudo  program  is
       installed,  it  will  be  invoked for apt-get and dpkg operations.  All remaining commands except of list
       require additional environment variables to move the target paths to locations  writable  for  the  user.
       They all can be trimmed to a certain location (a writable directory) using the -u switch.

FILES

       /usr/share/modass/packages/*
              List of helper scripts shipped with the module-assistant package.

       /usr/share/modass/overrides/*
              Helper scripts installed by other packages.

SEE ALSO

       make-kpkg(1), /usr/share/doc/module-assistant/README

BUGS

       See  the  module-assistant  bug  page  <URL:http://bugs.debian.org/src:module-assistant>.  If you wish to
       report a bug in module-assistant, please use the reportbug(1) command.

RETURN CODES

       0      Success

       1..249 various errors during the build process

       254    problem with permissions

       255    fixable error after user intervention

TODO

       Quicklist (fast output without details)

       Integration into APT and/or into the init system

       "Aggressive" debianisation using the templates set (to generate a package  with  guessed  name  from  any
       source that looks like being compatible with kernel 2.6 build system)

       Automatic transformation of kernel sources to generate .udeb packages

AUTHOR

       Module-Assistant was written by Eduard Bloch <blade@debian.org> for the Debian distribution.

                                                06 September 2003                            MODULE-ASSISTANT(8)