web-dev-qa-db-ja.com

キーボードがUbuntu 16.04の動作を停止する

明確な理由もなくキーボードが動作しなくなりました。

Windowsホスト(仮想ボックス)で仮想マシンとして2.5年間Ubuntuを使用した後、ついに思い切ってハードディスクを再フォーマットし、昨日Ubuntuでシステムを構築しました。今朝、キーボードが機能しなくなりました。

UbuntuとUSBキーボードまたはマウスがランダムに動作しなくなることについて、多くの投稿があります。 USBデバイスの電源をオフにする自動サスペンドであり、USBデバイスが互換性を持たないため、USBが本来のように「ウェイクアップ」しないことが示されています。

これに投稿された提案を試してみました link

しかし、運はありません。また、キーボードなしで起動し、Ubuntuが起動したら接続するという別の提案も試みました。

詳細はこちら

  • 過去2年間、仮想マシンとしてUbuntuと同じKinesisキーボードを使用しましたが、問題はありませんでした。
  • Kinesisにはマクロがあり、マクロをトリガーすると問題が100%トリガーされます。ただし、(マクロなしで)入力するだけでも同様に発生します。
  • ラップトップでKinesisを試しました。これは2週間前にUbuntu 16.04を置いた1台のマシンです。 Kinesisキーボードマクロを使用しても問題は再現しませんでした。

問題のマシン

  • Dell XPS、6歳、デスクトップ
  • 昨日Ubuntu 16.04をインストールしました
  • Kinesis Advantage USBキーボードを使用する
  • キーボードの取り外し/再接続は10回中9回機能しました
  • 再起動も同様に機能します
  • キーボードのLEDが点灯したままで、他のUSBデバイスが動作し続けるため、USB電源の問題ではないと思います。
  • マシンにUSBマウスとBluetoothマウスの両方が接続されています。 Kinesisが停止しても、両方とも機能し続けます。
  • 私は通常、コンピューターを使用する必要がある非Kinesisの人のために、2番目の通常のDellブランドのキーボードを接続しています。本日、このキーボードはKinesisの動作が停止するたびに動作を停止しました。ただし、マクロで問題が発生すると、Dellキーボードは機能し続けます。

私が8年前から持っていたKinesisにより、キーボードを使い続けることができました。これを解決できない場合は、Windozeに戻る必要があります。

これをデバッグするための試みや方法に関する提案は大歓迎です。

編集:USBドライバーを掘り下げましたが、Linuxではこれについては何も知りません。しかし、ラップトップにはUSB 2.0と3.0の両方のポートがあることがわかりました。 (問題のある)デスクトップはUSB 2.0のみです。まだ掘っている...

15
klequis

Xenial 16.04でも同じ問題があり、解決策を探していました...これは、デバイスをウェイクアップするためだけにマウスカーソルを絶えず移動するのが非常に面倒でした。神経質な危機の近くで、私は放棄し、新しいインストールまたは変更ディストリビューションを行う途中でした(笑)。しかし、私はついに私の問題に対する唯一の解決策を見つけました。それはあなたのものとまったく同じように思えます、klequis。

コンテキストストーリーを気にしない場合、この答えの最後に解決策がありますコンテキストは役に立たないブラブラのように見えるかもしれませんが(おそらくそうです)、私のPCで解決した問題が彼らのものと同じであるかどうかを読者が確認するのに役立つと思います

状況

