Jump to content

BCM5722, BCM5754/M, BCM5755/M, BCM5787/M and BCM5906/M NIC driver (32/64-bit)


  • Please log in to reply
241 replies to this topic

#141
Mieze

Mieze

    Giant Cat

  • Coders
  • 766 posts
  • Gender:Female
  • Location:Germany
  • Interests:Cats

Hello.

Is MavericksBCM5722D.kext useful to ASRock Z77E ITX Broadcom BCM57781 on 10.9 DP?

 

No, because the BCM57781 doesn't belong to the BCM5722 family of devices and has a different architecture.

 

Mieze



#142
giacomoleopardo

giacomoleopardo

    InsanelyMac Protégé

  • Members
  • PipPip
  • 67 posts
  • Gender:Male

I see. I've tried my working patched AppleBCM5701Ethernet.kext from 10.8.4 with no success in DP 10.9. Any suggestions?



#143
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male

it's fixed: https://www.copy.com...IZ/MPlayerX.zip


Hello.
Is MavericksBCM5722D.kext useful to ASRock Z77E ITX Broadcom BCM57781 on 10.9 DP?

It should work as I have BCM57780 and it works well. Though driver doesn't support my card technically.
On the whole try it, it should work for you.
Good luck!

#144
Mieze

Mieze

    Giant Cat

  • Coders
  • 766 posts
  • Gender:Female
  • Location:Germany
  • Interests:Cats

I see. I've tried my working patched AppleBCM5701Ethernet.kext from 10.8.4 with no success in DP 10.9. Any suggestions?

 

You'll have to patch AppleBCM5701Ethernet.kext from 10.9. Of course this will result in that ugly signature verification failure error message (what a word!).

 

Mieze



#145
giacomoleopardo

giacomoleopardo

    InsanelyMac Protégé

  • Members
  • PipPip
  • 67 posts
  • Gender:Male

It should work as I have BCM57780 and it works good. Though driver doesn't support my card technically. 

On the whole try it, it should work for you.

Good luck!

it doesn't work. Ethernet shows connected locally (yellow), and by manually setting (even if it shows connected - green) doesn't work either.

 

You'll have to patch AppleBCM5701Ethernet.kext from 10.9. Of course this will result in that ugly signature verification failure error message (what a word!).

 

Mieze

How can I do that?



#146
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male

it doesn't work. Ethernet shows connected locally (yellow), and by manually setting (even if it shows connected - green) doesn't work either.

 

How can I do that?

Try to take out and stick into Ethernet cable and recreate Ethernet service(press on minus after plus).

By the way. AppleBCM5701 can stop offen  and not to work after sleep. I bumped into it some time.



#147
wastez

wastez

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 183 posts
  • Gender:Male

@ Mieze

Sometimes the shutdown/reboot issue appears again.... (Every 2 - 3 times)



#148
k2ute

k2ute

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

Hi. Thanks for writing a kext for my BCM 57785 ethernet card. I'm using 10.9 DP1 and I've just tested your kext BCM57722D 2.3.5 for Mavericks. The system released my card but it doesn't work. I try to use my settings on 10.8 but there's still no luck. My problem shows in these pictures. Could you fix that? I really appreciate it :)

Attached Files



#149
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,518 posts
  • Gender:Male
  • Location:Tampa, Florida

i really could use 32 bit as i am toshing an old xps m1710 with geforce 7900 that dont work in 64 bit.. snow   :wink_anim:



#150
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male

i really could use 32 bit as i am toshing an old xps m1710 with geforce 7900 that dont work in 64 bit.. snow   :wink_anim:

I afraid I cannot compile any 32-bit drivers at Mavericks. And I have not so much time to set up Virtual Mac and Xcode. But I think you can make it on your own.

1) Download the Xcode

2) Download the project

http://www.insanelym...le/79-bcm5722d/

3) Open it. Perhaps Xcode will suggest you to update the settings. Agree with that.

4) Change  Archictures, Base SDK and OSX Development target as it is shown at the screenshot.

Attached File  Screen Shot 2013-07-17 at 23.40.19.png   773KB   3 downloads

