Jump to content

Broadcom 570x and 575x


ohpossum
 Share

936 posts in this topic

Recommended Posts

blah ...

 

copy my modyfied extension into the /System/Library/Extensions/IONetworkingFamily.kext/Contents/Plugins

 

Change/Add device into the Info.plist ( still needed, if this not help you must patch with hexeditor my kext )

 

then run

 

sudo -s

cd /

cd /System/Library/Extensions/

ln -s IONetworkingFamily.kext com.apple.iokit.IONetworkingFamily.kext

 

rm /System/Library/Extensions.kextcache

rm /System/Library/Extensions.mkext

chown -R root:wheel /System/Library/Extensions

kextcache -k /System/Library/Extensions

 

and reboot.

 

Patching with Hexeditor :

 

-Expample, device id 169c ( bcm 5788 )

-patch on hex 37336 from "66 81 FA 59 16" to "66 81 FA 9C 16".

 

Thats all. I will patch the 10.4.4 drivers too, but currently try to run the 10.4.3

 

 

heya i'm using the 10.4.5 patched by myzar on my Fujitsu T4010 laptop. Its using the Network Card : Broadcom Corp BCM5705MA2 NetXtreme Gigabit Ethernet

 

I've done the things above except for the hexediting part and it doesnt work.

 

can anyone help me out? like an alternative solution or could you tell me how to hexedit for my card?

 

thanks guys =)

Link to comment
Share on other sites

  • 2 weeks later...

I managed to patch driver additionally to skip the NVRam Init and Check functions and now my PCI-X BCM5751m (167d device id) works even with small limitations :dev: Limitations inlude: Mac doesn't read the Mac Address (obviously it's in NVRam), does not count properly speed (it's 10 times lower in my observations, so when downloading Mac shows 10 times faster speeds than actual is... I don't care) and I didn't manage to start dhcp on start so I had to enter IP/Mask/Router/DNS manually but IT WORKS :angel: In my opinion patch will work on 5750/5751 chips as well device id's 1677/1778 and so on but any feedback will be appreciated.

 

so I personally pathed all occurences of:

"66 81 FA 59 16" to "66 81 FA 7D 16" (It's the instruction cmp dx, 167d... yes everywhere in driver compare is against dx... I tripple checked it) not just 37336... there are 46 occurences... if I remember correctly

Second (my patch) at 37554 change 75 71 to EB 71... this changes just before initnvram and checknvram functions a jnz to a jmp... I think that this jnz is a check if there is nvram present but of course I'm not sure.

 

I don't know if this is the best way to patch it, mostly sure it is not but it works for me...

Test it on your own risk as I did... :2cents:

Link to comment
Share on other sites

Okay, I've been silent for a while (mainly because I didn't get anywhere with this), but I got to a similar point as Hater (just without seeing if it actually worked). Here is the error I got on my BCM5789 (169d) after two sets of patches (which I might post later).

 

BCM5701Enet: Ethernet address 00:64:0a:00:00:64
AppleBCM5701Ethernet:		0		0 resetAdapter - FTQ initialization failed
AppleBCM5701Ethernet:		0		0 wakeUp - reset adapter failed
AppleBCM5701Ethernet:		0		0 enable - failed

 

I never actually tested the adapter out, but the bad MAC address tipped me that it wouldn't be working. I've been doing more reading about Intel assembly...might give this another go this weekend.

Link to comment
Share on other sites

Hater - I patched my kext as you suggested (all "66 81 FA 59 16" -> "66 81 FA 77 16" for my BCM plus 75 71 to EB 71 at 37554). It worked, even DHCP, except my MAC address is 00:00:00:00:00.

 

Thanks!

 

Edit: If my laptop tries to sleep (power save) the patched driver apparently hangs the machine. I have to disable power save to prevent that. Also if I try to set the correct MAC address using ifconfig, the computer hangs.

Link to comment
Share on other sites

I believe I have found a solution for the issue where the ethernet driver fails after second reboot. It has to do with the Kernel Cache copy. You need to reconstruct it to make the configuration stick. I have added the last 2 lines to this command sequence:

 

sudo -s

cd /

cd /System/Library/Extensions/

ln -s IONetworkingFamily.kext com.apple.iokit.IONetworkingFamily.kext

 

rm /System/Library/Extensions.kextcache

rm /System/Library/Extensions.mkext

chown -R root:wheel /System/Library/Extensions

kextcache -k /System/Library/Extensions

 

