unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* udev rule only works with sudo
@ 2024-08-03 15:33 Chris Keschnat
  2024-08-04  5:51 ` Felix Lechner via
  0 siblings, 1 reply; 4+ messages in thread
From: Chris Keschnat @ 2024-08-03 15:33 UTC (permalink / raw)
  To: help-guix


Hi,
I'm trying to run Vial[1] and am following their guide[2].
To me it seems as if the permissions of the files in =/dev/=
are not set correctly, but I don't know enough about udev to be certain.

System configuration:
#+begin_src scheme
  (define %vial-udev-rule
    (udev-rule
     "99-vial.rules"
     (string-append "KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", "
                    "ATTRS{serial}==\"*vial:f64c2b3c*\", "
                    "MODE=\"0660\", "
                    "GROUP=\"users\", "
                    "TAG+=\"uaccess\", "
                    "TAG+=\"udev-acl\"")))

  ;; ..........
  ;; services
  (udev-rules-service 'vial-thing %vial-udev-rule)
#+end_src

This results in this and is exactly what the guide says it should be:

#+TITLE:/etc/udev/rules.d/90-usb-thing.rules
#+begin_src conf
  KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
#+end_src

Now Vial works when run with ~sudo~ (ignoring the xdg- and font-errors):
#+begin_src sh
  ck@brak ~  $ nix-shell -p vial --run "sudo Vial"
  Password:
  QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
  Fontconfig error: Cannot load default config file: No such file: (null)
#+end_src

Without sudo, the program starts, but I cannot see my device and these messages are logged:
#+begin_src sh
  ck@brak ~  $ nix-shell -p vial --run "Vial"
  Fontconfig error: Cannot load default config file: No such file: (null)
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw10' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw10' does not match - usage_page=0001 usage=06
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw11' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw11' does not match - usage_page=0001 usage=02
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw11' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw11' does not match - usage_page=0001 usage=01
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw11' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw11' does not match - usage_page=0001 usage=80
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw11' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw11' does not match - usage_page=000C usage=01
  INFO:root:Matching VID=5842, PID=4B50, serial=, path=b'/dev/hidraw11' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw11' does not match - usage_page=0001 usage=06
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw8' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw8' does not match - usage_page=0001 usage=06
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw9' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw9' does not match - usage_page=0001 usage=02
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw9' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw9' does not match - usage_page=0001 usage=01
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw9' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw9' does not match - usage_page=0001 usage=80
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw9' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw9' does not match - usage_page=000C usage=01
  INFO:root:Matching VID=5842, PID=4E75, serial=, path=b'/dev/hidraw9' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw9' does not match - usage_page=0001 usage=06
  INFO:root:Matching VID=16C0, PID=27DB, serial=e7:9b:bc:35:76:1e, path=b'/dev/hidraw12' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw12' does not match - usage_page=0001 usage=06
  INFO:root:Matching VID=16C0, PID=27DB, serial=e7:9b:bc:35:76:1e, path=b'/dev/hidraw12' - VIA stack
  WARNING:root:is_rawhid: b'/dev/hidraw12' does not match - usage_page=000C usage=01
#+end_src

So, should the devices in =/dev/= have other permissions than this? I assume ~GROUP="users"~ should give my user permission?
#+begin_src sh
  ck@brak ~  $ ll /dev/hidraw*
  crw------- 1 root root 242,  0 03.08.2024 09:03 /dev/hidraw0
  crw------- 1 root root 242,  1 03.08.2024 09:03 /dev/hidraw1
  crw------- 1 root root 242, 10 03.08.2024 09:03 /dev/hidraw10
  crw------- 1 root root 242, 11 03.08.2024 09:03 /dev/hidraw11
  crw------- 1 root root 242, 12 03.08.2024 09:06 /dev/hidraw12
  crw------- 1 root root 242, 13 03.08.2024 15:33 /dev/hidraw13
  crw------- 1 root root 242,  2 03.08.2024 09:03 /dev/hidraw2
  crw------- 1 root root 242,  3 03.08.2024 09:03 /dev/hidraw3
  crw------- 1 root root 242,  4 03.08.2024 09:03 /dev/hidraw4
  crw------- 1 root root 242,  5 03.08.2024 09:03 /dev/hidraw5
  crw------- 1 root root 242,  6 03.08.2024 09:03 /dev/hidraw6
  crw------- 1 root root 242,  7 03.08.2024 09:03 /dev/hidraw7
  crw------- 1 root root 242,  8 03.08.2024 09:03 /dev/hidraw8
  crw------- 1 root root 242,  9 03.08.2024 09:03 /dev/hidraw9
#+end_src

My user:
#+begin_src sh
  ck@brak ~  $ id
  uid=1000(ck) gid=998(users) groups=999(wheel),992(video),991(audio),990(netdev),989(lp),975(libvirt),998(users)
#+end_src

PS:
The documentation[3] says:
"The herd rules udev command, as root, returns the name of the directory containing all the active udev rules."

This does not work on my machine. I don't know if the documentation is outdated or if there is something wrong on my system:
#+begin_src sh
  ck@brak ~  $ sudo herd rules udev
  herd: error: service 'udev' does not have an action 'rules'
  # same as root
  ck@brak ~  $ sudo su -
  Password:
  root@brak ~# herd rules udev
  herd: error: service 'udev' does not have an action 'rules'
#+end_src


[1] https://get.vial.today/
[2] https://get.vial.today/manual/linux-udev.html
[3] https://guix.gnu.org/manual/en/html_node/Base-Services.html


Thank you
Chris


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: udev rule only works with sudo
  2024-08-03 15:33 udev rule only works with sudo Chris Keschnat
@ 2024-08-04  5:51 ` Felix Lechner via
  2024-08-04  7:55   ` Chris Keschnat
  0 siblings, 1 reply; 4+ messages in thread
From: Felix Lechner via @ 2024-08-04  5:51 UTC (permalink / raw)
  To: Chris Keschnat, help-guix

Hi Chris,

On Sat, Aug 03 2024, Chris Keschnat wrote:

>   KERNEL=="hidraw*", SUBSYSTEM=="hidraw",
>   ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users",
>   TAG+="uaccess", TAG+="udev-a

>   crw------- 1 root root 242,  0 03.08.2024 09:03 /dev/hidraw0 

With the group at 'root', are you sure the rule ran at all?

It didn't for me [1] but a one-liner fixed it. [2] Unfortunately, the
patch was not accepted.

I'd be curious to know if the patch works for you.

Kind regards
Felix

[1] https://issues.guix.gnu.org/63787
[2] https://issues.guix.gnu.org/63508#18


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: udev rule only works with sudo
  2024-08-04  5:51 ` Felix Lechner via