5) Product-> Build For->Archiving

6) Find your version here. At the folder named Release, (not Debug)

Attached File  Screen Shot 2013-07-17 at 23.48.10.png   185.87KB   3 downloads

7) Attached your version here if it works

 

Good Huck!


Hi. Thanks for writing a kext for my BCM 57785 ethernet card. I'm using 10.9 DP1 and I've just tested your kext BCM57722D 2.3.5 for Mavericks. The system released my card but it doesn't work. I try to use my settings on 10.8 but there's still no luck. My problem shows in these pictures. Could you fix that? I really appreciate it :)

Hello.

1) Does 2.3.5 work at the ML?

2) Does the old driver work at the Mavericks?

http://www.osx86.net...5722d.kext.html



#151
LatinMcG

LatinMcG

    Insanely digesting DSDT

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,518 posts
  • Gender:Male
  • Location:Tampa, Florida

ill give it a shot and post it here for snow when i do.

its for my boss.. he bought an old M1710 and i got it working sweet. sleep wake and all working.. but display sleep wakes with gray lines screen but system sleep fixes it (close lid.. open it).

 

havent tested 2.3.4 i386 snow yet after sleep, using wifi mostly

 

after playing with it a little i finally compiled my first. ill see if it works and post it.

thanks



#152
Buckeyes1995

Buckeyes1995

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

Hi Alex,

 

Per our discussion in the BMC57781 thread, here is the info you requested.

 

a. I '-' then '+' the Ethernet and unplugged/replugged back in the cable.  No luck.

b. The Ethernet is recognized, but it self assigns an IP.. if I force an IP, and set the dns, router, etc.. it won't connect.

 

Console Log:
8/18/13 12:29:23.000 PM kernel[0]: BCM5722D (Build date/time: Jun 24 2013 12:20:29)
8/18/13 12:29:23.000 PM kernel[0]: my_name_adlan_BCM5722D: Model: BCM57781 NetLink (TM) Gigabit Ethernet
8/18/13 12:29:23.000 PM kernel[0]: my_name_adlan_BCM5722D: Loaded successfully
8/18/13 12:29:29.000 PM kernel[0]: my_name_adlan_BCM5722D: Link up: 1000 MBps, full duplex. Flow control: symmetric

System Info:
ethernet:

  Type:	Ethernet Controller
  Bus:	PCI
  Vendor ID:	0x14e4
  Device ID:	0x16b1
  Subsystem Vendor ID:	0x1849
  Subsystem ID:	0x96b1
  Revision ID:	0x0010
  Link Width:	x1
  BSD name:	en0
  Kext name:	BCM5722D.kext
  Location:	/System/Library/Extensions/BCM5722D.kext
  Version:	2.3.5

 

Attached Files



#153
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male

Try debug version and show kernel log. Maybe it gives a key what is the problem

Attached Files



#154
Mieze

Mieze

    Giant Cat

  • Coders
  • 766 posts
  • Gender:Female
  • Location:Germany
  • Interests:Cats

 

Hi Alex,

 

Per our discussion in the BMC57781 thread, here is the info you requested.

 

a. I '-' then '+' the Ethernet and unplugged/replugged back in the cable.  No luck.

b. The Ethernet is recognized, but it self assigns an IP.. if I force an IP, and set the dns, router, etc.. it won't connect.

 

Console Log:
8/18/13 12:29:23.000 PM kernel[0]: BCM5722D (Build date/time: Jun 24 2013 12:20:29)
8/18/13 12:29:23.000 PM kernel[0]: my_name_adlan_BCM5722D: Model: BCM57781 NetLink (TM) Gigabit Ethernet
8/18/13 12:29:23.000 PM kernel[0]: my_name_adlan_BCM5722D: Loaded successfully
8/18/13 12:29:29.000 PM kernel[0]: my_name_adlan_BCM5722D: Link up: 1000 MBps, full duplex. Flow control: symmetric

