web-dev-qa-db-fra.com

Comment trouver et recharger un pilote spécifique du noyau?

J'utilise crunchbang 64 bits O.S. avec un adaptateur sans fil Asus N150. Chaque fois que je ferme mon ordinateur portable et qu'il entre en mode veille, lorsque je me "réveille", je suis incapable de se connecter à l'aide de l'adaptateur sans fil; Je dois redémarrer.

Mes questions sont:

  1. Y a-t-il un moyen de trouver le nom du pilote spécifique? Je sais que c'est un adaptateur Asus N150 avec un chipset Realtek.

  2. Comment puis-je recharger le pilote pour l'adaptateur sans réinitialiser le système?

  3. Comment puis-je trouver ma version de noyau actuelle via Terminal (Sidenote)?

7
Joseph

façon de trouver le nom du pilote spécifique

  • lspci | grep -i network

Je ne sais pas si cet appareil est sur le bus PCI ou USB, mais vous pouvez essayer ce qui suit.

  1. Utilisez lsusb ou lspci pour trouver des informations sur le périphérique
  2. Recherchez cet appareil pour le module correspondant ("pilote")
  3. Assurez-vous que le module est chargé et disponible avec lsmod et modprobe

Une autre idée serait d'utiliser lsmod et diff pour savoir quels modules se manquent lorsque votre ordinateur portable utilise le mode veille. Cela pourrait être plus d'un module qui a un problème.

  1. machine de redémarrage
  2. assurez-vous que l'adaptateur WiFi fonctionne
  3. utilisez lsmod pour obtenir tous les modules chargés

    lsmod > loaded-modules-before-sleep.txt
    
  4. mettre un ordinateur au mode veille

  5. réveiller la machine
  6. assurez-vous que l'adaptateur WiFi ne fonctionne pas
  7. utilisez lsmod pour obtenir tous les modules chargés

    lsmod > loaded-modules-after-sleep.txt
    
  8. utilisez diff pour voir ce qui a changé!

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

recharger le pilote sans réinitialisation du système

Une fois que vous connaissez le module de chargement, utilisez simplement modprobe comme racine

  • modprobe wifi_module_name

trouver la version actuelle du noyau via Terminal

uname à la rescousse! uname devrait vous dire ce que vous voulez savoir.

  • uname -a
7
Nathan McCoy

Ajout d'une réponse plus courte et plus spécifique pour ma propre commodité :)

Pour découvrir le module du noyau, problème lspci -vvnn | grep -A 9 Network (à partir de 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

De cela, vous pouvez voir que wl est utilisé.

Recharger à la demande, faire

Sudo rmmod wl && Sudo modprobe wl

Pour recharger sur SLEEP/HIBERNATE, installez PM-Utils et ajoutez un fichier avec n'importe quel nom en /etc/pm/config.d/, par exemple /etc/pm/config.d/suspend Avec le contenu suivant:

SUSPEND_MODULES="wl"

Ceci est expliqué à Arch-pm-utils wiki et page d'homme d'action pm-action

2
Alexander Torstling