developersu / ns-usbloader

Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files.
GNU General Public License v3.0
1.87k stars 127 forks source link

Replace the udev rule [GROUP="plugdev"] with [TAG+="uaccess"] #102

Closed daniarla closed 3 years ago

daniarla commented 3 years ago

The first time that I used the package from the AUR I had a lot of problems uploading files through usb, I had no access. I tried to configure the udev rules to allow the usb access like the warning shows: SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", GROUP="plugdev"

But still didn't work. After searching for a bit I learned that in Arch Linux the group plugdev does not exist. (See: https://bugs.archlinux.org/task/68533)

So the fix was to replace it with TAG+="uaccess" (See: https://bugs.archlinux.org/task/47205)

SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", TAG+="uaccess"

And it works perfectly! I don't know if it works with other distros but at least is the right one to use in Arch.

Could you add a warning to clarify that that udev rule does not work in all distros and maybe has to be changed?

developersu commented 3 years ago

Well, there is a note about this..

Please note: you may have to change 'plugdev' group from example above to the different one. It depends on you linux distro.

But yeah, sure. Will note this for Arch users. Thank you!

daniarla commented 3 years ago

I had not seen that before, my bad. Glad to help!

developersu commented 3 years ago

There is a more elegant way to solve this for all distros just by using MODE like this:

 # cat /etc/udev/rules.d/99-NSRCM.rules 
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"

So it's a great catch anyway! Thank you for reporting!

daniarla commented 3 years ago

Like before, I didn't read carefully and use the same udev rule from NSRCM in NS and got an error. Fixed now. Sorry for reopening this!

dweipert-3138720606 commented 1 month ago

On Arch I kept getting

Steps to set 'udev' rules:
root # vim /etc/udev/rules.d/99-NS.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", GROUP="plugdev"
root # udevadm control --reload-rules && udevadm trigger

    at nsusbloader.com.usb.UsbConnect.openDevice(UsbConnect.java:167)
    at nsusbloader.com.usb.UsbConnect.connectHomebrewMode(UsbConnect.java:85)
    at nsusbloader.com.usb.UsbCommunications.run(UsbCommunications.java:54)
    at java.base/java.lang.Thread.run(Thread.java:840)

although I added that.

I recently also had fluffy-switch installed and removed it a couple days ago. Before that it was working.

It seems like python-pyusb is necessary for a connection. After just installing that package it's working again.

developersu commented 1 month ago

No, you don't have install python-things for this. But you have to add this:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"

To the file located at /etc/udev/rules.d/99-NS-RCM.rules

After this, you could reboot OR run as root udevadm control --reload-rules && udevadm trigger