Line 17: |
Line 17: |
| == Kernel configuration == | | == Kernel configuration == |
| | | |
− | The <code>v3.11</code> upstream kernel already has all the required functionality merged. Make sure you have the following options turned on:
| + | Linux kernel v3.11 or newer is required, with some specific options set. If your distribution does not provide needed kernel, you might want to compile one yourself. Note we also have our [[custom kernel]], which might contain some experimental CRIU related patches. |
| | | |
− | * General setup -> Checkpoint/restore support (<code>CONFIG_CHECKPOINT_RESTORE</code>)
| + | Note you might have to enable |
− | * General setup -> Namespaces support (<code>CONFIG_NAMESPACES</code>)
| + | ; <code>CONFIG_EXPERT</code> |
− | * General setup -> Namespaces support -> PID namespaces (<code>CONFIG_PID_NS</code>)
| + | : General setup -> Configure standard kernel features (expert users) |
− | * General setup -> open by fhandle syscalls (<code>CONFIG_FHANDLE</code>)
| + | option, which depends on |
− | * General setup -> Enable eventfd() system call (<code>CONFIG_EVENTFD</code>)
| + | ; <code>CONFIG_EMBEDDED</code> |
− | * General setup -> Enable eventpoll support (<code>CONFIG_EPOLL</code>)
| + | : General setup -> Embedded system |
− | * File systems -> Inotify support for userspace (<code>CONFIG_INOTIFY_USER</code>)
| + | (welcome to Kconfig reverse chains hell). |
− | * Executable file formats -> Emulations -> IA32 Emulation (<code>CONFIG_IA32_EMULATION</code>)
| + | |
− | * Networking support -> Networking options -> Unix domain sockets -> UNIX: socket monitoring interface (<code>CONFIG_UNIX_DIAG</code>)
| + | The following options should be enabled for CRIU to work: |
− | * Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface (<code>CONFIG_INET_DIAG</code>)
| + | |
− | * Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface -> UDP: socket monitoring interface (<code>CONFIG_INET_UDP_DIAG</code>)
| + | ; <code>CONFIG_CHECKPOINT_RESTORE</code> |
− | * Networking support -> Networking options -> Packet socket -> Packet: sockets monitoring interface (<code>CONFIG_PACKET_DIAG</code>)
| + | : General setup -> Checkpoint/restore support |
− | * Networking support -> Networking options -> Netlink socket -> Netlink: sockets monitoring interface (<code>CONFIG_NETLINK_DIAG</code>)
| + | |
| + | ; <code>CONFIG_NAMESPACES</code> |
| + | : General setup -> Namespaces support |
| + | |
| + | ; <code>CONFIG_PID_NS</code> |
| + | : General setup -> Namespaces support -> PID namespaces |
| + | |
| + | ; <code>CONFIG_FHANDLE</code> |
| + | : General setup -> open by fhandle syscalls |
| + | |
| + | ; <code>CONFIG_EVENTFD</code> |
| + | : General setup -> Enable eventfd() system call |
| | | |
− | Note you might have to enable
| + | ; <code>CONFIG_EPOLL</code> |
| + | : General setup -> Enable eventpoll support |
| | | |
− | * General setup -> Configure standard kernel features (expert users) (<code>CONFIG_EXPERT</code>)
| + | ; <code>CONFIG_INOTIFY_USER</code> |
| + | : File systems -> Inotify support for userspace |
| | | |
− | option, which depends on
| + | ; <code>CONFIG_IA32_EMULATION</code> |
| + | : Executable file formats -> Emulations -> IA32 Emulation |
| | | |
− | * General setup -> Embedded system (<code>CONFIG_EMBEDDED</code>)
| + | ; <code>CONFIG_UNIX_DIAG</code> |
| + | : Networking support -> Networking options -> Unix domain sockets -> UNIX: socket monitoring interface |
| | | |
− | (welcome to Kconfig reverse chains hell).
| + | ; <code>CONFIG_INET_DIAG</code> |
| + | : Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface |
| | | |
− | For some [[usage scenarios]] there is an ability to track memory changes and produce incremental dumps. Need to enable
| + | ; <code>CONFIG_INET_UDP_DIAG</code> |
− | * Processor type and features -> Track memory changes (<code>CONFIG_MEM_SOFT_DIRTY</code>)
| + | : Networking support -> Networking options -> TCP/IP networking -> INET: socket monitoring interface -> UDP: socket monitoring interface |
| | | |
| + | ; <code>CONFIG_PACKET_DIAG</code> |
| + | : Networking support -> Networking options -> Packet socket -> Packet: sockets monitoring interface |
| | | |
− | In the future we can start working on some new kernel stuff for CRIU. In that case we will first put this into the staging repository at [http://git.kernel.org/?p=linux/kernel/git/gorcunov/linux-cr.git;a=summary linux-cr.git] ([https://github.com/avagin/linux-rpi-criu/tree/criu-rpi-3.10.y linux-cr-rpi.git] for [http://www.raspberrypi.org/ Raspberry Pi]), so that anyone can checkout the latest branch and compile the kernel.
| + | ; <code>CONFIG_NETLINK_DIAG</code> |
| + | : Networking support -> Networking options -> Netlink socket -> Netlink: sockets monitoring interface |
| | | |
| + | For some [[usage scenarios]] there is an ability to track memory changes and produce [[incremental dumps]]. Need to enable |
| + | ; <code>CONFIG_MEM_SOFT_DIRTY</code> |
| + | : Processor type and features -> Track memory changes |
| | | |
| ==iproute2== | | ==iproute2== |