Manjaro ARM CRIU Install

CRIU for Manjaro ARM on PinePhone and PineBook Pro

CRIU Setup

Download CRIU from source

sudo chown -R $USER:$USER /opt
cd /opt
git clone --depth 1 https://github.com/checkpoint-restore/criu.git

Install CRIU dependencies

sudo pacman -S protobuf-c nftables asciidoc

ARM64 Native Build for CRIU

cd criu
make -j $(grep -c ^processor /proc/cpuinfo)
sudo make install
...
  INSTALL  criu/criu
  LINK     compel/libcompel.so
  CC       compel/arch/aarch64/src/lib/handle-elf.o
  CC       compel/src/lib/handle-elf.o
  CC       compel/src/main.o
  LINK     compel/built-in.o
  LINK     compel/compel
  INSTALL  compel
  INSTALL  libcompel.so
  INSTALL  libcompel.a
  INSTALL  compel uapi
  INSTALL  compel plugins
  INSTALL  compel plugins uapi

CRIU Tests

For PinePhone, make sure to install my kernel first.

Test CRIU

sudo criu/criu check --all
Warn  (criu/cr-check.c:855): Dirty tracking is OFF. Memory snapshot will not work.
Warn  (criu/cr-check.c:1284): Do not have API to map vDSO - will use mremap() to restore vDSO
Error (criu/cr-check.c:1325): IFLA_NEW_IFINDEX isn't supported
Warn  (criu/cr-check.c:1204): CRIU built without CONFIG_COMPAT - can't C/R compatible tasks
Looks good but some kernel features are missing
which, depending on your process tree, may cause
dump or restore failure.

Optional, Build Tests

Install Dependencies

sudo pacman -S python-protobuf

Compile and run ZDTM tests, more info

sudo test/zdtm.py run -a --ignore-taint