変更を許可するためにSteamをインストールするためのコードを作成する方法がわかりません。

変更を許可するためにSteamをインストールするためのコードを作成する方法がわかりません。

Linux経由でLenovo ChromebookにSteamをインストールしようとしましたが、コードに従うたびにこのエラーが発生し続けます。権限を付与する方法がわかりません。この状況で何をすべきかを案内してくれる人がいるか知りたかったです。

私は次のコマンドを使用しました。

sudo dpkg -i steam.deb

Steamを設定する準備ができたら、次のように表示されます。

Failed to write 'change' to '/sys/devices/virtual/misc/uinput/uevent': Permission denied

修正する:この問題の解決策が見つかり、続行できます。

答え1

あなたがそれを使用しているという事実で見るとdpkg、私はあなたがDebianまたはそれから派生した他のディストリビューションを使用していると仮定しています。

仮想ファイルは、カーネルモジュールが/sys/devices/virtual/misc/uinput/ueventロードされたときに生成されます。これはカーネルの現在のランタイム状態に基づいて動的に生成される仮想ファイルシステムの一部であるuinputため、その権限に対する変更は再起動後も維持されません。sysfs

Steamがこのファイルにアクセスする必要がある理由は、ハードウェアサポートに関連している可能性があります。uinputカーネルモジュールのサービスにアクセスすると、特定の高度なゲームコントローラ機能および/またはさまざまなSteamVR準拠の仮想現実デバイスのサポートを簡素化できます。

これらのハードウェアデバイスがない場合は、このエラーメッセージを無視してかまいません。 Steamのインストールを妨げてはいけません。

ローカルにログインすると、一部のグループメンバーシップが自動的にユーザーアカウントに追加されます。これらのグループメンバーシップは通常、リモートユーザーが取得できない追加のハードウェアアクセスを許可します。たとえば、ローカルにログオンしているユーザーは通常、ほとんどplugdevのUSBデバイスを簡単に使用できるグループメンバーシップを取得します。このグループはSteamのユースケースにも適しています。したがって、モジュールがロードされるたび/sys/devices/virtual/misc/uinput/ueventに自動的に追加されるグループへのグループ書き込みアクセス権が必要な場合があります。plugdevuinput

(このグループの使用はplugdevDebianとその派生ディストリビューションにのみ当てはまります。他のディストリビューションを使用している場合は、ローカルでログインしたユーザーのハードウェアアクセスを処理する方法を理解し、一致するようにプロセスを調整する必要があります。)

次のコマンドを使用してこれを実行できます(すべて1行に)。

echo "install uinput /sbin/modprobe -i uinput; /bin/chgrp plugdev /sys/devices/virtual/misc/uinput/uevent; /bin/chmod g+w /sys/devices/virtual/misc/uinput/uevent" | sudo tee /etc/modprobe.d/uinput.conf

このコマンドは名前付きファイルを生成し、このファイルにカーネルモジュールのカスタムインストールガイドラインを/etc/modprobe.d/uinput.conf書き込みます。uinput単にモジュールをロードするのではなく最初通常どおりにモジュールをロードし、chgrpコマンドchmodを実行してファイルの権限を調整します/sys/devices/virtual/misc/uinput/uevent

その後、uinputカーネルモジュールをアンロードして再ロードして、設定が期待どおりに機能していることを確認する必要があります。

sudo modprobe -r uinput
sudo modprobe uinput

これで、ls -l /sys/devices/virtual/misc/uinput/uevent次の結果が表示されます。

-rw-rw-r-- 1 root plugdev 4096 May  6 02:08 /sys/devices/virtual/misc/uinput/uevent

このグループに属するすべてのユーザーplugdev(つまり、ローカルにログインしたすべてのユーザー)がファイルを読み書きできることを示します。

関連情報