Broadcom 5787M driver by nobb1x v 0.3 - an hexedited version of the original Applebcm5701 kext
Thanks to
various peoples on insanelymac forum, this kext has been hacked so many times that is impossible
keep track of all of them, the last hint to make it working come from Loepere, thanks guy!!
Thanks to Omegax, Collit99 and Pocopico for testing.
Disclaimer
This kext has been tried ONLY on the Broadcom 5787M and is proved to work with it, do not try on other
Broadcom cards until you know what you are doing.
Broadcom BCM 5787M is 14e4:1693 device
Installation
Just use Kext Helper b7 app or do it manually if you know how, is not the scope of this readme teach how to install kexts
Be sure to remove any other bcm5701/bcm5751 from your Extensions folder if you have altered its Info.plist files
This driver only work in promiscuous mode, at least with my router (3com) it seem setting promiscuous
mode in Macos is a shame or a secret, or at least i was unable to set it,neither was able to find docs on google, to have
the driver working you have 3 options
1)
open a terminal window and type:
sudo tcpdump -i enX where X is the number of your BCM ethernet interface, it could be en0 or en1 it depend
on how many lan cards there are in your pc.
You can minimize the terminal window but not close it or the driver will cease to work.
2)
Another way to run tcpdump would be like that :
sudo nohup tcpdump -i enX > /dev/null &
terminal window can be closed in this case.
3) (thanks Pocopico)
There is a folder called Start_Promisc within the archive, copy it in /Library/StartupItems then open the file
start_promisc you can find into the folder with TextEdit, changing the two variables at the top INTF and KEXTPATH
to match your setup. save it.
from a terminal window type:
sudo chmod -R 755 /Library/StartupItems/Start_Promisc
sudo chown -R root:wheel /Library/StartupItems/Start_Promisc
and you are all set, at next reboot you dont have to do a thing it will start tcpdump automatically.
A note: it seem there are problems running the script if you use the rtc fix http://forum.insanelymac.com/index.php?showtopic=94743
this procedure change leopard to use local time instead of UTC (dual boot Vista/Leopard)
I don't know why but the SystemStarter complains about the folder date creation, the funny thing is that in macos you can't see
the creation date but only the modification date, so you have to wait the next day to have the script working (M$ i miss you :/)
Removal
if you run in troubles just start macos pressing f8 then at the boot prompt use the -s switch, mount manually
the / volume then rm -rf /System/Library/Extensions/AppleBCM5787M*
then reboot
Remove the Start_Promisc folder too from your Library/StartupItems if you have used it.
Known bugs
the kext can't be unloaded, it crash your pc, it is known to not affect shutdown neither restart btw
do not attempt to change the MAC Address manually, it crash
it may or may not affect your suspend/resume, i can't try because my system don't support it
Not a bug but it hasn't been tried with gigabit lans so it may or may not work
Features
work with dhcp servers, no need to assign ip manually, you can assign it if you need anyway
working MAC Address, read later about this
seem stable, i've watched many movies on youtube and downloaded large files without issues
has been tested on different notebooks with various kernels.
It has been named AppleBCM5787MEthernet.kext to clarify the fact that it works with it only!
Getting MAC Address
You need HexFiend go get it ---> http://www.ridiculousfish.com/
You need to know your bcm5787M MAC address
unzip the bcm kext on your desktop
start hexfiend and open the file AppleBCM5787MEthernet inside Contents/MacOS
navigate to the 2e900 address,you can see some B8 XX , you need to change the value near to
the B8's with your MAC Address
YOU MUST ENABLE OVERWRITE MODE - EDIT MENU THEN ENABLE OVERWRITE MODE!!!
0002e900 09 8B 45 0C C7 00 00 00 00 00 31 C0 C9 C3 55 89
0002e910 E5 8B 55 08 8B 4D 0C B8 03 00 00 00 90 90 88 01 <-- one occurrence
0002e920 B8 BF 00 00 00 90 90 88 41 01 B8 58 00 00 00 90 <-- two occurrences
0002e930 90 88 41 02 B8 4C 00 00 00 90 90 88 41 03 B8 A2 <-- two occurrences
0002e940 00 00 00 90 90 88 41 04 B8 11 00 00 00 90 90 88 <-- one occurrence
0002e950 41 05 31 C0 C9 C3 90 90 90 90 90 90 90 90 55 89
on this example the mac address is 03:bf:58:4c:a2:11
kext default mac address is BA:AD:FO:OD:BA:AD
don't touch the B8 of course!!!
if you have already installed the kext on its defaults, you must reinstall and reboot to see the changes
Double check then save the file, if you mess with something here the driver will crash as soon it load!!!
nased0