web-dev-qa-db-ja.com

マウスの動きがサスペンドされたコンピューターを起こさないようにするにはどうすればよいですか?

一時停止後にマウスを取り外して、時々バンプがシステムを起こさないようにする必要があるので、本当に面倒です。システム設定で、グーグルで動かなくてもこれを無効にできるものは何も見つかりませんでした。

29
user129498

BIOSをまだ確認していませんが、解決策を見つけました!

要約:/proc/acpi/wakeupで、現在どのデバイスがサスペンドから再開できるかを確認できます。このリストには、いわゆる「デバイス」の名前(略称)が表示されます。例「PWRB」は「電源ボタン」を意味します。

そのファイルにデバイス名を書き込む場合、有効/無効を切り替えます。

wake-by-mouseを無効にするための小さなHowTo と書いたのは、その情報を見つけたブログに基づいています。

23
Rooker

マウスのウェイクアップは大きな不便であり、私はここで答えを得たので、すべてのポスターに感謝します。多くの場合に役立つかもしれないので、ソリューションにひねりを加えたいと思います。 /proc/acpi/wakeupの3つの異なるアイテムを無効にする必要がありました。私のデバイス:EHC1, EHC2, XHCI。最初の2つはusb2で、3番目はusb3エントリです。マウスのusbトランシーバーはusb2ポートに接続され、usb3ポートには何もありませんが、コンピューターはall 3までマウスの動きで起動します。アイテムは無効です。

$ cat /proc/acpi/wakeup | sort 
Device  S-state   Status   Sysfs node
EHC1      S3    *disabled  pci:0000:00:1d.0
EHC2      S3    *disabled  pci:0000:00:1a.0
GLAN      S4    *enabled   pci:0000:08:00.0
.. ,, ..
USB7      S3    *disabled
WLAN      S3    *disabled  pci:0000:03:00.0
XHCI      S3    *disabled  pci:0000:07:00.0

スタートアップごとにウェイクアップアイテムを無効にするには、次のようなものを/etc/rc.localに追加します。

echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

cipricusによる編集:

これを編集しているのは、この答えに基づいて上記の複製として個別の question を閉じるために、詳細を追加する必要があったためです。別の回答として投稿するよりも便利だと思います。

***どの項目を無効にする必要があるかをテストします-示されているように here -各コマンドのターミナルで実行することにより、cat /proc/acpi/wakeup | sortの下でenabledとして投稿された各項目に対して以下で、マウスがシステムを起動するかどうかをテストします(再起動の必要なし):

Sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
Sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
Sudo sh -c "echo XHCI > /proc/acpi/wakeup"

(私の場合は、他のUSBポートでテストした後でも最初のもので十分でした)

*** /etc/rc.localファイルが存在しない場合- this 投稿によると:

printf '%s\n' '#!/bin/bash' 'exit 0' | Sudo tee -a /etc/rc.local
Sudo chmod +x /etc/rc.local

ファイルは次のようになります。

#!/bin/bash
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

exit 0

リブート。


それでもうまくいかない場合は、ファイル/etc/systemd/system/rc-local.serviceがないか、適切に設定されていない可能性があります。

でテスト

Sudo /etc/init.d/rc.local start

そして

Sudo systemctl status rc-local

Systemdで/etc/rc.localを有効にする方法

ファイルを作成します。

Sudo nano /etc/systemd/system/rc-local.service

次に、次のコンテンツを追加します。

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

ファイルを保存して閉じます。 Nanoテキストエディターでファイルを保存するには、Ctrl + Oを押し、Enterを押して確認します。ファイルを終了するには、Ctrl + Xを押します。

以下を使用して、エラーがないことをすべて確認します。

Sudo systemctl start rc-local.service
Sudo systemctl status rc-local.service

再起動して変更を確認します。

14
Randy Skretka

私のシステムはUbuntu 15.10です

lsusbコマンドを使用して、マウスデバイスを見つけようとしました。とても簡単です。lsusbと入力してからマウスを外し(私の場合はBluetoothレシーバーです)、もう一度lsusbと入力します。デバイスは次のようになります。

