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


32

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

回答:


24

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

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

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

その情報を見つけたブログに基づいて、マウスごとのウェイクアップを無効にするための小さなHowToを書きました。


1
これは私の答えよりもずっといいと思うので、それに応じて答えを編集しました。ありがとう!
ロビービーサック

2
だから、この作品は(ただし、私は使用していることを渡すことに気づくsudo動作しません:1が関係しているsudo su最初の、そしてにエコー/proc/acpi/wakeup。しかし、私は誰でもへの道発見したかどうかを疑問に思ってるだけ?無効マウスを私は両方を持っています。私のデスクトップ上(ワイヤレス)USBとこれもキーボードからのウェイクが無効になり介して接続された
マルコ

15

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

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

***アイテムが無効であることが必要テスト-示されているように、ここで -として転記されたアイテムの各々についてenabledcat /proc/acpi/wakeup | sortマウスが(再起動を必要とせずに)システムをウェイク場合、端末で実行されている以下の各コマンド、次いで試験することによって:

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ファイルが存在しない場合- この投稿によると:

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

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


私の編集が気に入らない場合は、@ cipricusにフラグを立ててお知らせください。上記にリンクした別の回答として投稿します。

6

私のシステムは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

出来た。


私のラップトップでUbuntu 18.04で動作します。
ミングエン

1

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

    #!/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

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

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

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


0

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

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

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


0

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

  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. ファイルをfolderに移動またはコピーします/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 defaults (表示されますWARNING: ...missing LSB tags and overridesが問題ありません。心配する必要はありません)。
  7. コンピューターを再起動します。

ソースと詳細情報:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.