@ 2024-08-04  7:55   ` Chris Keschnat
  2024-08-05 18:53     ` Felix Lechner via
  0 siblings, 1 reply; 4+ messages in thread
From: Chris Keschnat @ 2024-08-04  7:55 UTC (permalink / raw)
  To: help-guix

Felix Lechner <felix.lechner@lease-up.com> writes:

>>   crw------- 1 root root 242,  0 03.08.2024 09:03 /dev/hidraw0
>
> With the group at 'root', are you sure the rule ran at all?

You are right. It did not occur to me to even try without the udev
rules. I removed them and Vial still works fine as root.

>
> It didn't for me [1] but a one-liner fixed it. [2] Unfortunately, the
> patch was not accepted.
>
> I'd be curious to know if the patch works for you.
>
> Kind regards
> Felix
>
> [1] https://issues.guix.gnu.org/63787
> [2] https://issues.guix.gnu.org/63508#18

I will try, but I have never customized a package.
I think I will need to read through "Package Transformation Options"[1].
Could take a while :)


[1] https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html

Thanks
Chris


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: udev rule only works with sudo
  2024-08-04  7:55   ` Chris Keschnat
@ 2024-08-05 18:53     ` Felix Lechner via
  0 siblings, 0 replies; 4+ messages in thread
From: Felix Lechner via @ 2024-08-05 18:53 UTC (permalink / raw)
  To: Chris Keschnat, help-guix

Hi Chris,

On Sun, Aug 04 2024, Chris Keschnat wrote:

> I will try, but I have never customized a package.

No need.  Just customize your Guix executable by applying the three
patches.

The 'eudev' package is a prerequsite for many others, so reconfiguring
your system will rebuild a lot.  I wish I could offer you my
substitutes.

Kind regards
Felix


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-08-05 18:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-03 15:33 udev rule only works with sudo Chris Keschnat
2024-08-04  5:51 ` Felix Lechner via
2024-08-04  7:55   ` Chris Keschnat
2024-08-05 18:53     ` Felix Lechner via

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).