Ubuntu 16.04(Xenial Xerus)でキーボードが機能しなくなる


17

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

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

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

USB Autosuspendの修正に投稿された提案を試しました。

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

詳細は次のとおりです。

  • 過去2年間、Ubuntuで同じKinesisキーボードを仮想マシンとして使用しましたが、問題ありません。
  • Kinesisにはマクロがあり、マクロをトリガーすると問題が100%トリガーされます。ただし、(マクロなしで)入力するだけでも同様に発生します。
  • 私は今、ラップトップでKinesisを試しました。これは1週間前のマシンで、2週間前にUbuntu 16.04をインストールしました。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により、キーボードを使い続けることができました。これを解決できない場合、Windowsに戻る必要がありますが、これは本当に残念です。

試してみることやこれをデバッグする方法についての提案は大歓迎です。

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


過去2年間、仮想マシンとしてUbuntuと同じKinesisキーボードを使用しましたが、問題はありませんでした。実際にキーボードを仮想マシンに引き渡しましたか?それ以外の場合は、ホストOSおよびVirtualBoxのドライバーを通過していました。
メレビウス

3年間、WindowsホストでVMとしてUbuntuを使用しましたが、キーボードに問題はありませんでした。ホストがUbuntu GNOMEであり、ゲストもUbuntu GNOMEであるため、この問題が発生しています。
klequis

次に、ゲストOSで物理キーボードを使用していませんでした。Virtualboxは、デフォルトでゲストOSに仮想キーボードを提供します。(したがって、同じ物理キーボードを使用したかどうかは問題ではありません。同じではなかったため)
karatedog

この同様の質問を参照してください:askubuntu.com/questions/688445/laptop-keyboard-stopped-workingxserver-xorg-input-allアップグレードしたとき、パッケージのインストールはうまくいきましたUbuntu 17.04
リラ

回答:


7

Ubuntu 16.04(Xenial Xerus)でも同じ問題があり、解決策を探しました...

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

環境

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

  • '/ etc / default / grub'カーネルブートusbcore.autosuspend=-1パラメーター
  • ラップトップモードの「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アプリケーションのアンインストール。多くの場合、フォーラムで自動サスペンドの問題が発生する疑いがありますが、今日では、アンインストールしても何も修正されないため、私の場合はそうではないことがわかりました。
  • options usbcore autosuspend=1 '/etc/modprobe.d/usb.conf'内も非効率的です
  • Gentoo公式Wikiが提供する「/etc/udev/rules.d/60-power.rules」スクリプト
  • Serge Y. Stroobandtが推奨する「/etc/udev/rules.d/usb-power.rules」のデバイス固有rulesファイルudev

この技術資料をすべて読んだ後、構成にどのような変更を加えても、原因が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

sudoモードでも許可が拒否される理由がわかりませんでした。rootとしては試しませんでした。問題になるとは思わなかったからです。ここに間違いがありました:(

Alex Dekker&Bryceのコメントのおかげで、マウスだけで自動サスペンドを無効にする方法を学びました。しかし、もちろんこれで私の最初の試みは失敗したbash: Permission denied errorのでecho -1、Alexによって提案されたコマンドが最終的に機能する前に、ルート/ sudoの混乱を理解するまで待たなければなりませんでした。

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

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

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


アイドル状態の外付けHDDに2番目のソリューションを使用することを強くお勧めします。しかし、私はあなたに両方の解決策を与えます、なぜなら彼/彼女自身の自由を愛する人はお互いの自由も愛すべきだからです:)

解決策1

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

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

    sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
    
  2. これは確かに一時的な解決策であり、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されるかどうかを即座にテストできます。

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

    sudo nano /etc/rc.local
    
  4. そして、echo -1コマンドを「/etc/rc.local」ファイルのexit 0行の前に置きます

    #!/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ます。

    **Note:** this trick concerns the USB port ID, not a device ID. For example, if I plug my mouse to the next USB port, it becomes identified as `usb 3-2` in the `dmesg` result. But this solution #2 remains very useful if you take the habit to always plug your mice or keyboard to the same port, and it's generally what people use to do unconsciously ;)
    
  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. これは確かに一時的な解決策ですが、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されたかどうかを簡単にテストできます。

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

    sudo nano /etc/rc.local
    
  5. そして、echo -1コマンドをexit 0行の前の「/etc/rc.local」ファイルに入れます。もう一度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. コンピュータを再起動してください

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

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

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


この答えをありがとう。残念ながら、これが答えであることを確認するためのテストはできません。したがって、回答としてマークする必要があるかどうかはわかりません。
-klequis

Ubuntu 16.0.4.2 VirtualBox 5.1.26
Pavlo

1

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

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

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

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

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


新しく構築したマシンには、使用している仮想マシンよりも新しいカーネルが搭載されていた可能性が非常に高いです。しかし、私の問題は、再起動後にキーボードが機能しなくなることではなく、マクロを実行するまで正常に機能し、その時点でキーボードがオフになったことです。私のマクロの使用のほとんどは、一般的なプログラミングキー用でした。現在、私はAtomエディターを使用しており、そのショートカット/自動タイプ(と呼ばれるものは何でも)が必要なことのほとんどを実行しているので、私はそれで満足しています。
klequis

0

次のように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

また、私は次のことに注意しました。
Antonio Medina

ノートパソコンではなく、私はなしで生活することを学びましたが、あなたの提案に感謝します。
-klequis

laptop-mode-toolsが実行されているかどうかは、システムがラップトップであるかどうかとはほとんど関係ありません。壁のA / Cサーバーに常に接続していたのでそれを実行していたので、/ etc / laptop-mode / conf.d / runtime-pm.confファイルのAUTOSUSPEND_TIMEOUT = -1を設定すると、苦労して最終的に修正されましたこれは14.04から16.04に更新してからです。
レズティフェルティ

0

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

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

新しいマウスを取り外し、すべてのUSBワイヤを再接続すると、キーボードが機能し始めました。


USBデバイスの合計数(最大2)。私はそのようなシステムを持っています。USBポートのタイプ、USB 2とUSB 3に関連している場合もそうでない場合もありますが、残念ながら、BIOSには回避するためのオプションがそれほど多くありません。
ピーターモーテンセン


0

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

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

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


または、USBポートで電流制限が有効でしたか?例えば100ミリアンペア
ピーターモーテンセン

0

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

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

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

USBサブシステムのリセットからUSBについて多くのことを学びました。


約3か月前にKinesis Advantage2を購入しました。ちょうど10年の1つを着用しました。正常に動作します。この問題で説明されている問題がない。
クレキス

スニペット(テキストテンプレート)は非常に便利ですが、キーの組み合わせを制御することはできません。純粋なテキスト(?)のみです。例えばは、Shift + Ctrl + Tabスニペットに入れることができない(Firefoxで左に次のタブに移動する)
ピーター・モーテンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.