gencmn - Linux


gencmn is a tool used for generating common code and files for the Linux kernel. It facilitates the creation of files like Makefile, Kconfig, and initialization code for new kernel modules.


gencmn [options] <target>


  • -m, –module-name: Specify the module name.
  • -v, –verbose: Enable verbose output.
  • -o, –output-dir: Set the output directory for generated files.
  • -f, –force-overwrite: Overwrite existing files without confirmation.
  • -h, –help: Display usage information.


Simple usage:

Create a new kernel module named "mymodule":

gencmn -m mymodule

Specifying output directory:

Generate files in a custom directory:

gencmn -m mymodule -o /path/to/mydir

Overwriting existing files:

Force overwriting any existing files:

gencmn -m mymodule -f

Common Issues

Incorrect module name:

If the module name is not valid or conflicts with existing modules, gencmn will report an error.

Missing dependencies:

Required dependencies like the kernel source package must be installed before using gencmn.


  • Ensure the module name conforms to kernel naming conventions.
  • Install necessary dependencies using the appropriate package manager.


with Kconfig:

Gencmn can generate Kconfig files for kernel modules:

gencmn -m mymodule --kconfig

with Makefile:

It can also create Makefile fragments:

gencmn -m mymodule --makefile

Related Commands

  • make: Build code using makefiles.
  • modprobe: Insert and remove kernel modules.
  • kconfig: Kernel configuration tool.
  • Kernel documentation: Official Linux kernel documentation.