Closed frague59 closed 4 years ago
It looks like you're running this as root, so the permission error doesn't make much sense, unless you're in a container with some LSM blocking access to /dev/uinput
?
Could you post an strace
output of the above netevent daemon
command (and check if there are any journal audit messages popping up during execution)?
strace netevent daemon -s /etc/netevent/netevent.ne2 ./netevent-comand.sock
execve("/usr/local/bin/netevent", ["netevent", "daemon", "-s", "/etc/netevent/netevent.ne2", "./netevent-comand.sock"], 0x7fff16e460d0 /* 20 vars */) = 0
brk(NULL) = 0x561d1488b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=115350, ...}) = 0
mmap(NULL, 115350, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa9b7212000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libstdc++.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@\237\t\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1919784, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa9b7210000
mmap(NULL, 1934752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa9b7037000
mmap(0x7fa9b70cd000, 950272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x96000) = 0x7fa9b70cd000
mmap(0x7fa9b71b5000, 303104, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17e000) = 0x7fa9b71b5000
mmap(0x7fa9b71ff000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c7000) = 0x7fa9b71ff000
mmap(0x7fa9b720d000, 9632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa9b720d000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/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
fstat(3, {st_mode=S_IFREG|0644, st_size=100736, ...}) = 0
mmap(NULL, 103504, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa9b701d000
mmap(0x7fa9b7020000, 69632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fa9b7020000
mmap(0x7fa9b7031000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7fa9b7031000
mmap(0x7fa9b7035000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fa9b7035000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/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\320l\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1820104, ...}) = 0
mmap(NULL, 1832568, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa9b6e5d000
mprotect(0x7fa9b6e82000, 1642496, PROT_NONE) = 0
mmap(0x7fa9b6e82000, 1339392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7fa9b6e82000
mmap(0x7fa9b6fc9000, 299008, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16c000) = 0x7fa9b6fc9000
mmap(0x7fa9b7013000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b5000) = 0x7fa9b7013000
mmap(0x7fa9b7019000, 13944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa9b7019000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.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\340\361\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1325424, ...}) = 0
mmap(NULL, 1327360, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa9b6d18000
mmap(0x7fa9b6d27000, 634880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7fa9b6d27000
mmap(0x7fa9b6dc2000, 626688, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xaa000) = 0x7fa9b6dc2000
mmap(0x7fa9b6e5b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x142000) = 0x7fa9b6e5b000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa9b6d16000
arch_prctl(ARCH_SET_FS, 0x7fa9b6d170c0) = 0
mprotect(0x7fa9b7013000, 12288, PROT_READ) = 0
mprotect(0x7fa9b6e5b000, 4096, PROT_READ) = 0
mprotect(0x7fa9b7035000, 4096, PROT_READ) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa9b6d14000
mprotect(0x7fa9b71ff000, 45056, PROT_READ) = 0
mprotect(0x561d136ce000, 4096, PROT_READ) = 0
mprotect(0x7fa9b7257000, 4096, PROT_READ) = 0
munmap(0x7fa9b7212000, 115350) = 0
brk(NULL) = 0x561d1488b000
brk(0x561d148ac000) = 0x561d148ac000
rt_sigaction(SIGINT, {sa_handler=0x561d1369cf42, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9b6e97100}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x561d1369cf42, sa_mask=[TERM], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9b6e97100}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x561d1369cf42, sa_mask=[QUIT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9b6e97100}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x561d1369cf42, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9b6e97100}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fa9b6e97100}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
unlink("./netevent-comand.sock") = -1 ENOENT (Aucun fichier ou dossier de ce type)
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
unlink("./netevent-comand.sock") = -1 ENOENT (Aucun fichier ou dossier de ce type)
bind(3, {sa_family=AF_UNIX, sun_path="./netevent-comand.sock"}, 110) = 0
listen(3, 5) = 0
openat(AT_FDCWD, "/etc/netevent/netevent.ne2", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=562, ...}) = 0
read(4, "# Mouse and keyboard\ndevice add "..., 4096) = 562
openat(AT_FDCWD, "/dev/input/by-id/usb-PixArt_Dell_MS116_USB_Optical_Mouse-event-mouse", O_RDONLY|O_CLOEXEC) = 5
ioctl(5, EVIOCGNAME(80), "PixArt Dell MS116 USB Optical Mo"...) = 36
ioctl(5, EVIOCGID, {ID_BUS=3, ID_VENDOR=16700, ID_PRODUCT=12314, ID_VERSION=273}) = 0
ioctl(5, EVIOCGBIT(0, 4), [EV_SYN, EV_KEY, EV_REL, EV_MSC]) = 4
write(2, "added device mymouse\n", 21added device mymouse
) = 21
openat(AT_FDCWD, "/dev/input/by-id/usb-413c_Dell_KB216_Wired_Keyboard-event-kbd", O_RDONLY|O_CLOEXEC) = 6
ioctl(6, EVIOCGNAME(80), "Dell KB216 Wired Keyboard\0") = 26
ioctl(6, EVIOCGID, {ID_BUS=3, ID_VENDOR=16700, ID_PRODUCT=8467, ID_VERSION=273}) = 0
ioctl(6, EVIOCGBIT(0, 4), [EV_SYN, EV_KEY, EV_MSC, EV_LED, ...]) = 4
write(2, "added device mykbd\n", 19added device mykbd
) = 19
write(2, "added hotkey 1:97:1 for device 1"..., 33added hotkey 1:97:1 for device 1
) = 33
write(2, "added hotkey 1:97:0 for device 1"..., 33added hotkey 1:97:0 for device 1
) = 33
pipe2([7, 8], O_CLOEXEC) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fa9b6d17390) = 4937
close(7) = 0
write(8, "\0\4\0\2NE2Hello\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28
writev(8, [{iov_base="\0\1\0\1\4\\\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=28}, {iov_base="Dell KB216 Wired Keyboard\0\0\0\0\0\0\0"..., iov_len=80}, {iov_base="\0\3A<!\23\1\21", iov_len=8}, {iov_base="\0\37", iov_len=2}, {iov_base="\23\0\22\0", iov_len=4}], 5) = 122
ioctl(6, EVIOCGBIT(EV_KEY, 96), [KEY_ESC, KEY_1, KEY_2, KEY_3, ...]) = 96
writev(8, [{iov_base="\3\0", iov_len=2}, {iov_base="\376\377\377\377\377\377\377\377\377\377\357\377\337\377\276\376\377W@\301z \237\377\7\0\0\0\0\0\1\0"..., iov_len=96}], 2) = 98
ioctl(6, EVIOCGBIT(EV_MSC, 8), [MSC_SCAN]) = 8
writev(8, [{iov_base="\0@", iov_len=2}, {iov_base="\20\0\0\0\0\0\0\0", iov_len=8}], 2) = 10
ioctl(6, EVIOCGBIT(EV_LED, 8), [LED_NUML, LED_CAPSL, LED_SCROLLL, LED_COMPOSE, ...]) = 8
writev(8, [{iov_base="\0@", iov_len=2}, {iov_base="\37\0\0\0\0\0\0\0", iov_len=8}], 2) = 10
write(8, "\0\0\0\0", 4) = 4
writev(8, [{iov_base="\0\1\0\0\4\\\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=28}, {iov_base="PixArt Dell MS116 USB Optical Mo"..., iov_len=80}, {iov_base="\0\3A<0\32\1\21", iov_len=8}, {iov_base="\0\37", iov_len=2}, {iov_base="\27\0\0\0", iov_len=4}], 5) = 122
ioctl(5, EVIOCGBIT(EV_KEY, 96), [BTN_LEFT, BTN_RIGHT, BTN_MIDDLE]) = 96
writev(8, [{iov_base="\3\0", iov_len=2}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=96}], 2) = 98
ioctl(5, EVIOCGBIT(EV_REL, 8), [REL_X, REL_Y, REL_WHEEL, REL_WHEEL_HI_RES]) = 8
writev(8, [{iov_base="\0@", iov_len=2}, {iov_base="\3\t\0\0\0\0\0\0", iov_len=8}], 2) = 10
ioctl(5, EVIOCGBIT(EV_MSC, 8), [MSC_SCAN]) = 8
writev(8, [{iov_base="\0@", iov_len=2}, {iov_base="\20\0\0\0\0\0\0\0", iov_len=8}], 2) = 10
write(8, "\0\0\0\0", 4) = 4
write(2, "added output myremote\n", 22added output myremote
) = 22
read(4, "", 4096) = 0
close(4) = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\221I)^\0\0\0\0a\204\16\0\0\0\0\0\4\0\4\0(\0\7\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\221I)^\0\0\0\0a\204\16\0\0\0\0\0\1\0\34\0\0\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\221I)^\0\0\0\0a\204\16\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1error: error opening uinput device: Permission denied
) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4937, si_uid=0, si_status=2, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 2}], WNOHANG, NULL) = 4937
wait4(-1, 0x7fffab400fec, WNOHANG, NULL) = -1 ECHILD (Aucun processus enfant)
rt_sigreturn({mask=[]}) = -1 EINTR (Appel système interrompu)
write(2, "interrupted\n", 12interrupted
) = 12
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0\356\17\2\0\0\0\0\0\4\0\4\0\340\0\7\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0\356\17\2\0\0\0\0\0\1\0\35\0\1\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0\356\17\2\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\1\0\35\0\2\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\0\0\0\0\1\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\1\0\35\0\2\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\0\0\0\0\1\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\4\0\4\0\6\0\7\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\1\0.\0\1\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
read(6, "\242I)^\0\0\0\0JJ\6\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}, {fd=5, events=POLLIN|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLERR|POLLHUP}], 3, -1^C) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
strace: Process 4936 detached
interrupted
shutting down
Ah, I should've seen earlier that the issue is not on the daemon side (that side doesn't even need /dev/uinput), but on the remote side where you run netevent create
.
Your <laptop-user>@<laptop-name>.local
doesn't seem to have access to /dev/uinput
on the laptop. You should check the /dev/uinput
permissions on the laptop side.
Which permission can I give and how ?
I've got it ! I've used this:
https://github.com/chrippa/ds4drv/issues/93#issuecomment-265300511
To set perms on /dev/uinput
on the laptop.
Hi, I'm trying to use netevent on a brand new debian bullseye install, but it fails all the time, with permissions issue on uinput. I've to notice I've used netevent before on a previous bullseye system (which evolved from buster), it worked nice... I use netevent to share my kb/mouse attached to my professional PC (I'm a python dev) with my personal laptop.
daemon settings
uinput perms
daemon launching
systemd service file
Thanks for you great software and for your help !