If you are trying to run reaver on the HP Laptop with Broadcom 4312 Wireless chip on Ubuntu 12.04, this ost will help you. I struggled a lot to get it working and finally managed to hit the nail on the head. Compiling all my thoughts and actions here.
For those of you who do not know about reaver, Reaver is a tool that implements a brute force attack against Wifi Protected Setup (WPS) registrar PINs in order to recover WPA/WPA2 passphrases.I use it as a penetration tool for checking security vulnerabilities and fixing issues.
1) Download the reaver package from http://code.google.com/p/reaver-wps/.
2) Reaver needs to run in NIC'S Monitor mode. On my laptop that has Broadcom 4312 chip, I installed Broadcom's proprietary driver(bc-wl) that is shipped along with Ubuntu or are available for download by default from their reposities/mirrors once you try to install "Additional drivers" available under Settings when logged in via GUI session like Gnome or KDE. These drivers do not allow operation of chip in the Monitor and AP modes but support Managed and Ad-hoc mode. They can only offer connection to AP or Ad-Hoc networks. Also, the driver does not cooperate well with iw tools because it has its own ieee80211 stack. This stack is both outdated and uncompatible with mac80211 stack which b43/b43legacy is based on.
4) Hence, One has two options in this case.
Firstly, uninstall or deactivate broadcom-wl driver and install b43 driver for your wireless chip.
Or, let both the drivers remain installed on the system and keep switching between them by unloading one driver (that is actually a Loadable kernel module, LKM) and load the other.
Manual (un)loading drivers can be done with modprobe.
4.1)If you handpick driver(s) and want to unload them, do
modprobe -r <module_name_1> <module_name_2>
Eg., modprobe -r wl [To unload broadcom wl driver]
4.2)If you want to load a specific LKM(s), try
4.3)One can stop some drivers from auto loading by blacklisting them.For eg., to blacklist b43,
echo b43 >> /etc/modprobe.d/blacklist
If you plan to use wl, you should blacklist b43 and brcmsmac as well as bcma. Unfortunately wl does not use bcma bus driver, so this additional step is required.
5) You can check you wireless card vendor details by running the following commands in terminal.
"lshw -C network "
"sudo lspci -vnn -d 14e4:".
Now look for Network controller in the O/P and that's your Wireless card vendor.
To find out whether your PCI device is bc43 supported, look for the content within  in the O/P of the second command.Find that phrase in the table mentioned under "Supported devices" at http://linuxwireless.org/en/users/Drivers/b43.
6) While trying to install the b43 driver, make sure you have installed the firmware for your wireless chip and then install the b43 driver. It's always better to download the firmware package from Official Ubuntu repository. For my Ubuntu 12.04, I downloaded it from:
and then installed it.One may need to browse for their package from the url, package.ubuntu.com
7) Now run "sudo iwconfig" to check for your wireless interface. Once you have installed the firmware and the b43 driver, try putting your wireless chip in the Monitor mode.
sudo iwconfig <wireless_interface> mode Monitor.
sudo iwconfig wlan0 mode Monitor
8) If you get the error messages like "Device busy" etc.,
shut down the interface, Set the operating mode of the chip to Monitor and then try to activate the interface again.
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode Monitor
sudo ifconfig wlan0 up
9) Check if you wireless interface is now activated or not. Run " lsmod | grep b43 " to check if the newly installed b43 is installed and loaded into the kernel.If not, load it as mentioned in 4.2 above.