Skip navigation.

Wireless with debian on a Macbook Pro

| | | |

I have a new Macbook Pro from January 2008. This model wasn't yet referred to in the debian wiki, so i had a little difficulty at first. I also couldn't remember how to figure out what my wireless card was, and thus which drivers it needed, so ended up typing in a load of different commands. Here are some of the useful ones:

0 asm@origin:~$ lspci 
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root P
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controlle
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controll
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller 
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (re
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (re
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (re
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (re
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controlle
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controlle
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controlle
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controll
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Control
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Co
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600M GT (rev a1)
0b:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wir
0c:00.0 Ethernet controller: Marvell Technology Group Ltd. Marvell Yukon 88E8058 
0d:03.0 FireWire (IEEE 1394): Texas Instruments TSB82AA2 IEEE-1394b Link Layer Co

With that, I was able to google the wireless card (the Atheros one in the list above), which gave me some really helpful hints. First place it took me was an ubuntu tutorial, from which the outlook seemed bleak for the madwifi driver, but good for the ndiswrapper one. Following the links from that page, I then found the thinkwiki site which had precise instructions for the driver I required. I downloaded the windows version of the driver, and was able to proceed comfortably:

0 asm@origin:~/src/driver$ sudo aptitude install module-assistant cabexract
0 asm@origin:~/src/driver$ cabextract 7iwc28ww.exe 
Extracting cabinet: 7iwc28ww.exe
  extracting DATA1.CAB
  extracting DATA1.HDR
  extracting DATA2.CAB
  extracting IBMTPI.XML
  extracting IKERNEL.EX_
  extracting IMDRV/WSIMD.CAT
  extracting IMDRV/WSIMD.INF
  extracting IMDRV/WSIMD.SYS
  extracting IMDRV/WSIMDP.CAT
  extracting IMDRV/WSIMDP.INF
  extracting LAYOUT.BIN
  extracting SETUP.DLL
  extracting SETUP.EXE
  extracting SETUP.INI
  extracting SETUP.INX
  extracting SETUP.ISS
  extracting UNINSTLL.ISS
  extracting WINXP_2K/AR5416.SYS
  extracting WINXP_2K/NET5416.CAT
  extracting WINXP_2K/NET5416.INF
  extracting WLLANATH.TPI

All done, no errors.
0 asm@origin:~/src/driver$ cd WINXP_2K/
0 asm@origin:~/src/driver/WINXP_2K$ sudo /usr/sbin/ndiswrapper -i NET5416.INF 
installing net5416 ...
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
forcing parameter MapRegisters from 256 to 64
0 asm@origin:~/src/driver/WINXP_2K$ sudo ndiswrapper -l
net5416 : driver installed
        device (168C:0024) present
0 asm@origin:~/src/driver/WINXP_2K$ sudo modprobe ndiswrapper 
0 asm@origin:~/src/driver/WINXP_2K$ sudo iwconfig wlan0 
wlan0     IEEE 802.11g  ESSID:off/any  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Bit Rate:54 Mb/s   
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

0 asm@origin:~/src/driver/WINXP_2K$ sudo nano /etc/network/interfaces 

Next up is configuring it...I used wpasupplicant previously, so I'm going to use that again. Even better, when I went to install it, I remembered to read the documentation in /usr/share/doc/wpasupplicant/. That told me that a config file is no longer required, but then I discovered that it now supports roaming well, and it does use a config file. Thus, I just transferred over details from my old one.