私は必死に失敗しました、ウェブで見つけたすべてのヒントの近くでテストし、試行ごとに再起動しました:

  • '/ etc/default/grub'カーネルブートusbcore.autosuspend=-1パラメーター
  • laptop-modeの 'runtime-pm.conf' CONTROL_RUNTIME_AUTOSUSPEND=0
  • 「/etc/laptop-mode/laptop-mode.conf」ファイルからラップトップモードツールを完全に無効にして、問題がこのカーネル機能に関連していないことを確認し、laptop_mode 確実に実行されていません。 (参照:man laptop-mode.confman laptop_mode
  • 「/etc/laptop-mode/conf.d/usb-autosuspend.conf」に関するいくつかのトリックを読みましたが、このファイルは、ラップトップモードツールv1.68を搭載したUbuntu 16.04のバージョンには存在しません
  • powertopアプリのアンインストールは、フォーラムで自動サスペンドの問題を引き起こすことがしばしば疑われていますが、今日、アンインストールしても何も修正されないため、私の場合はそうではないことがわかりました
  • '/etc/modprobe.d/usb.conf'のoptions usbcore autosuspend=1も非効率的です
  • '-etc/udev/rules.d/60-power.rules'スクリプト Gentoo official Wiki により提供
  • rulesのデバイス固有のudevファイル Serge Y. Stroobandt が推奨する '/etc/udev/rules.d/usb-power.rules'

この技術的なものをすべて読んだ後、私は私の設定に何を変更しても、2秒でスタックした「/ sys/module/usbcore/parameters/autosuspend」値に関係していることしか理解できませんでした。 catコマンドで確認できます:

$ cat /sys/module/usbcore/parameters/autosuspend
2

はい、2秒後にマウスが無効になったため、正しい方向に進んでいることがわかりました。もちろん、私はあちこちで見たecho -1コマンドをテストしました。-1は自動サスペンドを無効にすることを意図していましたが...:

Sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied

須藤モードでも許可が拒否される理由がわかりませんでした。私はそれが問題になる可能性があるとは思わなかったので、ルートとしては試しませんでした。ここに間違いがありました:(

Alex Dekker&Bryceコメントのおかげで、autosuspend私のマウスのみ。しかし、もちろん最初の試みはこのbash: Permission denied errorで失敗したため、Alexが提案したecho -1コマンドが最終的に機能する前に、ルート/ Sudoの混乱を理解するのを待たなければなりませんでした。

また、rootとしてログインせずにrootユーザーとしてコマンドを実行するより良い方法を見つけました。ルートシェルとrootコマンドの使用法の違いは、公式のUbuntuの RootSudo wikiページ で説明されています。私はこのようなことを学ぶのが大好きですが、ちょっと!なぜ苦痛を伴う方法で常に学ばなければならないのですか?笑

OMGそれは本当の頭痛の種であり、私のような初心者が理解するのに多くの時間を要しました。私の目にはより多くのトレーニングが必要です。

自分のことを話すのをやめて、修正しましょう!以下に進んでください...


アイドル状態の外付けHDDがラップトップのバッテリーを無駄に使い果たさないようにするために、2番目のソリューションを強くお勧めします。しかし、自分の自由を愛する人は、お互いの自由も愛すべきだからです。

解決策1

すべてのUSBデバイス/ポートで自動サスペンドを無効にするには

  1. ターミナルを開いて実行します:

    Sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
    
  2. これは確かにtemporaryソリューションであり、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されるかどうかを即座にテストできます
  3. USBデバイスが正常に機能する場合は、「/ etc/rc.local」スクリプトを編集するだけで、システムが起動するたびにそのコマンドが実行されます。このようにして、修正をpermanentのようにしますたとえばnanoを使用して、ファイルを編集します。

    Sudo nano /etc/rc.local
    
  4. echo -1コマンドをexit 0行の前の '/etc/rc.local'ファイルに配置します

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    (...)
    # By default this script does nothing.
    echo -1 > /sys/module/usbcore/parameters/autosuspend
    exit 0
    
  5. コンピュータを再起動してください

重要な注を最後に確認してください)

解決策2

特定のUSBデバイス/ポートの自動サスペンドを無効にするには

  1. USBデバイスの電源オプションは/sys/bus/usb/devices/n-n/powerにあります。特定のデバイスのn-nは、見つけるためにいくつかの操作を必要としますが、複雑ではありません。以下の例は、ワイヤレスマウスレシーバーのusbポート番号が3-1であると判断した方法を示しています。したがって、ご自身の状況に合わせて調整してください。

    • USBデバイスを取り外し、ターミナルを開いてSudo dmesgコマンドを実行します

    • USBデバイスを接続し直し、ターミナルでSudo dmesgを再度実行して、変更を確認します

    • dmesgコマンド出力の最後は、マウスをスロットに差し込んだ後のようになります。

      [40208.575249] usb 3-1: new full-speed USB device number 8 using xhci_hcd
      [40208.705233] usb 3-1: New USB device found, idVendor=062a, idProduct=4102
      [40208.705240] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
      [40208.705245] usb 3-1: Product: 2.4G Wireless Mouse
      [40208.705248] usb 3-1: Manufacturer: MOSART Semi.
      [40208.707679] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/input/input24
      [40208.763946] hid-generic 0003:062A:4102.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-1/input0
      

      これで、USBデバイスが接続されているポートがusb 3-1として識別されていることがわかります。

      注:このトリックは、デバイスIDではなくUSBポートIDに関係します。たとえば、マウスを次のUSBポートに接続すると、dmesgの結果でusb 3-2として識別されます。しかし、このソリューション#2は、マウスまたはキーボードを常に同じポートに接続する習慣を身に付けている場合に非常に便利であり、一般的に人々が無意識に行うために使用するものです;)

  2. ターミナルで次のコマンドを実行し、自分のポート番号3-1を自分のdmesgの結果で見つかったものに変更します。

    Sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
    

    Linux公式ドキュメント に従って、カーネルバージョン2.6.38以降、autosuspend_delay_msが非推奨のautosuspendに置き換わっていることに注意してください。

  3. これは確かにtemporaryソリューションですが、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されたかどうかを簡単にテストできます

  4. USBデバイスが正常に機能する場合は、「/ etc/rc.local」スクリプトを編集するだけで、システムが起動するたびにそのコマンドが実行されます。このようにして、修正をpermanentのようにしますたとえばnanoを使用して、ファイルを編集します。

    Sudo nano /etc/rc.local
    
  5. echo -1コマンドを '/etc/rc.local'ファイルのexit 0行の前に配置します。コマンドのポート番号n-nを変更することを忘れないでください:

        #!/bin/sh -e
        #
        # rc.local
        #
        # This script is executed at the end of each multiuser runlevel.
        (...)
        # By default this script does nothing.
        echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
        exit 0
    
  6. コンピュータを再起動してください

重要:USBを切断/再接続する場合は、Sudo sh -c "temporary"コマンドを手動で再度実行する必要があることを忘れないでください同じUSBプラグに再び接続した場合でも、デスクトップ環境が既に起動しているときにデバイスを使用します。通常、「/ etc/rc.local」ファイルはシステムの起動時に一度だけ呼び出されるためです。

とにかく、回避策が可能です。優れたスキルを持つ人々にはもっと賢い方法があるかもしれませんが、Ubuntuでポート固有のエイリアスを設定しました。 USBデバイスをどこかで抜き差しする必要がある場合、単純なusb1またはusb2コマンドを選択的に使用できます。君も!また、 commands aliases を作成して、完全なコマンドを入力する代わりに短い単語で再生することもできます。2分未満で簡単に設定でき、Alt + F2でも機能します:)

