This is an old revision of the document!
OpenWrt in LXC containers
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.
The following gives a rough idea on how to get thing up and running. Before anything, install LXC on the host machine and make sure it supports running unprivileged containers.
There is currently no template for OpenWrt available, so some manual steps are required.
- Unordered List ItemCreate the VM folder manually at
.local/share/lxc/<vm-name>/. - Download a snapshot rootfs of OpenWrt and unpack it to
.local/share/lxc/<vm-name>/rootfs - Create a
.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
- run
chmodon the rootfs folder with the id you obtained earlier - run
lxc-start -n <vm-name>