2人のユーザーがいるUbuntu 11.10システムがあります。
問題は、2番目がデバイスttyUSB0
を使用しようとすると、次のエラーが返されることです。
"Could not open serial port /dev/ttyUSB0"
私はそれを使用して修正することができました:
Sudo chown :second_user /dev/ttyUSB0
ただし、デバイスを切断して再接続すると、問題が再発します。
さまざまなユーザーがデバイスにアクセスできるようにする方法はありますか?特定のグループにユーザーを追加する必要があると思います。現在、所有者はroot
であり、グループはdialout
です。ただし、グループについてはわかりませんし、ユーザーを追加する方法もわかりません。
ありがとう!
お気づきのとおり、/dev/ttyUSB0
デバイスにはdialout
のグループがあります。必要なことは、2番目のユーザーをdialout
グループに追加することだけです。
Sudo adduser second_user dialout
これを有効にするには、second_userをログアウトして再度ログインする必要があります。
簡単な方法:
sudoedit /etc/udev/rules.d/50-myusb.rules
このテキストを保存します。
KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"
デバイスを取り外して再接続すると、すべてのユーザーから読み取り/書き込みが可能になります!
UDEVを使用できます。これは、デバイスを(他のものと一緒に)プラグインまたはアンプラグするたびにトリガーするシステムです。これを使用して、許可の設定など、さまざまなスクリプトを作成します。
sudoedit /etc/udev/rules.d/50-ttyusb.rules
を実行して、そこに貼り付けます:
KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"
保存して終了し、再接続すると、稼働状態になります。許可を666に設定すると、誰でもデバイスに書き込むことができます。
私はこれに基づいています このページ これは数年前のものですが、ジェレミーの solution が機能しない場合はこのようなものが機能するはずです。
素晴らしい-ここで与えられたUDEVソリューションは私にとって切符でした。
Wine経由でIcomのCS-F3020_F5010_F5020プログラムをインストールし、Comポートのリンクを次のように作成しました。
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1 but nothing.
それから、/ dev/ttyUSB0のアクセス権を変更してアクセスできるようにする必要があることに気付きました。これは、USBのプラグを抜き差しするまでうまく機能します。その後、アクセス許可を変更する必要があります。
ユーザーをダイヤルアウトグループに追加しようとしましたが、これは何らかの理由で問題を解決しませんでした。
UDEVを使用すると、パズルの最後のピースが解決されます。これで、Linuxを使用してIcomラジオをプログラムし、USB /シリアルデバイスを抜き差しすることができます。うわーありがとう。
Udevルールは機能しますが、書かれているとおり、すべてのttyUSB*
デバイスをすべてのユーザーがアクセスできるようにするという非常に厄介な副作用があります。これは、システム上の他の要素によってはセキュリティリスクになる可能性があるため、良くありません。
代わりに、より選択的なudevルールを使用してください。たとえば、一連のスイッチを操作するUSBデバイスがあります。プラグインされたdmesgから、製造元のIDと製品コード(さらに、この場合はデバイスのシリアル番号)を確認できます。追加できます:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001"
上記のカーネル行に追加すると、ルールはそのデバイスにのみ適用されます。 MODE
変数に単独で割り当てるよりも、グループも設定する方が良いでしょう:
GROUP="whatever", MODE="0660"
グループ 'whatever
'のユーザーのみが書き込みアクセス権を取得します。
ジョン・ボウラー