より簡単にするためのより多くのアイデアも大歓迎です。

乾杯:)

5
Fenyx

私はまったく同じ問題を抱えていました(Kinesisキーボード、再起動後に機能しなくなりました)。

結局、それがカーネルのアップグレードに関連していることがわかりました

  • 再起動前はバージョン4.4.0-31-genericでした
  • 再起動後は4.4.0-38-genericでした

古い4.4.0-31カーネルを使用してブートすると、問題が修正されました。

この投稿 には、古いカーネルを使用してブートする方法に関する指示が含まれています(古いカーネルがあなたに代わっているかどうかを確認できます)。

1
jeroend

私はこの報告書や他の報告書を過去1年にわたって何度も読みましたが、最終的には問題の原因となっているキーボードの使用をあきらめ、ワイヤレスキーボードに切り替えました。

問題が新しいPCを構築した頃に始まったことに気づくまで、それは電源の問題かもしれません。そこで、キーボードを接続するためのpowered USBハブを購入しました。問題を解決しました!結局のところ、これはソフトウェアの問題ではありませんでしたが、どうやら私の新しいコンピューターはUSB出力が不足しているようです(つまり、私のキーボードはそう思っています)。

上記のようにキーボードが断続的に停止していて、ソフトウェア側で何も機能していない場合は、試してみる価値があります。給電されたUSBハブは高価である必要はありません。

0
FvD

同じ問題がありました。私にとって、解決策は簡単でしたが、実際の理由は不明のままでした。

昨日、2番目のマウスをPCに接続しました。すべてがうまくいきました。今日、起動したとき、ログイン画面またはデスクトップでキーボードが機能しませんでした。起動中に機能しました。たとえば、BIOSになりました。

新しいマウスを取り外し、すべてのUSBケーブルを再接続した後、キーボードが機能し始めました。

0
Ohto Nordberg

laptop-mode-toolsがある場合、以下を変更することでusb自動サスペンドを完全に無効にできる場合があります。

AUTOSUSPEND_TIMEOUT=2

/etc/laptop-mode/conf.d/runtime-pm.conf

AUTOSUSPEND_TIMEOUT=-1

このファイルにはコメント付きのオプションがあることに注意してください

untime-pm.conf:# Example: AUTOSUSPEND_DEVID_BLACKLIST="usbhid usb-storage"

電源管理設定を微調整する場合は、このオプションを試してみてください。

ノート:

  • usbcoreはカーネルにコンパイルされます。
  • systemdを使用
  • Ubuntu 16.10
  • Linuxカーネル4.8.0-41-generic#44-Ubuntu
0
Antonio Medina

これは私が探していた答えではありませんが、この問題を解決するために2日間/何時間も費やしました。 PCIe USB 3.0ハブを購入して、それが機能するかどうかを確認しました-うまくいきません。

私の結論は、この問題は解決する価値がなく、同じ目的のためのより良い方法があるということです。

私の解決策/回避策は、テキストエディタのスニペット機能に依存することです。これは、特定のエディター(おそらくAtom)に投資して依存することを意味しますが、スニペットはキーボードマクロよりも保守しやすいため、これはキーボードマクロを使用した場合よりも優れています。

この投稿 からUSBについて多くのことを学びました。

0
klequis