1. ホーム
  2. python

[解決済み] USBErrorです。[Errno 13] アクセスが拒否されました(権限が不足しています)。

2022-02-12 04:43:19

質問事項

この問題は古くからあるものです。議論や解決策があります。結局のところ、ルールファイルを更新し、パーミッションを与えるということです。だから、私はレシピに従いました。しかし、私はまだ同じ問題を抱えている。ここに私が指示に従ったことを示すスクリーンショットがあります。

バージョンは?

Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
usb.__version__ '1.0.2'

エラーです。

    Traceback (most recent call last):
  File "/media/psf/Home/All-Projects-on-femto/LaserLab/Software/usb_4108.py", line 19, in <module>
    dev.set_configuration()
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 869, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 102, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 147, in managed_set_configuration
    self.managed_open()
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 102, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 120, in managed_open
    self.handle = self.backend.open_device(self.dev)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 786, in open_device
    return _DeviceHandle(dev)
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 643, in __init__
    _check(_lib.libusb_open(self.devid, byref(self.handle)))
  File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
USBError: [Errno 13] Access denied (insufficient permissions)

ルールファイル (場所 /etc/udev/rules.d/99-usbftdi.rules)

# For FTDI FT232 & FT245 USB devices with Vendor ID = 0x0403, Product ID = 0xabc
SYSFS{idProduct}=="4108", SYSFS{idVendor}=="0683", RUN+="/sbin/modprobe -q ftdi-sio product=0x4108 vendor=0x0683"
#SYSFS{idProduct}=="2450", SYSFS{idVendor}=="0683", RUN+="/sbin/modprobe -q ftdi-sio product=0x2450 vendor=0x0683"
SYSFS{idVendor}=="0683", SYSFS{idProduct}=="4108", MODE="0666"

とコードを削り取る。

import usb.core
import usb.util
dev = usb.core.find(idVendor=0x0683, idProduct=0x4108)
dev.reset() 

しかし、必要なパーミッションが与えられない。 私のコードでは、まだエラーが発生します。

import usb.core
import usb.util
dev = usb.core.find(idVendor=0x0683, idProduct=0x4108)
dev.reset()

不思議なのは、ターミナルからスーパーユーザーでIDLEを起動するとパーミッションが出ること(ターミナル。 sudo idle ).

解決方法は?

あなたのルールは少し奇妙に見えます。すべて削除して、代わりにこれを試してみることはできますか?

SUBSYSTEM=="usb", ATTRS{idVendor}=="0683", MODE="0666"