Hello Brian, You have to enable CONFIG_DM_CRYPT and CONFIG_BLK_DEV_DM in kernel; Also make sure you have corresponding CONFIG_CRYPTO* enabled. And, if compiled as modules, make sure that modules are loaded before running cryptsetup during runtime
See https://code.google.com/p/cryptsetup/wiki for more info. BR, Maxim. On Fri, Jul 18, 2014 at 11:31 PM, Wenholz, Brian (GE Healthcare) < brian.wenh...@med.ge.com> wrote: > 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 > > > > > > -- > _______________________________________________ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto > >
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto