[yocto] What kernel configs are needed for using DM_CRYPT with cryptsetup?

Wenholz, Brian (GE Healthcare) Brian.Wenholz at med.ge.com
Fri Jul 18 13:31:56 PDT 2014


All,

I have been struggling to get this working. I intend to use an encrypted loop device during runtime (not at boot time). I have included the meta-oe cryptsetup recipe (V1.6.2) and am trying to "create" (or open) the loop file on my Yocto system.

The basic attempt is:

head -c 100M /dev/zero > test
cryptsetup create t1  test

The passphrase is requested and then cryptsetup hangs. Strace reveals that cryptsetup is hanging on a kernel semaphore that never returns, but I have been unable to decipher (pun intended) what the meaning of the strace log is.

Any help would be appreciated.

Brian Wenholz

The strace log follows and kernel config is attached:

execve("/usr/sbin/cryptsetup", ["cryptsetup", "create", "t1", "test"], [/* 15 vars */]) = 0
brk(0)                                  = 0x8056000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77ca000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=43040, ...}) = 0
mmap2(NULL, 43040, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77bf000
close(3)                                = 0
open("/usr/lib/libcryptsetup.so.4", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\320\207H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=158244, ...}) = 0
mmap2(0x4887a000, 155620, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4887a000
mmap2(0x4889f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25) = 0x4889f000
close(3)                                = 0
open("/usr/lib/libpopt.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P:\213H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=47060, ...}) = 0
mmap2(0x488b2000, 48332, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x488b2000
mmap2(0x488bd000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa) = 0x488bd000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p6\272I4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1527200, ...}) = 0
mmap2(0x49b8a000, 1534652, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x49b8a000
mmap2(0x49cfb000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x171) = 0x49cfb000
mmap2(0x49cfe000, 10940, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x49cfe000
close(3)                                = 0
open("/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320N{H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=15820, ...}) = 0
mmap2(0x487b4000, 12776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x487b4000
mmap2(0x487b7000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0x487b7000
close(3)                                = 0
open("/usr/lib/libdevmapper.so.1.02", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\361{H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0555, st_size=242320, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77be000
mmap2(0x487ba000, 243612, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x487ba000
mmap2(0x487f2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38) = 0x487f2000
mmap2(0x487f5000, 1948, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x487f5000
close(3)                                = 0
open("/usr/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220a\202H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=387880, ...}) = 0
mmap2(0x4881a000, 385004, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4881a000
mmap2(0x48873000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x59) = 0x48873000
close(3)                                = 0
open("/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\211\222H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1798156, ...}) = 0
mmap2(0x488e6000, 1808880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x488e6000
mmap2(0x48a85000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f) = 0x48a85000
mmap2(0x48a9d000, 10736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x48a9d000
close(3)                                = 0
open("/lib/libudev.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\264\200H4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=56976, ...}) = 0
mmap2(0x48809000, 58164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48809000
mmap2(0x48817000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd) = 0x48817000
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260:\320I4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=15576, ...}) = 0
mmap2(0x49d03000, 16516, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x49d03000
mmap2(0x49d06000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0x49d06000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220)\327I4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=32476, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77bd000
mmap2(0x49d71000, 33356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x49d71000
mmap2(0x49d78000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0x49d78000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\372\320I4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=93860, ...}) = 0
mmap2(0x49d0a000, 102920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x49d0a000
mmap2(0x49d20000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15) = 0x49d20000
mmap2(0x49d22000, 4616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x49d22000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77bc000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77bb000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb77bcac0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x49cfb000, 8192, PROT_READ)   = 0
mprotect(0x487b0000, 4096, PROT_READ)   = 0
mprotect(0x49d06000, 4096, PROT_READ)   = 0
mprotect(0x49d78000, 4096, PROT_READ)   = 0
mprotect(0x49d20000, 4096, PROT_READ)   = 0
munmap(0xb77bf000, 43040)               = 0
set_tid_address(0xb77bcb28)             = 1310
set_robust_list(0xb77bcb30, 12)         = 0
futex(0xbfc4f218, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xbfc4f214, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, b77bcac0) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x49d0f460, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x49d0f4f0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="lintest", ...}) = 0
brk(0)                                  = 0x8056000
brk(0x8077000)                          = 0x8077000
mlockall(MCL_CURRENT|MCL_FUTURE)        = 0
getpriority(PRIO_PROCESS, 0)            = 20
setpriority(PRIO_PROCESS, 0, -18)       = 0
rt_sigaction(SIGINT, {0x804c2d0, [], 0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x804c2d0, [], 0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [INT TERM], NULL, 8) = 0
open("test", O_RDONLY|O_LARGEFILE)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=104857600, ...}) = 0
close(3)                                = 0
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
open("/dev/random", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 4
open("/dev/crypto", O_RDWR)             = -1 ENOENT (No such file or directory)
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B115200 opost isig icanon echo ...}) = 0
open("/dev/tty", O_RDWR|O_LARGEFILE)    = 5
ioctl(5, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B115200 opost isig icanon echo ...}) = 0
write(5, "Enter passphrase: ", 18Enter passphrase: )      = 18
ioctl(5, SNDCTL_TMR_CONTINUE or SNDRV_TIMER_IOCTL_GPARAMS or TCSETSF, {B115200 opost isig icanon -echo ...}) = 0
read(5, "gehc-mic\n", 512)              = 9
ioctl(5, SNDCTL_TMR_CONTINUE or SNDRV_TIMER_IOCTL_GPARAMS or TCSETSF, {B115200 opost isig icanon echo ...}) = 0
write(5, "\n", 1
)                       = 1
close(5)                                = 0
uname({sys="Linux", node="sunrise", ...}) = 0
uname({sys="Linux", node="sunrise", ...}) = 0
stat64("/dev/mapper/control", {st_mode=S_IFCHR|0600, st_rdev=makedev(10, 236), ...}) = 0
open("/dev/mapper/control", O_RDWR|O_LARGEFILE) = 5
open("/proc/devices", O_RDONLY|O_LARGEFILE) = 6
fstat64(6, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c9000
read(6, "Character devices:\n  1 mem\n  2 p"..., 1024) = 513
close(6)                                = 0
munmap(0xb77c9000, 4096)                = 0
ioctl(5, DM_VERSION, 0x8059ba8)         = 0
ioctl(5, DM_LIST_VERSIONS, 0x8059b10)   = 0
semctl(0, 0, IPC_64|SEM_INFO, 0xbfc4f0a8) = 0
open("/etc/udev/udev.conf", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 6
fcntl64(6, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
fstat64(6, {st_mode=S_IFREG|0644, st_size=69, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c9000
read(6, "# see udev(7) for details\n\n#udev"..., 1024) = 69
read(6, "", 1024)                       = 0
close(6)                                = 0
munmap(0xb77c9000, 4096)                = 0
open("/var/run/udev/queue.bin", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 6
fstat64(6, {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c9000
read(6, "\337\5\0\0\0\0\0\0", 4096)     = 8
close(6)                                = 0
munmap(0xb77c9000, 4096)                = 0
ioctl(5, DM_TABLE_STATUS, 0x8059a40)    = -1 ENXIO (No such device or address)
open("/dev/loop-control", O_RDONLY|O_LARGEFILE) = 6
ioctl(6, LOOP_CTL_GET_FREE)             = 1
close(6)                                = 0
stat64("/dev/loop1", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 1), ...}) = 0
open("test", O_RDWR|O_EXCL|O_LARGEFILE) = 6
open("/dev/loop1", O_RDWR|O_LARGEFILE)  = 7
ioctl(7, LOOP_SET_FD, 0x6)              = 0
ioctl(7, LOOP_SET_STATUS64, {offset=0, number=0, flags=LO_FLAGS_AUTOCLEAR, file_name="test", ...}) = 0
ioctl(7, LOOP_GET_STATUS64, {offset=0, number=1, flags=LO_FLAGS_AUTOCLEAR, file_name="test", ...}) = 0
close(6)                                = 0
open("/dev/loop1", O_RDONLY|O_LARGEFILE) = 6
fstat64(6, {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 1), ...}) = 0
close(6)                                = 0
stat64("/dev/loop1", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 1), ...}) = 0
open("/dev/loop1", O_RDWR|O_EXCL|O_LARGEFILE) = 6
ioctl(6, BLKROGET, 0)                   = 0
ioctl(6, BLKGETSIZE64, 104857600)       = 0
close(6)                                = 0
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 6
read(6, "L|", 2)                        = 2
semget(0xd4d7c4c, 1, IPC_CREAT|IPC_EXCL|0600) = 0
semctl(0, 0, IPC_64|SETVAL, 0xbfc4efa8) = 0
semctl(0, 0, IPC_64|GETVAL, 0xbfc4efa8) = 1
close(6)                                = 0
semop(0, {{0, 1, 0}}, 1)                = 0
semctl(0, 0, IPC_64|GETVAL, 0xbfc4f008) = 2
open("/dev/loop1", O_RDONLY|O_LARGEFILE) = 6
ioctl(6, BLKRAGET, 256)                 = 0
close(6)                                = 0
ioctl(5, DM_DEV_CREATE, 0x805dad8)      = 0
ioctl(5, DM_TABLE_LOAD, 0x805dad8)      = 0
ioctl(5, DM_DEV_SUSPEND, 0x805dad8)     = 0
semget(0xd4d7c4c, 1, 0)                 = 0
semctl(0, 0, IPC_64|GETVAL, 0xbfc4eff8) = 2
semop(0, {{0, -1, IPC_NOWAIT}}, 1)      = 0
semop(0, {{0, 0, 0}}, 1


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20140718/0cdf7e50/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT21755.config
Type: application/octet-stream
Size: 87482 bytes
Desc: ATT21755.config
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20140718/0cdf7e50/attachment.obj>


More information about the yocto mailing list