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