User Tools

Site Tools


docs:guide-user:virtualization:lxc

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 things 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.

  1. Create the VM folder manually at .local/share/lxc/<vm-name>/
  2. Download a snapshot rootfs of OpenWrt and unpack it to .local/share/lxc/<vm-name>/rootfs
  3. Create a .local/share/lxc/<vm-name>/config containing 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
  4. run chmod on the rootfs folder with the id you obtained earlier
  5. run lxc-start -n <vm-name>
docs/guide-user/virtualization/lxc.txt · Last modified: 2019/05/07 15:23 by tmomas