User Tools

Site Tools


install_drivers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
install_drivers [2010/01/03 17:39] – PrismGT SoftMAC and Intel IWL can also inject. netrolller3dinstall_drivers [2013/12/29 14:52] – [Compat-Wireless Alternative Approach] darkaudax
Line 59: Line 59:
  
 ===== Compat-Wireless Alternative Approach ===== ===== Compat-Wireless Alternative Approach =====
 +
 +**UPDATE: compat-wireless is now known as [[https://backports.wiki.kernel.org/index.php/Main_Page|backports]]**
  
 As mentioned previously, the mac80211 drivers quite often support injection out of the box in recent kernels.  The mac80211 drivers are improving very rapidly.  Sometimes you want to try the latest mac80211 driver without recompiling your entire kernel.  This is where [[http://linuxwireless.org/en/users/Download|Compat-Wireless]] comes in.  You can now download a package which lets you compile and install the latest advances on the Linux wireless subsystem and get some of the latest drivers without having to recompile your entire kernel. This package adds mac80211, mac80211 drivers, and any new FullMAC driver which has had fairly recent updates.  As mentioned previously, the mac80211 drivers quite often support injection out of the box in recent kernels.  The mac80211 drivers are improving very rapidly.  Sometimes you want to try the latest mac80211 driver without recompiling your entire kernel.  This is where [[http://linuxwireless.org/en/users/Download|Compat-Wireless]] comes in.  You can now download a package which lets you compile and install the latest advances on the Linux wireless subsystem and get some of the latest drivers without having to recompile your entire kernel. This package adds mac80211, mac80211 drivers, and any new FullMAC driver which has had fairly recent updates. 
  
-For full details see [[http://linuxwireless.org/en/users/Download|Compat-Wireless]].+For full details see the Aircrack-ng [[compat-wireless|Compat-Wireless documentation]].
  
  
Line 82: Line 84:
 The first critical step is to ensure that your wireless device is recognized by your system.  There are a variety of methods to verify that your system did this successfully.  Here are some methods: The first critical step is to ensure that your wireless device is recognized by your system.  There are a variety of methods to verify that your system did this successfully.  Here are some methods:
  
-  * The "dmesg" command can quite often contain detailed messages indicating that the wirelss devices was properly detected.+  * The "dmesg" command can quite often contain detailed messages indicating that the wireless devices was properly detected.
   * If the card is an ISA card, you are usually out of luck.    * If the card is an ISA card, you are usually out of luck. 
   * If the card is a PCI card (miniPCI/miniPCI Express/PCI Express), you need to use the command "lspci" to display the card identification strings.   * If the card is a PCI card (miniPCI/miniPCI Express/PCI Express), you need to use the command "lspci" to display the card identification strings.
   * If the hardware is a USB dongle, you need to use the command "lsusb" to display the dongle identification strings. In some case, "lsusb" doesn't work (for example if usbfs is not mounted), and you can get the identification strings from the kernel log using "dmesg" (or in /var/log/messages).    * If the hardware is a USB dongle, you need to use the command "lsusb" to display the dongle identification strings. In some case, "lsusb" doesn't work (for example if usbfs is not mounted), and you can get the identification strings from the kernel log using "dmesg" (or in /var/log/messages). 
-  * If the card is a Cardbus card (32 bits Pcmcia), and if you are using kernel 2.6.X or kernel 2.4.X with the kernel Pcmcia subsystem, you need to use the command "lspci" to display the card identification strings. If the card is a Cardbus card (32 bits Pcmcia), and if you are using an older kernel with the standalone Pcmcia subsystem, you need to use the command "cardctl ident" display the card identification strings. Try both and see what comes out.  +  * If the card is a Cardbus card (32 bits PCMCIA), and if you are using kernel 2.6.X or kernel 2.4.X with the kernel PCMCIA subsystem, you need to use the command "lspci" to display the card identification strings. If the card is a Cardbus card (32 bits PCMCIA), and if you are using an older kernel with the standalone PCMCIA subsystem, you need to use the command "cardctl ident" display the card identification strings. Try both and see what comes out.  
-  * If the card is a true Pcmcia card (16 bits), and if you are using kernel 2.6.14 or later, you need to use the command "pccardctl ident" to display the card identification strings. If the card is a true Pcmcia card (16 bits), and if you are using an older kernel, you need to use the command "cardctl ident" display the card identification strings. Note that cardmgr will also write some identification strings in the message logs (/var/log/daemon.log) that may be different from the real card identification strings.+  * If the card is a true PCMCIA card (16 bits), and if you are using kernel 2.6.14 or later, you need to use the command "pccardctl ident" to display the card identification strings. If the card is a true PCMCIA card (16 bits), and if you are using an older kernel, you need to use the command "cardctl ident" display the card identification strings. Note that cardmgr will also write some identification strings in the message logs (/var/log/daemon.log) that may be different from the real card identification strings. Usually 16bit PCMCIA cards can be easily identified by the sticker on the bottom of the card with tick boxes or information indicating its a 5V card.
  
 Needless to say, if your wireless device is not detected by your system, you will have to investigate and correct the problem. Needless to say, if your wireless device is not detected by your system, you will have to investigate and correct the problem.
Line 162: Line 164:
  
 ==== Reload Driver ==== ==== Reload Driver ====
-Although it is not very "scientific", sometimes simply unloading then reloading the driver will get it working.  This is done with the rmmod and modprobe commands.+Although it is not very "scientific", sometimes simply unloading then reloading the driver will get it working.  This is done with the rmmod and modprobe (or simply modprobe -r and then modprobe) commands
 + 
 +For b43 and b43legacy, it might also be necessary to reload the underlying SSB module. Similarly, rt2x00 and p54 might need reloading of the common modules (p54common, rt2x00lib, rt2x00usb, rt2x00pci). Sometimes (especially with mac80211 drivers), reloading the stack (for example, modules "cfg80211" and "mac80211") might do the trick. Also another trick is to do modprobe --show-depends <driver>
 + 
 +For USB devices, the trick to reloading the driver is to make sure all of its related interfaces are down (usually wlan0, mon0, etc if you only have one USB device). Then you modprobe -r via the driver it is using and reload those drivers again via modprobe. 
 + 
 +For PCMCIA devices, it is recommended that you have pcmcia-cs package installed as it has a handy utility known as pccardctl. To eject the device virtually, make sure that the interfaces are down following similar guide to USB devices. Once they are down, use pccardctl eject to virtually eject the card/s. Remove all the modules related to the card (hint: if you weren't familiar with the drivers that were used, before you eject the card/s make sure that you do lspci -k as this will list all the devices connected via PCI bus and their related drivers). Once you have removed it, do pccardctl insert and the driver should be loaded automatically. If not load them manually via modprobe.
  
-For b43 and b43legacyit might also be necessary to reload the underlying SSB moduleSimilarly, rt2x00 and p54 might need reloading of the common modules (p54common, rt2x00lib, rt2x00usb, rt2x00pci). Sometimes (especially with mac80211 drivers), reloading the stack (for example, modules "cfg80211" and "mac80211") might do the trick.+For PCI devicesthere is no real shortcut as the device will remain permanently used by the driverYou will need to reboot for the new driver to take effect
  
  
Line 242: Line 250:
 Here are a few things to check: Here are a few things to check:
  
-  * Ensure you have the firmware installed on your system and in the correct location.+  * Ensure you have the firmware installed on your system and in the correct location. usually its in /lib/firmware or /lib/firmware-`uname-r`.
   * You can try downloading a fresh copy of the driver and installing it again.   * You can try downloading a fresh copy of the driver and installing it again.
   * Try connecting your USB device directly to your computer without a cable.  Cables can be defective and/or too long.  If they are too long then the signal may degrade or there is insufficient power.   * Try connecting your USB device directly to your computer without a cable.  Cables can be defective and/or too long.  If they are too long then the signal may degrade or there is insufficient power.
install_drivers.txt · Last modified: 2018/10/05 23:27 by mister_x