web-dev-qa-db-ja.com

カーネルから特定のドライバーを見つけてリロードする方法は?

私はCrunchbang 64ビットO.S.を使用しています。 ASUS N150ワイヤレスアダプタを使用。ラップトップを閉じてスリープモードに入るたびに、「スリープ解除」すると、ワイヤレスアダプターを使用して接続し直すことができなくなります。再起動する必要があります。

私の質問は:

  1. 特定のドライバー名を見つける方法はありますか? Realtekチップセットを搭載したASUS N150アダプターです。

  2. システムをリセットせずにアダプターのドライバーを再ロードするにはどうすればよいですか?

  3. ターミナル(サイドノート)から現在のカーネルバージョンを確認するにはどうすればよいですか?

7
Joseph

特定のドライバー名を見つける方法

  • lspci | grep -i network

そのデバイスがPCIバスにあるかUSBバスにあるかはわかりませんが、以下を試すことができます。

  1. lsusbまたはlspciを使用して、デバイスに関する情報を検索します
  2. 対応するモジュール(「ドライバー」)のデバイスを検索します
  3. モジュールがロードされ、lsmodおよびmodprobeで使用可能であることを確認してください

もう1つのアイデアは、lsmoddiffを使用して、ラップトップがスリープモードを使用しているときに失われるモジュールを見つけることです。問題があるのは複数のモジュールである可能性があります。

  1. マシンを再起動します
  2. wifiアダプターが機能していることを確認します
  3. ロードされたすべてのモジュールを取得するには、lsmodを使用します

    lsmod > loaded-modules-before-sleep.txt
    
  4. コンピューターをスリープモードにする

  5. マシンをウェイクアップ
  6. wifiアダプターが機能していないことを確認してください
  7. ロードされたすべてのモジュールを取得するには、lsmodを使用します

    lsmod > loaded-modules-after-sleep.txt
    
  8. diffを使用して何が変更されたかを確認してください!

    diff loaded-modules-before-sleep.txt loaded-modules-after-sleep.txt
    

システムをリセットせずにドライバーをリロード

ロードするモジュールがわかったら、ルートとしてmodprobeを使用します

  • modprobe wifi_module_name

ターミナルから現在のカーネルバージョンを見つける

uname救助に! unameは、知りたいことを教えてくれるはずです。

  • uname -a
7
Nathan McCoy

私自身の便宜のために、より短くより具体的な回答を追加します:)

カーネルモジュールを見つけるには、lspci -vvnn | grep -A 9 Networkを発行します(- buntu WifiDocs から):

~$ lspci -vvnn | grep -A 9 Network 
03:00.0 Network controller [0280]: Broadcom Corporation BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
    Subsystem: Apple Inc. AirPort Extreme [106b:010f]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 256 bytes
    Interrupt: pin A routed to IRQ 17
    Region 0: Memory at a0500000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: wl
    Kernel modules: bcma, wl

これから、wlが使用されていることがわかります。

オンデマンドでリロードするには、

Sudo rmmod wl && Sudo modprobe wl

スリープ/休止状態でリロードするには、pm-utilsをインストールし、/etc/pm/config.d/に任意の名前のファイルを追加します。たとえば、次の内容の/etc/pm/config.d/suspendを追加します。

SUSPEND_MODULES="wl"

これは Arch pm-utils wiki および pm-action man page で説明されています

2