Provided by: module-assistant_0.11.11_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)