m-a(8)


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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.