OpenWrt can run inside a LXC container, using the same kernel as running on the host system. This can be useful for development as well as for VM hosting.
Consult your distro for up to date instructions of the setup of either HostOS functionality.
The following gives a rough idea on how to get things up and running. Before anything, install LXC on the host machine and make sure it supports running unprivileged containers. You will likely also need bridge functionality and/or additional underlying related subsystems ( macvlan etc. ) if used.
There is currently no template for OpenWrt available, so some manual steps are required.
.local/share/lxc/<vm-name>/configcontaining the following content:
lxc.include = /etc/lxc/default.conf lxc.include = /usr/share/lxc/config/common.conf lxc.include = /usr/share/lxc/config/userns.conf lxc.arch = linux64 # find your ids via # cat /etc/s*id|grep $USER lxc.idmap = u 0 100000 65536 lxc.idmap = g 0 100000 65536 lxc.mount.auto = proc:mixed sys:ro cgroup:mixed # lan interface lxc.net.0.type = veth # wan interface lxc.net.1.type = veth lxc.net.1.link = lxcbr0 # adapt <user> and <vm-name> lxc.rootfs.path = dir:/home/<user>/.local/share/lxc/<vm-name>/rootfs
chmodon the rootfs folder with the id you obtained earlier
lxc-start -n <vm-name>
lxc-attach -n <vm-name>