System Info:
ethernet:

  Type:	Ethernet Controller
  Bus:	PCI
  Vendor ID:	0x14e4
  Device ID:	0x16b1
  Subsystem Vendor ID:	0x1849
  Subsystem ID:	0x96b1
  Revision ID:	0x0010
  Link Width:	x1
  BSD name:	en0
  Kext name:	BCM5722D.kext
  Location:	/System/Library/Extensions/BCM5722D.kext
  Version:	2.3.5

 

 

Configure the interface manually using a static address. Try to ping another machine in your LAN. On the remote machine (the one you are trying to send echo requests to) run Wireshark in order to check if the ICMP packets are actually transmitted by the local machine. On the local machine use Network Utility or netstat -I en0 to monitor the number of received packets. Using this method it should be possible to find out what exactly isn't working. Reception or transmission of packets?

 

Good luck!

 

Mieze



#155
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male
And also(don't forget) try what Mieze suggested with debug version as it gives more information

#156
Buckeyes1995

Buckeyes1995

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

Here's the debug log.

8/18/13 2:47:00.242 PM com.apple.kextcache[397]: kext my.name.adlan.BCM5722D  203059000 is in exception list, allowing to load
8/18/13 2:47:46.000 PM kernel[0]: BCM5722D (Build date/time: Aug 18 2013 22:01:36)
8/18/13 2:47:46.000 PM kernel[0]: BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 928 iterations
8/18/13 2:47:46.000 PM kernel[0]: my_name_adlan_BCM5722D: Model: BCM57781 NetLink (TM) Gigabit Ethernet
8/18/13 2:47:46.000 PM kernel[0]: my_name_adlan_BCM5722D: Loaded successfully
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (resetAdapter:145): 4B657654 to B49A89AB in 12711 iterations
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (setMedium:356): Change medium: kIOMediumEthernetAuto
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (setMedium:381): Change medium: kLinkDuplexNegotiate
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (configureLinkAdvertisement:557): advertiseFe: 5E1
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (configureLinkAdvertisement:558): advertiseGe: 300
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (startAutoNegotiation:580): Adv reg: 5E1
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (setMedium:372): Change medium: kIOMediumEthernet1000BaseT
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (setMedium:381): Change medium: kLinkDuplexFull
8/18/13 2:47:48.000 PM kernel[0]: my_name_adlan_BCM5722D: Advertising with limited capability, speed: 1000 MBps, full duplex
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (configureLinkAdvertisement:557): advertiseFe: 401
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (configureLinkAdvertisement:558): advertiseGe: 200
8/18/13 2:47:48.000 PM kernel[0]: BCM5722D (startAutoNegotiation:580): Adv reg: 401
8/18/13 2:47:50.000 PM kernel[0]: BCM5722D (setupPHY:96): Auxillary status: FF3F
8/18/13 2:47:50.000 PM kernel[0]: BCM5722D (setupFlowControl:457): flowControl: 3
8/18/13 2:47:50.000 PM kernel[0]: my_name_adlan_BCM5722D: Link up: 1000 MBps, full duplex. Flow control: symmetric

I'll try what Mieze suggested (thanks for the help!).. I'll put wireshark on my Macbook Air and see if I can ping it.

 

When I tried to manually configure the on board ethernet it said it had an address but couldn't get to the internet.



#157
Mieze

Mieze

    Giant Cat

  • Coders
  • 766 posts
  • Gender:Female
  • Location:Germany
  • Interests:Cats

A few weeks ago I had an idea how to make Apple's Broadcom driver fit for use with the BCM57781 without binary patching the kext. Although I haven't tried myself I'm quite confident that this method will work. Here is a short outline of my idea:

 

The BCM57765 used in recent Macs and the BCM57781 are fully compatible with the exception that the BCM57765 also includes a card reader and has different device, subsystem and subsystem vendor IDs. While creating a binary patch for Apple's driver I discovered that the only thing that prevents the driver from working with the BCM57781 is the fact that the driver uses

 

 

configRead16

Reads a 16-bit value from the PCI device's configuration space.

virtual UInt16 configRead16( UInt8 offset );
Parameters offset

An 8-bit offset into configuration space, of which bit 0 is ignored.

Return Value

An 16-bit value in host byte order (big endian on PPC).

Discussion

This method reads a 16-bit configuration space register on the device and returns its value.

 

 

to check these PCI config registers and verifies the return value before accepting the device. Therefore I patched the driver to intercept these calls to configRead16() and injected the the matching return value. As binary patching will become more difficult with Mavericks I thought about alternate ways to achieve the same result. Here is what I found:

 

configRead16() is a system call that is provided by IOPCIFamily.kext which is open source so that it should be possible to make a modified version of that kext which detects the call, checks the return value the hardware provided and injects the required return value making the driver believe it is acting on a supported BCM57765 device.

 

As I already mentioned, I didn't try it myself, but might be worth to give it a shot.

 

Mieze



#158
Buckeyes1995

Buckeyes1995

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts

Hi mieze,

 

On the remote machine (running wireshark) there are no incoming ICMP packets.. there are some broadcast packets from the local machine.  When I switch back to wireless I see the ICMP packets just fine.

 

On the local machine (netstat) I saw 0 incoming packets only outgoing packets.



#159
Alex Auditore

Alex Auditore

    InsanelyMac Legend

  • Donators
  • 706 posts
  • Gender:Male

A few weeks ago I had an idea how to make Apple's Broadcom driver fit for use with the BCM57781 without binary patching the kext. Although I haven't tried myself I'm quite confident that this method will work. Here is a short outline of my idea:

The BCM57765 used in recent Macs and the BCM57781 are fully compatible with the exception that the BCM57765 also includes a card reader and has different device, subsystem and subsystem vendor IDs. While creating a binary patch for Apple's driver I discovered that the only thing that prevents the driver from working with the BCM57781 is the fact that the driver uses


configRead16
Reads a 16-bit value from the PCI device's configuration space.
virtual UInt16 configRead16( UInt8 offset );
Parameters offset
An 8-bit offset into configuration space, of which bit 0 is ignored.

Return Value
An 16-bit value in host byte order (big endian on PPC).

Discussion
This method reads a 16-bit configuration space register on the device and returns its value.



to check these PCI config registers and verifies the return value before accepting the device. Therefore I patched the driver to intercept these calls to configRead16() and injected the the matching return value. As binary patching will become more difficult with Mavericks I thought about alternate ways to achieve the same result. Here is what I found:

configRead16() is a system call that is provided by IOPCIFamily.kext which is open source so that it should be possible to make a modified version of that kext which detects the call, checks the return value the hardware provided and injects the required return value making the driver believe it is acting on a supported BCM57765 device.

As I already mentioned, I didn't try it myself, but might be worth to give it a shot.

Mieze

Very promising idea I'm ready to be a tester. If they added a support it means the stopping-problems shouldn't exists at all as it were in the case of AppleBCM5701.
This driver even worse than the old version of BCM5722d. As it stopped working completely after sleep.
http://www.osx86.net...k_bcm57781.html

#160
Mieze

Mieze

    Giant Cat

  • Coders
  • 766 posts
  • Gender:Female
  • Location:Germany
  • Interests:Cats

Hi mieze,

 

On the remote machine (running wireshark) there are no incoming ICMP packets.. there are some broadcast packets from the local machine.  When I switch back to wireless I see the ICMP packets just fine.

 

On the local machine (netstat) I saw 0 incoming packets only outgoing packets.

 

Sounds strange. The fact that that there are at least some broadcast packets from the local machine indicates that transmission seems to work to some degree. I guess the broadcasts you received are ARP requests from the local machine asking for the mac address of the remote station? You might try to create a static ARP entry for the remote machine on the local machine using

arp -s ip-address mac-address 

in order to make the pings go out on the wire.

 

According to your results reception isn't working at all which prevents the interface from acquiring an IP address. I suggest to add some debug code to the receive handler routines so that we can see if they get called at all. If they get called, we would know that the receiver is configured correctly and could narrow down the point where reception fails. In case they don't get called we should check the receiver's configuration for that chip.

 

Mieze







1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2015 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy