This is the command volk_modtool that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
volk_modtool - tailor VOLK modules
DESCRIPTION
The volk_modtool tool is installed along with VOLK as a way of helping to construct, add
to, and interogate the VOLK library or companion libraries.
volk_modtool is installed into $prefix/bin.
VOLK modtool enables creating standalone (out-of-tree) VOLK modules and provides a few
tools for sharing VOLK kernels between VOLK modules. If you need to design or work with
VOLK kernels away from the canonical VOLK library, this is the tool. If you need to
tailor your own VOLK library for whatever reason, this is the tool.
The canonical VOLK library installs a volk.h and a libvolk.so. Your own library will
install volk_$name.h and libvolk_$name.so. Ya Gronk? Good.
There isn't a substantial difference between the canonical VOLK module and any other VOLK
module. They're all peers. Any module created via VOLK modtool will come complete with a
default volk_modtool.cfg file associating the module with the base from which it came, its
distinctive $name and its destination (or path). These values (created from user input if
VOLK modtool runs without a user-supplied config file or a default config file) serve as
default values for some VOLK modtool actions. It's more or less intended for the user to
change directories to the top level of a created VOLK module and then run volk_modtool to
take advantage of the values stored in the default volk_modtool.cfg file.
Apart from creating new VOLK modules, VOLK modtool allows you to list the names of kernels
in other modules, list the names of kernels in the current module, add kernels from
another module into the current module, and remove kernels from the current module. When
moving kernels between modules, VOLK modtool does its best to keep the qa and profiling
code for those kernels intact. If the base has a test or a profiling call for some
kernel, those calls will follow the kernel when VOLK modtool adds that kernel. If QA or
profiling requires a puppet kernel, the puppet kernel will follow the original kernel when
VOLK modtool adds that original kernel. VOLK modtool respects puppets.
======================================================================
Installing a new VOLK Library:
Run the command "volk_modtool -i". This will ask you three questions:
name: // the name to give your VOLK library: volk_<name>
destination: // directory new source tree is built under -- must exists.
// It will create <directory>/volk_<name>
base: // the directory containing the original VOLK source code
This will build a new skeleton directory in the destination provided with the name
volk_<name>. It will contain the necessary structure to build:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/volk ../
make
sudo make install
Right now, the library is empty and contains no kernels. Kernels can be added from another
VOLK library using the '-a' option. If not specified, the kernel will be extracted from
the base VOLK directory. Using the '-b' allows us to specify another VOLK library to use
for this purpose.
volk_modtool -a -n 32fc_x2_conjugate_dot_prod_32fc
This will put the code for the new kernel into
<destination>/volk_<name>/kernels/volk_<name>/
Other kernels must be added by hand. See the following webpages for more information about
creating VOLK kernels:
http://gnuradio.org/doc/doxygen/volk_guide.html
http://gnuradio.org/redmine/projects/gnuradio/wiki/Volk
======================================================================
OPTIONS
Options for Adding and Removing Kernels:
-a, --add_kernel
Add kernel from existing VOLK module. Uses the base VOLK module
unless -b is used. Use -n to specify the kernel name.
Requires: -n.
Optional: -b
-A, --add_all_kernels
Add all kernels from existing VOLK module. Uses the base VOLK
module unless -b is used.
Optional: -b
-x, --remove_kernel
Remove kernel from module.
Required: -n.
Optional: -b
Options for Listing Kernels:
-l, --list
Lists all kernels available in the base VOLK module.
-k, --kernels
Lists all kernels in this VOLK module.
-r, --remote-list
Lists all kernels in another VOLK module that is specified
using the -b option.
Use volk_modtool online using onworks.net services