rm /System/Library/Caches/com.apple.kernelcaches/*

kextcache -c

 

reboot

 

If you have already gone through the process, but without the last 2 lines, open a terminal and do this:

 

sudo -s

rm /System/Library/Extensions.mkext

rm /System/Library/Caches/com.apple.kernelcaches/*

kextcache -c

reboot

 

Good luck ;)

Link to comment
Share on other sites

Sorry to hear that mikemc, but until a real driver comes (that we can modify... I read people are trying to compile if_bge freebsd driver and I hope they will, I'll try too as soon as I get my Xcode downloaded), it's the only solution for me... My other card is Intel WiFi 2200... I know it's a nasty hack to skip the init/check of nvram, but only that way it worked on my BCM 5751m chip. I can definately confirm that this patch works both on previous my instalation 10.4.5 and current 10.4.6 and that for me dhcp is definately not working.

 

But I hope this nasty hack help people in my situation - no working network on a laptop.

Please, if anybody else try it, put feedback. I'm sure a lot of people will be interested in these results. 10x in advance

Link to comment
Share on other sites

I tried this out too but unfortunately it is not working. :whistle:

 

AppleBCM5701Ethernet: 0 0 probe - Invalid provider

 

Thats what I'm getting.

I also have stuff like

Loaded Module (some number) of com.apple.iokit.IOPCIFamily differs from requested version of.....

But this is for a lot of kext that are being loaded.

 

I also tried "patching" the AppleIntel8255xEthernet to make it load my other onboard 82562 Intel PRO/100 VE Network with a 8086 1064 but it also don't work. :D

 

Oh well, too bad.

Link to comment
Share on other sites

I managed to patch driver additionally to skip the NVRam Init and Check functions and now my PCI-X BCM5751m (167d device id) works even with small limitations :dev: Limitations inlude: Mac doesn't read the Mac Address (obviously it's in NVRam), does not count properly speed (it's 10 times lower in my observations, so when downloading Mac shows 10 times faster speeds than actual is... I don't care) and I didn't manage to start dhcp on start so I had to enter IP/Mask/Router/DNS manually but IT WORKS :D In my opinion patch will work on 5750/5751 chips as well device id's 1677/1778 and so on but any feedback will be appreciated.

 

so I personally pathed all occurences of:

"66 81 FA 59 16" to "66 81 FA 7D 16" (It's the instruction cmp dx, 167d... yes everywhere in driver compare is against dx... I tripple checked it) not just 37336... there are 46 occurences... if I remember correctly

Second (my patch) at 37554 change 75 71 to EB 71... this changes just before initnvram and checknvram functions a jnz to a jmp... I think that this jnz is a check if there is nvram present but of course I'm not sure.

 

I don't know if this is the best way to patch it, mostly sure it is not but it works for me...

Test it on your own risk as I did... :whistle:

 

Your method is working on 1677/5751 chipset with limitations as mentioned, OSX version 10.4.6.

1. Mac address is 00.00.00.00.00.00

2. Computer cannot sleep, it freezes.

 

Anyway, it is working.Thanks a lot.

Link to comment
Share on other sites

Your method is working on 1677/5751 chipset with limitations as mentioned, OSX version 10.4.6.

1. Mac address is 00.00.00.00.00.00

2. Computer cannot sleep, it freezes.

 

Anyway, it is working.Thanks a lot.

 

What about DHCP?????? This should fail because of the wrong MAC-adresse!?!?!

Link to comment
Share on other sites

I have a strange feeling that this patch does not work well... :poster_oops: Anybody that tested it... Do you see your clock slowed 10 times also? Because my clock on the desktop is definately not working as supposed and I can't understand if this is other driver in the laptop or my patch... Please anybody, try your systems with working driver and not loaded driver. As you know it's very easy to disable driver... Just remove device id from Info.plist and restart. 10x for feedback if any

Link to comment
Share on other sites

Nice work Hater--the patch works on my BCM5789 (14e4:169d)! DHCP doesn't work, but that is likely due to the MAC address. Later, I'll try doing a 'sudo ifconfig ether en0 00:xx:...' and see if it works. After that, I'll retreat to IDA and find out why your patch works...nice work!

Link to comment
Share on other sites

Setting MAC address probably will work, because setting with ifconfig doesn't set it in nvram (I think), but in driver memory space (at least I would do it this way :angel: ). My patch works only because nobody needs nvram except sleep function that freeze the osx. I don't plan to work on patch anymore since I found my problem and solved it for myself (the awful slowing of the mashine...) Cool boys and girls it was my O2 Micro card reader with a fake card inside not the patch of the driver :dev: There is no point to work on patch if there are opensource drivers for linux/freebsd... Better concentrate on real work than hacking (for me at least is better if I have some inet)

 

Happy hacking with your hackintoshes :happymac:

Link to comment
Share on other sites

Setting MAC address probably will work, because setting with ifconfig doesn't set it in nvram (I think), but in driver memory space (at least I would do it this way ;) ). My patch works only because nobody needs nvram except sleep function that freeze the osx. I don't plan to work on patch anymore since I found my problem and solved it for myself (the awful slowing of the mashine...) Cool boys and girls it was my O2 Micro card reader with a fake card inside not the patch of the driver :D There is no point to work on patch if there are opensource drivers for linux/freebsd... Better concentrate on real work than hacking (for me at least is better if I have some inet)

 

Happy hacking with your hackintoshes :whistle:

 

Thanks Hater,

 

everything works fine.

Whithout the macadress it was not working, even with manual IP-Config. Now I set the macadress in StartupItems and it is working very well. Thanks again - good work.

 

Maso

 

Oh I have to update me signature: Broadcom NeXtrem (now working - DevID 167d thanks to Hater)

Link to comment
Share on other sites

Well, I've tried everything to get my 1677 to work in 10.4.5 and 6 but nada. I had an older 10.4.3 DVD that I never used because I got the updated 10.4.5 DVD. For the heck of it I used it to boot my system cuz I'm still not able to boot from the HDD. When I boot using this 10.4.3 DVD my Network card is recognized!!!!

Actually my Intel card the 82562 EZ Pro is recognized as Intel82557ethernet and MAC address loaded and DHCP works too! But only in the boot process using the -v then as soon as my kexts were loaded from my system it hung :D

The BCM5701 is also loaded but only when the cable is connected. also hung.

So for me that was good news I think if I can get the kexts from 10.4.3 I may be in the green.

I thought (maybe too hastily) that I should format my working 10.4.6 system and install 10.4.3 and then just upgrade to 10.4.5/6 and replace the kexts from the 10.4.3. So I did that but now I got stuck at the 10.4.3 setup it tells me that I can't intall to my OSX partition cuz OSX can't be started from this Disk ???

anyhow one prob after another.

I checked the DVD out there is no /System/Library/Extensions folder. So I don't know how to get those from the DVD. When I start up the setup from 10.4.3 I went to the terminal and found an Extensions.mkext in /System/Library/ so I managed to copy this to USB stick I don't know if I can do anything with this though.

Link to comment
Share on other sites

As I suspected setting MAC works through ifconfig command (at least for me)

After that DHCP is working as supposed

 

If someone needs the commands:

# set MAC address

sudo ifconfig en0 ether 12:34:56:78:90:AB

# renew IP

sudo ipconfig set en0 BOOTP

sudo ipconfig set en0 DHCP

 

very strange way (for me) to renew the ip from DHCP but it's easy to write standart *NIX command dhclient as I did :)

Link to comment
Share on other sites

Hater, thank you very much. It works!

:angel:

 

I have DELL GX520/SC430 and both BCM5751 on board.

I could make SC430 work and I write down step by step how I did for someone who has SC430/GX520 or BCM5751 onboard.

So people like me should not read all thread to make it happen.

 

My DEV_ID of BCM5751 is "1677" (VEN_ID is "14E4").

MAC ADDRESS is "00:13:72:18:XX:YY". (replace XX YY as yours)

You can check these numbers in Windows.

Also you need the following tool or similar software called "binary editor" or "hex editor".

 

Hex Edit (freeware)

http://www.versiontracker.com/dyn/moreinfo/macosx/10658

---

Run terminal

 

sudo -s

 

cd /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM5701Ethernet.kext/Contents/MacOS

 

cp AppleBCM5701Ethernet /Users/your_account_name/Desktop

---

(back to Desktop)

1) right click AppleBCM5701Ethernet, Get Info.

2) change ownership & permissions as you can modify it.

3) run HexEdit, then open AppleBCM5701Ethernet

4) choose "Find & Replace" from menu.

5) Find: "66 81 FA 59 16" /Replace with: "66 81 FA 77 16"

(my DEV_ID was 1677, you type yours at last two bytes)

6) Matching: "Hex: (<-choose this)

7) push "Replace All"

8) scroll down to 37550

9) change address 37554, 37555 of "75 71" to "EB 71"

10) then save file and quit Hex Edit.

11) change ownership & permissions as before (by Get Info)

ownership="system" and group="wheel"

12) (return to terminal)

---

cp /Users/your_account_name/Desktop/AppleBCM5701Ethernet ./

shutdown -r now (or reboot)

---

(after reboot, run terminal)

 

sudo ifconfig en0 ether 00:13:72:18:XX:YY

 

(machine should get IP address if you connect cable)

I did not need the following steps which Hater mentioned.

---

# renew IP

sudo ipconfig set en0 BOOTP

sudo ipconfig set en0 DHCP

 

Thank you again, Hater. I could save one PCI slot from GX520/SC430.

 

[ual808 turning DELLs into Macintels] :)

Link to comment
Share on other sites

What I ment was if you need to changed it on a regular bases as I do on every restart... I'm not very familiar still with Os X for now and don't know the right place for changing the MAC address of the card so that on boot MAC to be changed before invoking DHCP from the system for this network card...so I wrote a script for my self and put it rc.local as on FreeBSD and now I have changed MAC address and DHCP on every reboot. Without these commands I don't have DHCP because the MAC is 00:00:00:00:00:00.

 

One thing I noticed... If you unload the driver and load it again ifconfig shows that mac is the one you setup before, but it's not the case and you should change it again for proper DHCP work.

 

And one more... I made a look through the tg3 broadcom linux driver and I can definately say that AppleBCM5501Ethernet doesn't know there are flash based NVRAM broadcom chips at all (our case). The original driver tries to read eeprom with an obfuscated value, but flash based NVRAM chip don't obfuscate the content of NVRAM and read it different way. In tg3 there are different functions for reading eeprom based NVRAM and flash based NVRAM and flash based NVRAM is written differently if the flash chip is buffered or not. :blink:

 

So... the point of all this info is that there is no easy way to patch NVRam reading in driver because the functions don't exist at all for reading flash based NVRAM

 

The solution... port linux(tg3)/freebsd(if_bge) driver to MacOSX :D

 

Good luck to people trying to do this hard job. I tryed too but I only managed to load/unload driver, initialize card, read MAC from NVRAM from chip and initialize Phy(sical connection) whitch by the way can be used without modification for start. And don't have time to port the drivers themselves. :D

 

Happy hacking with your hackintoshes :shock:

Link to comment
Share on other sites

I got my Dell GX620 with the Broadcom 5751 working! I know there are a lot of folks like me out there, so here's what I did.

 

1) Firstly, I can only seem to load x86 v10.4.5 (10.4.6 doesn't install for some reason. Whatever..), so I can't vouch for other versions, yet..

 

2) Did everything in the Hater post in this thread (April 26, 9:26 AM posting) with one exception: In the AppleBCM5701Ethernet.kext, where it states find and replace "66 81 FA 59 16" to "66 81 FA 7D 16", I put in "66 81 FA 77 16"; which is the location of the card in my Dell GX620. Make sure you still change that value in 37554 from 75 71 to EB 71!

 

3) The magic happened when I went into AppleBCM5701Ethernet.kext --> Contents and edited Info.plist (using Mac TextEdit) to include the following line under the section labeled "<array>":

 

<string>pci14e4,1677</string>

 

4) Reboot.

 

5) If it works, BOUNCE OFF THE WALLS!

 

Special thanks to Hater and the whole crew and community at the OSx86 project!

 

Happy hacking!

 

-gF

Link to comment
Share on other sites

DHCP works fine (using a Linksys router). The MAC is zeroed out, but as long as the DHCP server doesn't mind, neither do I. In regards to throughput, web browsing is cooking at what seems like the same speed as my PC desktop (DSL Reports speed test from the Mac say I'm screaming). I'm a bit of a Mac/UNIX rookie, so I'm not yet familiar with the apps and tools that'll really let me test things like LAN performance etc. If you want me to try something specific, let me know.

 

-gF

Link to comment
Share on other sites

Does this mean it works properly like a regular NIC would?. ie. exhibiting none of the problems with

 

- DHCP

- MAC address

- Slow throughput?

 

I have GX520 and SC430 (both have BCM5751) work fine as I wrote several thread ago.

-DHCP

-MAC address

As you care, these have some difficulty. However you can make it work as Hater mentioned.

Set MAC address manually or let script to do it every reboot, these will be fine.

 

-Slow?

NO for me. I have only 100/10BASE switching hub but FTP goes 11MB/sec between local machines.

I never try Gig ehter yet. Hoping someone post report.

 

Now, I set fixed IP address for my osx86. This way no need to set MAC address.

 

One more thing, while you play with this hack with cable connected.

Some swiching hub screw up with zero out MAC address of you machine,

you may see no ping reach to other PCs out of hub. In this case just TURN OFF/ON your switching hub.

Link to comment
Share on other sites

 Share

×
×
  • Create New...