前提・実現したいこと
お世話になります。
CentOS7上のPythonにて、USB接続したadafruit製のFT232H搭載GPIOモジュールのLチカに成功しました。
しかし、該当のソースはrootユーザでしか正常に動作しません。
rootユーザの使用はセキュリティ上なるべく抑えたいので一般ユーザで該当のプログラムを実行したいです。
現在壁にぶつかっている状態で困っていまして、有識者がおりましたらお知恵をお借りしたいです。
使用モジュール
https://akizukidenshi.com/catalog/g/gM-08942/
実行環境参考サイト(adafruit社公式サイト)
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/linux
発生している問題・エラーメッセージ
前述しましたが、一般ユーザでは正常に動作しませんでした。
恐らく当方の環境が原因でrootしか受け付けてもらえていないと思いますが、ネットで検索しても解決方法が見つからず困っている状態です。
[ippan@localhost py]$ python3 test.py Traceback (most recent call last): File "test.py", line 2, in <module> import board File "/usr/local/lib/python3.6/site-packages/board.py", line 33, in <module> from adafruit_blinka.agnostic import board_id, detector File "/usr/local/lib/python3.6/site-packages/adafruit_blinka/agnostic/__init__.py", line 18, in <module> chip_id = detector.chip.id File "/usr/local/lib/python3.6/site-packages/adafruit_platformdetect/chip.py", line 78, in id count = len(UsbTools.find_all([(0x0403, 0x6014)])) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 100, in find_all sernum = UsbTools.get_string(dev, dev.iSerialNumber) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 556, in get_string return usb_get_string(device, stridx) File "/usr/local/lib/python3.6/site-packages/usb/util.py", line 313, in get_string raise ValueError("The device has no langid" ValueError: The device has no langid (permission issue, no string descriptors supported or device error)
該当のソースコード
Python
1import time 2import board 3import digitalio 4 5led = digitalio.DigitalInOut(board.C0) 6led.direction = digitalio.Direction.OUTPUT 7 8while True: 9 led.value = True 10 time.sleep(0.5) 11 led.value = False 12 time.sleep(0.5)
試したこと
実行環境参考サイトに記述されている実行環境のチェックを一般ユーザで試してみました。
しかし、rootユーザでは正常に動作しますが、一般ユーザでは正常に動作しませんでした。
実行環境参考サイトの実行環境チェック(adafruit社公式サイト)
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/troubleshooting
実行環境チェック(一般ユーザ)
[ippan@localhost py]$ python3 Python 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from pyftdi.ftdi import Ftdi >>> Ftdi().open_from_url('ftdi:///?') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.6/site-packages/pyftdi/ftdi.py", line 497, in open_from_url devdesc, interface = self.get_identifiers(url) File "/usr/local/lib/python3.6/site-packages/pyftdi/ftdi.py", line 401, in get_identifiers cls.DEFAULT_VENDOR) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 313, in parse_url default_vendor) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 417, in enumerate_candidates devices = cls.find_all(vps) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 100, in find_all sernum = UsbTools.get_string(dev, dev.iSerialNumber) File "/usr/local/lib/python3.6/site-packages/pyftdi/usbtools.py", line 556, in get_string return usb_get_string(device, stridx) File "/usr/local/lib/python3.6/site-packages/usb/util.py", line 313, in get_string raise ValueError("The device has no langid" ValueError: The device has no langid (permission issue, no string descriptors supported or device error) >>>
実行環境チェック(rootユーザ)
[root@localhost ~]# python3 Python 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from pyftdi.ftdi import Ftdi >>> Ftdi().open_from_url('ftdi:///?') Available interfaces: ftdi://ftdi:232h:1/1 (??????) Please specify the USB device
回答1件
あなたの回答
tips
プレビュー