all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: phodina via <help-guix@gnu.org>
To: help-guix <help-guix@gnu.org>
Subject: Expose USB devices in Guix container
Date: Sat, 04 Mar 2023 08:34:12 +0000	[thread overview]
Message-ID: <GfMGHAyW__ui4K7Rv78v8voU0qsMfUJOjU7A4gmJR2LJ3GO_AEgMBrt6D8t6LoliRherE9s29yALAH9waNlAD8RdUS1vQqNRzF3ukfK4ljs=@protonmail.com> (raw)

Hi,

I wanted to run an AppImage inside Guix container with FHS. But there is an issue about USB as the application connects to a mobile phoen and install OS there [1].

However, inside the container even the simple lsusb​ does not work. I've exposed the /dev/bus/usb​ .

And the open syscall still fails even though the device is mapped into the container as you can see in the strace log
```
openat(AT_FDCWD, "/dev/bus/usb/004/001", O_RDONLY|O_CLOEXEC) = -1 ENODEV (No such device)
```

```
$ guix shell --container --network --emulate-fhs --development ungoogled-chromium gcc:lib --preserve='^DISPLAY$' --preserve='^XAUTHORITY$' --expose=$XAUTHORITY --preserve='^DBUS_' --expose=/var/run/dbus --expose=/sys/dev --expose=/sys/devices --expose=/dev/dri --expose=/dev/bus/usb android-udev-rules libusb usbutils strace
[env]$ lsusb
unable to initialize libusb: -1
[env] $ strace lsusb
execve("/bin/lsusb", ["lsusb"], 0x7ffd6a4c05a0 /* 31 vars */) = 0
brk(NULL) = 0x17de000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce2120000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
readlink("/proc/self/exe", "/gnu/store/wp2nnsdii68wa2kcqpbwh"..., 4096) = 66
openat(AT_FDCWD, "/gnu/store/wp2nnsdii68wa2kcqpbwhrd6c7apwmbw-usbutils-015/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=6412, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 6412, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5ce211e000
close(3) = 0
openat(AT_FDCWD, "/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/lib/libusb-1.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360V\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\0\0\0\0"..., 48, 110560) = 48
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=117728, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 120064, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce2100000
mmap(0x7f5ce2105000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f5ce2105000
mmap(0x7f5ce2113000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7f5ce2113000
mmap(0x7f5ce211c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f5ce211c000
close(3) = 0
openat(AT_FDCWD, "/gnu/store/53nv7cam6agri3s60p0fqmkwg1896zf6-eudev-3.2.11/lib/libudev.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000Y\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\0\0\0\0"..., 48, 141208) = 48
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=146936, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 150952, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce20db000
mmap(0x7f5ce20e0000, 86016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f5ce20e0000
mmap(0x7f5ce20f5000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7f5ce20f5000
mmap(0x7f5ce20fe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f5ce20fe000
close(3) = 0
openat(AT_FDCWD, "/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 9\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0000\0\0\0\5\0\0\0GNU\0\2\200\0\300\4\0\0\0\1\0\0\0\0\0\0\0"..., 64, 848) = 64
pread64(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0", 32, 912) = 32
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=1806776, ...}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 1840808, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce1f19000
mmap(0x7f5ce1f3b000, 1314816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f5ce1f3b000
mmap(0x7f5ce207c000, 327680, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x163000) = 0x7f5ce207c000
mmap(0x7f5ce20cc000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b2000) = 0x7f5ce20cc000
mmap(0x7f5ce20d2000, 34472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5ce20d2000
close(3) = 0
openat(AT_FDCWD, "/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320k\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0000\0\0\0\5\0\0\0GNU\0\2\200\0\300\4\0\0\0\1\0\0\0\0\0\0\0"..., 64, 792) = 64
pread64(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0", 32, 856) = 32
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=110088, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 128016, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce1ef9000
mmap(0x7f5ce1eff000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f5ce1eff000
mmap(0x7f5ce1f0d000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f5ce1f0d000
mmap(0x7f5ce1f13000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f5ce1f13000
mmap(0x7f5ce1f15000, 13328, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5ce1f15000
close(3) = 0
openat(AT_FDCWD, "/gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0203\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\v\0\0\0\0\0\0\0"..., 48, 94696) = 48
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=100760, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 103496, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5ce1edf000
mmap(0x7f5ce1ee2000, 69632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f5ce1ee2000
mmap(0x7f5ce1ef3000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f5ce1ef3000
mmap(0x7f5ce1ef7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f5ce1ef7000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce1edd000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5ce1eda000
arch_prctl(ARCH_SET_FS, 0x7f5ce1eda740) = 0
mprotect(0x7f5ce20cc000, 16384, PROT_READ) = 0
mprotect(0x7f5ce1ef7000, 4096, PROT_READ) = 0
mprotect(0x7f5ce1f13000, 4096, PROT_READ) = 0
mprotect(0x7f5ce20fe000, 4096, PROT_READ) = 0
mprotect(0x7f5ce211c000, 4096, PROT_READ) = 0
mprotect(0x424000, 4096, PROT_READ) = 0
mprotect(0x7f5ce214f000, 8192, PROT_READ) = 0
munmap(0x7f5ce211e000, 6412) = 0
set_tid_address(0x7f5ce1edaa10) = 6
set_robust_list(0x7f5ce1edaa20, 24) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f5ce1eff6a0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f5ce1f0ad80}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f5ce1eff740, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f5ce1f0ad80}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL) = 0x17de000
brk(0x17ff000) = 0x17ff000
openat(AT_FDCWD, "/gnu/store/53nv7cam6agri3s60p0fqmkwg1896zf6-eudev-3.2.11/etc/udev/udev.conf", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=49, ...}, AT_EMPTY_PATH) = 0
read(3, "# see udev.conf(5) for details\n\n"..., 4096) = 49
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/gnu/store/53nv7cam6agri3s60p0fqmkwg1896zf6-eudev-3.2.11/etc/udev/hwdb.bin", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=9463331, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 9463331, PROT_READ, MAP_SHARED, 3, 0) = 0x7f5ce1400000
uname({sysname="Linux", nodename="CZPRGL-B18SYD3", ...}) = 0
openat(AT_FDCWD, "/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 4
newfstatat(4, "", {st_mode=S_IFDIR|0755, st_size=120, ...}, AT_EMPTY_PATH) = 0
getdents64(4, 0x17de8c0 /* 6 entries */, 32768) = 144
close(4) = 0
statfs("/sys", {f_type=TMPFS_MAGIC, f_bsize=4096, f_blocks=4077739, f_bfree=4077729, f_bavail=4077729, f_files=4077739, f_ffree=4076722, f_fsid={val=[0x380fa224, 0x320847c1]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC|SOCK_NONBLOCK, NETLINK_KOBJECT_UEVENT) = 4
bind(4, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=0x000001}, 12) = 0
setsockopt(4, SOL_SOCKET, SO_PASSCRED, [1], 4) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 5
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f5ce0bff000
mprotect(0x7f5ce0c00000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
clone(child_stack=0x7f5ce13feef0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[7], tls=0x7f5ce13ff640, child_tidptr=0x7f5ce13ff910) = 7
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
openat(AT_FDCWD, "/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 6
newfstatat(6, "", {st_mode=S_IFDIR|0755, st_size=120, ...}, AT_EMPTY_PATH) = 0
getdents64(6, 0x17dea00 /* 6 entries */, 32768) = 144
openat(AT_FDCWD, "/dev/bus/usb/004", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 7
newfstatat(7, "", {st_mode=S_IFDIR|0755, st_size=60, ...}, AT_EMPTY_PATH) = 0
getdents64(7, 0x17e6a40 /* 3 entries */, 32768) = 72
openat(AT_FDCWD, "/dev/bus/usb/004/001", O_RDONLY|O_CLOEXEC) = -1 ENODEV (No such device)
getdents64(7, 0x17e6a40 /* 0 entries */, 32768) = 0
close(7) = 0
close(6) = 0
write(5, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x7f5ce13ff910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 7, NULL, FUTEX_BITSET_MATCH_ANY) = 0
close(5) = 0
close(4) = 0
write(2, "unable to initialize libusb: -1\n", 32unable to initialize libusb: -1
) = 32
exit_group(1) = ?
+++ exited with 1 +++
[env]$ ls /dev/bus/usb/001 002 003 004

```

1 https://devices.ubuntu-touch.io/installer/

----
Petr

                 reply	other threads:[~2023-03-04  8:35 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='GfMGHAyW__ui4K7Rv78v8voU0qsMfUJOjU7A4gmJR2LJ3GO_AEgMBrt6D8t6LoliRherE9s29yALAH9waNlAD8RdUS1vQqNRzF3ukfK4ljs=@protonmail.com' \
    --to=help-guix@gnu.org \
    --cc=phodina@protonmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.