Bus 007 Device 008: ID 24ae:2000

次に、同じ方法(アンプラグ/プラグ)を使用して、/sys/bus/usb/devices/フォルダーで見つけます。私の場合、7-2*で始まるフォルダーのどこかにあることがわかりました。

次に、idProductとidVendorを読み取ってみます。例:cat /sys/bus/usb/devices/7-2.3/idProduct => 2000cat /sys/bus/usb/devices/7-2.3/idVendor => 24ae。それでおしまい。

最後に、/lib/systemd/system-sleepディレクトリにスクリプトを作成し、好きな名前を付けます。

#! /bin/sh

if [ ! -r /sys/bus/usb/devices/7-2.3/power/wakeup ]; then
    exit 0
fi
case "$1" in
    pre )
    echo disabled > /sys/bus/usb/devices/7-2.3/power/wakeup
;;
esac

全部終わった。

6
Minh Nguyen

このスクリプトは私の問題を解決しました。見てみな。

    #!/bin/bash

# allow only one instance
r=$(pidof -x -o $$ ssmonoff.sh)
set -- $r
if [ "${#@}" -ge 1 ]; then
    echo "Script already running. Exit..."
    exit
fi

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do
    if echo $line | grep "boolean true" &> /dev/null; then
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0"
            xset dpms force off
    else
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1"
    fi
done )

必要なことは、最初にSudo xinput listを実行し、USBマウスの指定された名前を見つけて、それをスクリプトに追加するだけです。次に、ファイルを「ssmonoff.sh」として保存し、実行可能にし、起動時に実行するように設定します。

1
yurividal

素晴らしい説明。 rc.localに次のコマンドを追加しました

for d in `cat wakeup |grep enabled|grep -v PS2K|cut -b -4`; do echo $d >/proc/acpi/wakeup ; done

pS2K(キーボードPS2)以外のすべてのデバイスをウェイクアップから無効にします。シンプルで機能的!

1
MeS Fet

ハードウェアに固有の方法が存在する場合があります。その場合、システムのBIOS設定を介してオプションを使用できます。

BIOSメニューにアクセスして設定を変更することもシステム固有です。通常、リブート直後にキーを押すと、多くの場合、押すキーが画面に表示されます。

ただし、user138339の答えは、必要なものを達成するためのより一般的な方法のように思われ、実行中のシステムからこれを行うことができます。

0
Robie Basak

これはあなたのためにそれを機能させるための私の段階的な「チュートリアル」です:

  1. コマンドcat /proc/acpi/wakeupを使用して、ウェイクアップデバイスのリストを表示します
  2. コマンドSudo sh -c "echo XXXX >/proc/acpi/wakeup"(「XXXX」をデバイスコードに置き換えます)を使用して、デバイスの状態(有効/無効)を切り替えます。一度に1つのデバイスに移動し、マシンをサスペンドして、無効にするデバイスを使用して、適切なデバイスがマシンをウェイクアップできなくなるまでウェイクアップします。無効にしたくないデバイスを常に有効に戻すことを忘れないでください。
  3. 次のコードを含むデスクトップファイル「acpi_wakeup」で適切なデバイスを作成したら、#!/bin/sh printf "XXXX" > /proc/acpi/wakeup(「XXXX」をデバイスコードに置き換えることを忘れないでください)
  4. ファイルをフォルダー/etc/init.d/に移動またはコピーします。ファイルをコピーするには、次のコマンドを使用します:Sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup(「USERNAME」を実際のユーザー名に置き換えます)
  5. ファイルを実行可能にします:Sudo chmod 755 /etc/init.d/acpi_wakeup
  6. 次に、「update-rc.d」を使用して、必要なシンボリックリンクを他のディレクトリに自動的に作成します:Sudo update-rc.d acpi_wakeup defaultsWARNING: ...missing LSB tags and overridesが表示されますが、問題ありません。心配する必要はありません)
  7. コンピューターを再起動します。

出典とさらなる読み物:

http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985http:// ubuntuforums .org/showthread.php?t = 814939&page =

0
Juraj.Lorinc