Linux kernel module that acts as a proxy for inb/outb execution in Lockdown mode
Since this module is built against the Linux kernel, it requires the appropriate headers for the current kernel. This also means that it will need to be recompiled if the kernel is updated. Below is a list of steps for compiling and installing this module for the current kernel.
The commands to install the dependencies varies between distros. Below are instructions for some common distros.
After the dependencies are installed the source files can be downloaded and compiled.
git clone https://github.com/ruggedscience/io_proxy.gitmake
If everything goes well the module should be built and there should be an io_proxy.ko file in the current directory. The module can be loaded in the current state using sudo insmod io_proxy.ko. To verify the module successfully loaded run lsmod | grep io_proxy and see if it is listed. To remove the module run sudo rmmod io_proxy. This approach is good for testing but not ideal for long term use as the module can't be automatically loaded during boot.
To install the module into the default system module location run sudo make install. There may be some errors about SSL but this is normal.
For more information about signing the module see the Kernel Docs.
Once the module has been installed it can be loaded using sudo modprobe io_proxy. Again, this is temporary and won't persist between boots. To make it permenant run sudo echo "io_proxy" >> /etc/modules-load.d/io_proxy.conf or manually add io_proxy to the /etc/modules file.