This is m0n0-inst-modules version 0.6, a utility to install modules in a m0n0wall image. Both iso images and raw compact flash / harddisk images are supported. Note however, that the upgrade firmware option of m0n0wall 1.1 only supports images up to 6MB in size (this no longer applies to m0n0wall 1.2). If you create bigger images, create an image with only the m0n0-bigfwupd module, upgrade to that image and then upgrade with the 'big' image. m0n0-inst-modules is invoked as follows: m0n0-inst-modules [-m mfsroot-size] source-img target-img module1 [module2] ... where: -m mfsroot-size optionally specifies the size, in 1k blocks, of the mfsroot file system inside the image. If specified, a new mfsroot file system is created with the specified size. Else the existing mfsroot is updated. Suffixes in the style of dd(1) are supported, so -m 10k specifies a size of 10k * 1k = 10M (the size in the m0n0wall distribution). source-img the original m0n0wall image target-img the new image to create moduleN the module(s) to install. More than one can be specified A module is a directory or a (optionally gzipped) tar file, containing the files to update the m0n0wall root file system with. Paths in the directory or tar file are relative to the root of the m0n0wall system. A module 'mymodule' would have the following structure: mymodule/ etc/ inc/ ext/ mymodule/ rc usr/ local/ www/ ext/ mymodule/ menu.inc A tar file should _not_ include the top directory 'mymodule'. It can be made by a command line like this: cd mymodule; tar cfz ../mymodule.tgz . In addition to this "simple" module format, an "advanced" module format is supported. In and advanced module, the files to install are in a subdirectory named "install-root" of the module. In the module directory, two exectuable files named "pre-install" and "post-install" may be present. If the file "pre-install" is present, is is executed prior to copying the files in 'install-root'. It may be used to populate that directory. If the file "post-install" is present, it is executed after the files have been copied to their destination. Both executables (well, scripts usually) are executed with a single argument: the full path to the (temporary) root of the m0n0wall system being built. Furthermore, they are called with their full path, so the module folder can be easily retrieved with something like `dirname $0`. Modules are copied to, or extracted to a temporary directory before being installed, so it's safe to modify the source module in pre- and post-install. An advanced module 'mymodule' would look like this: mymodule/ install-root/ etc/ inc/ ext/ mymodule/ rc usr/ local/ www/ ext/ mymodule/ menu.inc post-install pre-install Note that m0n0-inst-modules will only look for pre- and post-install if the directory "install-root" is present. You are free to leave it empty though. You could use your own installation mechanism by just having an empty "install-root" and a "post-install" script populates the monowall system. m0n0-inst-modules currently only runs on FreeBSD 4.x. In addition, the following utilities must be present perl (5.005_03 works for me) mkisofs (for updating iso images) vnconfig You must be root to run m0n0-inst-modules. Further information may be available at www.xs4all.nl/~fredmol/m0n0 Fred Mol fredmol@xs4all.nl