I am working on my yocto distribution including cryptsetup in the 2.3.2 version
I am running such distribution on a board with 1 GB RAM and I am incurring in an "out of memory" error trying to open an encrypted partition that I am not able to properly debug. Any ideas?
My distro runs from an mSD with 3 partitions; the third one (30 MB) is the encrypted one.
I used the steps described on the ArchLinux guide to encrypt that partition, with ext3 instead of ext4
# cryptsetup -y -v luksFormat /dev/sda2 # cryptsetup open /dev/sda2 cryptroot # mkfs.ext3 /dev/mapper/cryptroot But trying to open that partition on my board raises an error:
cryptsetup --debug open /dev/mmcblk0p3 cryptroot # cryptsetup 2.3.2 processing "cryptsetup --debug open /dev/mmcblk0p3 cryptroot" # Running command open. # Locking memory. # Installing SIGINT/SIGTERM handler. # Unblocking interruption on signal. # Allocating context for crypt device /dev/mmcblk0p3. # Trying to open and read device /dev/mmcblk0p3 with direct-io. # Initialising device-mapper backend library. # Trying to load any crypt type from device /dev/mmcblk0p3. # Crypto backend (OpenSSL 1.1.1k 25 Mar 2021) initialized in cryptsetup library version 2.3.2. # Detected kernel Linux 4.1.35-rt41 ppc. # Loading LUKS2 header (repair disabled). # Acquiring read lock for device /dev/mmcblk0p3. # Opening lock resource file /run/cryptsetup/L_179:3 # Verifying lock handle for /dev/mmcblk0p3. # Device /dev/mmcblk0p3 READ lock taken. # Trying to read primary LUKS2 header at offset 0x0. # Opening locked device /dev/mmcblk0p3 # Veryfing locked device handle (bdev) # LUKS2 header version 2 of size 16384 bytes, checksum sha256. # Checksum:43e122216ab19330fdfb6d2f9d7b586c4e5189884aef24be884e7159228e9ee5 (on-disk) # Checksum:43e122216ab19330fdfb6d2f9d7b586c4e5189884aef24be884e7159228e9ee5 (in-memory) # Trying to read secondary LUKS2 header at offset 0x4000. # Reusing open ro fd on device /dev/mmcblk0p3 # LUKS2 header version 2 of size 16384 bytes, checksum sha256. # Checksum:4ed9a44c22fde04c4b59a638c20eba6da3a13e591a6a1cfe7e0fec4437dc14cc (on-disk) # Checksum:4ed9a44c22fde04c4b59a638c20eba6da3a13e591a6a1cfe7e0fec4437dc14cc (in-memory) # Device size 32505856, offset 16777216. # Device /dev/mmcblk0p3 READ lock released. # Only 1 active CPUs detected, PBKDF threads decreased from 4 to 1. # Not enough physical memory detected, PBKDF max memory decreased from 1048576kB to 255596kB. # PBKDF argon2i, time_ms 2000 (iterations 0), max_memory_kb 255596, parallel_threads 1. # Activating volume cryptroot using token -1. # Interactive passphrase entry requested. Enter passphrase for /dev/mmcblk0p3: # Activating volume cryptroot [keyslot -1] using passphrase. device-mapper: ioctl: 4.31.0-ioctl (2015-3-12) initialised: [email protected] # dm version [ opencount flush ] [16384] (*1) # dm versions [ opencount flush ] [16384] (*1) # Detected dm-ioctl version 4.31.0. # Device-mapper backend running with UDEV support enabled. # dm status cryptroot [ opencount noflush ] [16384] (*1) # Keyslot 0 priority 1 != 2 (required), skipped. # Trying to open LUKS2 keyslot 0. # Keyslot 0 (luks2) open failed with -12. Not enough available memory to open a keyslot. # Releasing crypt device /dev/mmcblk0p3 context. # Releasing device-mapper backend. # Closing read only fd for /dev/mmcblk0p3. # Unlocking memory. Command failed with code -3 (out of memory).