今、USBデジタル分光計をノートパソコンに接続するOceanOptics SpectraSuiteをUbuntu 16.04にインストールしました。ユーザー「インストラクター」でソフトウェアを実行すると、ハードウェアにアクセスせずに起動します。 sudoで実行すると正常に起動し、ハードウェアが正しく初期化されます。
instructor@modern5-Latitude-E6500:~$ which spectrasuite
/usr/local/bin/spectrasuite
instructor@modern5-Latitude-E6500:~$ spectrasuite
Linux native USB library loaded.
Detected device change on USB
Could not claim device (Vid: 0x2457, Pid: 0x1022, iface: 0)
The interface could not be claimed.
^C
instructor@modern5-Latitude-E6500:~$ sudo spectrasuite
[sudo] password for instructor:
Linux native USB library loaded.
Detected device change on USB
The interface was claimed successfully.
ユーザーを切り替えずに生徒(異なるユーザー名を持つ)にソフトウェアを起動させるにはどうすればよいですか?
答え1
デバイスは同様の方法で接続できます/dev/ttyUSB0
。デバイスの権限を確認し、他のすべてのユーザーを適切なグループに追加できます。たとえば、私のシステムには次のUSBデバイスがあります。
$ ls -al /dev/ttyUS*
crw-rw---- 1 root dialout 188, 0 Sep 1 10:00 /dev/ttyUSB0
$
dialout
したがって、グループ()に私を追加すると、sudo adduser myname dialout
デバイスにアクセスできます。他のデバイス(モデムやシリアルポートなど)はこのdialout
グループを使用できます。これらのデバイスを所有していて学生がそのデバイスにアクセスできないようにするには、他のアプローチを使用する必要があります。
答え2
これまで満足できる解決策は出てこなかった。幸いなことに、OceanOpticsテクニカルサポートはこれをうまく達成するための更新された設定ファイル(10-oceanoptics.rules)を提供しました。
他の失敗方法には、SELinux構成設定の変更(SELinuxは16.04でデフォルトで無効になっています)と2009年2月のインストールCDに含まれている10-oceanoptics.rulesファイルの使用があります。