Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
PookyMacMan

TP-Link TL-WN851N - connection dropping

46 posts in this topic

Recommended Posts

Hello!

 

I just recently received a late Christmas gift; a TP-Link TL-WN851N PCI wireless card! :D

I put it in my system today, spent an hour and a half getting it to work with Apple's Atheros drivers (turned out I needed the IO80211Family.kext from 10.6.2), and I thought everything was perfect.

 

Well, not quite.

 

I just started having problems of my wireless connection just randomly dropping. I keep it under a desk a good distance away from the router, but I don't think it's too far because I use my MacBook farther away and there are no problems...to top it off, even when I shift my computer back into known-distance range, it doesn't detect the network until I restart.

 

Is there anything I can do about it, or is this a very weak wireless card?

 

Thank you very much. I am experienced in hackintoshing, so I can do anything you say/provide more info. :)

Share this post


Link to post
Share on other sites

what rev 2.0 or 2..1 ? try using proper 10.6.8 kext with device id added.

or maybe ar9285 dsdt fix with id 2a instead of 29.. or try 28 to make it think its ar5bxb72.

Share this post


Link to post
Share on other sites

Currently I have 10.6.7. I tried patching that kext but it didn't work.

 

What would I do to change my DSDT? I have included dsdt.aml and dsdt.dsl.

 

DSDTs.zip

Share this post


Link to post
Share on other sites

Currently I have 10.6.7. I tried patching that kext but it didn't work.

 

What would I do to change my DSDT? I have included dsdt.aml and dsdt.dsl.

 

DSDTs.zip

neeed ioregistry to find where 168c is at

Share this post


Link to post
Share on other sites

Sorry I've been so long - I just got the 10.6.7 kext working, and I thought the problem was gone, but now it's coming back...and now that we just got a new router and it's in the same room as the machine, I know it's the computer's problem and not a range issue.

 

Just ran ioreg and here's the output: ioreg.rtf

Share this post


Link to post
Share on other sites

Do I just specify a file, like

 

cd ~/Desktop

ioreg > ioreg.txt

 

or do I do something else?

Share this post


Link to post
Share on other sites

I recently looked at a topic in the DSDT subforum that described presenting OS X with a different device ID for various hardware...is this the patch you are talking about?

 

Have you looked at my DSDT/ioreg? :)

Share this post


Link to post
Share on other sites

yes thats what i meant.. works with atheros.

not broadcoms.. needs registers changed not dtgp method.

 

i been bussy and my lcd was broken.

Share this post


Link to post
Share on other sites

So sorry about your LCD. :( There's no hurry. :) I'll try and see if I can figure it out on my own while you look at my DSDT/ioreg. ;)

Share this post


Link to post
Share on other sites

en0 and en1 are backwards.. wireless needs to be en1.

i see its using ar9280 driver so lets fake with ar9285 fix to fake dev id 2a

 

	   Device (PCI4)
		{
			Method (_S1D, 0, NotSerialized)
			{
				Return (One)
			}
			Method (_S3D, 0, NotSerialized)
			{
				If (HACK ())
				{
					Return (0x03)
				}
				Else
				{
					Return (0x02)
				}
			}
			Method (_S4D, 0, NotSerialized)
			{
				If (HACK ())
				{
					Return (0x03)
				}
				Else
				{
					Return (0x02)
				}
			}
			Method (_S5D, 0, NotSerialized)
			{
				If (HACK ())
				{
					Return (0x03)
				}
				Else
				{
					Return (0x02)
				}
			}
			Method (_ADR, 0, NotSerialized)
			{
				Store (0x001E0000, Local0)
				Return (Local0)
			}
			Name (_UID, 0x07)
			Name (_PRW, Package (0x02)
			{
				0x0B,
				0x05
			})
			Method (_PRT, 0, NotSerialized)
			{
				Store (API4, Local0)
				If (LNot (PICF))
				{
					Store (PIC4, Local0)
				}
				Return (Local0)
			}
			Device (LAN0)
			{
				Name (_ADR, 0x08)
				Method (_DSM, 4, NotSerialized)
				{
				   Store (Package (0x04)
					{
				   "built-in",
					Buffer (One)
					{
					  0x01
					},
					"location",
					  Buffer (0x02)
					 {
					  "1"
					 }
				   }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			   }
			   }
			Device (ARPT)
			{
				Name (_ADR, 0x05)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x0A)
						{
							"AAPL,slot-name",
							Buffer (0x08)
							{
								"AirPort"
							},
							"device-id",
							Buffer ()
							{
								0x2A,
							},
							"device_type",
							Buffer (0x08)
							{
								"AirPort"
							},
							"subsystem-id",
							Buffer (0x04)
							{
								0x8F, 0x00, 0x00, 0x00
							},
							"subsystem-vendor-id",
							Buffer (0x04)
							{
								0x6B, 0x10, 0x00, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}
		}

dsdtpookyarptlan0.aml.zip

Share this post


Link to post
Share on other sites

I'll switch en0 and en1 and use the AR9285 fix and get back. :) Thank you very much.

Share this post


Link to post
Share on other sites

extract dsdt i posted above and rename to dsdt.aml

 

then u know what to do

boot snow one timewith

-v -f

 

i found the dsdt pci0 was _uid 0x04 not 0x00 fixed so now it might work with 10.6.8

i also aded LAN0 to _ADR, 0x08 as shown in ioreg to fix en0 in dsdt.

 

also rtc showed last line 0x10

	Device (RTC)
	{
		Name (_HID, EisaId ("PNP0B00"))
		Method (_CRS, 0, NotSerialized)
		{
			Name (RTCB, ResourceTemplate ()
			{
				IO (Decode16,
					0x0070,			 // Range Minimum
					0x0070,			 // Range Maximum
					0x01,			   // Alignment
					0x10,			   // Length should be 0x08 or 0x02
					)
			})
			Return (RTCB)
		}
	}

should be 0x08 or 0x02 dont think i changed it yet.

 

also the _INI shows if windows 2001 (xp) return msos 0x04

but that if changed to Darwin would cause issues with isli (SLI?) for windows only not osx.. would be enabled and not work right.

so i did not change anything there.

 

i also aded SBUS that was missing

 

i see its chipset ich7.. i used ich8 sbus device id

Share this post


Link to post
Share on other sites

Yup, thank you very much. So when you add a device like a WiFi card to the DSDT, you simply add the whole device after the methods of the parent device (in this case PCI4)? Also, how did you know where to add the DTGP method?

 

Sorry for the questions, but I really want to know how DSDT works. :)

Share this post


Link to post
Share on other sites

Yup, thank you very much. So when you add a device like a WiFi card to the DSDT, you simply add the whole device after the methods of the parent device (in this case PCI4)? Also, how did you know where to add the DTGP method?

 

Sorry for the questions, but I really want to know how DSDT works. :)

dtgp goes anywhere on _SB not _SB.PCI0.. under or above _WAK works fine.

 

i added whole device cause it uses PCI4@5 in ioreg which means its _ADR, 0x05 so i saw its missing and have to add whole device as attachment of the PCI4 @5 aka _ADR, 0x05 minus the _PRW thats handled by PCI4

 

in my laptop its not shared =RP02.PXS2@0 in ioreg so i just do _DSM and bellow to the line under _ADR, 0x00 not ad whole device ..

i just rename PXS2 to ARPT and add _DSM section under _ADR line

 

this doesnt seem to work with broadcoms due to the way driver accesses directly the device bypassing _DSM.= have to add registers with the device id numbers.. like the IOATA panic fix method

Share this post


Link to post
Share on other sites

Thank you very much! I just loaded the new DSDT and I'll see if the problem's fixed. :)

 

So, what was the thing you mentioned about SLI? I don't use SLI but I'm curious...also, what were you talking about with the SBUS? :)

 

Funny thing about the RTC, because I had fixed that last one so it wouldn't reset CMOS...guess I was still wrong. :P

Share this post


Link to post
Share on other sites

Thank you very much! I just loaded the new DSDT and I'll see if the problem's fixed. :)

 

So, what was the thing you mentioned about SLI? I don't use SLI but I'm curious...also, what were you talking about with the SBUS? :)

 

Funny thing about the RTC, because I had fixed that last one so it wouldn't reset CMOS...guess I was still wrong. :P

 

isli

	Method (ISLI, 0, NotSerialized)
	{
		If (CondRefOf (_OSI, Local0))
		{
			If (_OSI ("Linux")) // Darwin ?
			{
				Return (One)
			}
			Else
			{
				Return (Zero)
			}
		}
		Else
		{
			Return (Zero)
		}
	}

and this reacts to it

	Method (GUSB, 0, NotSerialized)
{
	If (ISLI ()) //  1 or zero? Else SMI2 (0xBA)
	{
		Return (Zero)
	}
	Else
	{
		Return (SMI2 (0xBA))
	}
}

amd this in wak also

	Method (_WAK, 1, NotSerialized)
{
	If (LEqual (Arg0, 0x04)) // sleep state S4
	{
		GUSB () // Zero or SMI (0xBA) ?
	}

 

i think ISLI isnt SLi but a wake parameter for GUSB ?? as in usb wake from s4 ?

SMI (0xBA) is the parameter that matters on wake.

 

Intel Sleep LInux ?

 

SBUS

Device (SBUS)
	{
		Name (_ADR, 0x001F0003)

search for 001F0003 in any dsdt to find sbus

 

is missing on dells a lot

so i added this basic SBUS of ich8= 283E

		Device (SBUS)
	{
		Name (_ADR, 0x001F0003)
		Device (BUS0)
		{
			Name (_CID, "smbus")
			Name (_ADR, Zero)
			Device (DVL0)
			{
				Name (_ADR, 0x57)
				Name (_CID, "diagsvault")
			}
		}

		Method (_DSM, 4, NotSerialized)
		{
			Store (Package (0x0A)
				{
					"built-in",
					Buffer (One)
					{
						0x00
					},

					"name",
					"pci8086,283e",
					"device-id",
					Buffer (0x04)
					{
						0x3E, 0x28, 0x00, 0x00
					},

					"subsystem-id",
					Buffer (0x04)
					{
						0xA0, 0x00, 0x00, 0x00
					},

					"subsystem-vendor-id",
					Buffer (0x04)
					{
						0x6B, 0x10, 0x00, 0x00
					}
				}, Local0)
			DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
			Return (Local0)
		}
	}

 

last thing missing is IRQ removals. i have to check it in detail.

with your testing =

DSDT=hd(0,2)/Extra/testdsdt.aml

Share this post


Link to post
Share on other sites

Thanks for all the patches. Wireless works like a charm. :)

 

However, 10.6.8 still bombs...hope I can get it worked out. :(

Share this post


Link to post
Share on other sites

I have a MacPro1,1 SMBIOS because I have a Pentium D (thinking that 1,1 is closest in manufacturing year to the Pentium D), is this wrong?

 

The npci flag fixed it! :D Before it would boot successfully but a garbled screen would be displayed; as far as I know there were no errors, but now it will boot with QE/CI in 10.6.8! Thank you, thank you!! :D (I did add the npci flag in my org.chameleon.boot.plist)

 

Now, there are a couple annoyances; for one, wireless is having problems again...this time, when I try to turn it on in Sys Prefs, it beachballs for about 5 seconds and doesn't end up turning AirPort on. What do you think is the matter? Fixed by installing /System/Library/SystemConfiguration/IO80211AirPortMonitor.bundle. :) I've noticed that the computer is in general not as fast to respond as in 10.6.7 (and the login window doesn't come in as smoothly as usual), and looking in activity monitor the kernel_task process takes up 60-65 threads? Is this normal?

 

I still need to load the DSDT; once I do I will report back with results.

Share this post


Link to post
Share on other sites

ive noticed in laptops the macbookpro4,1 made wireless not work and laggy overall response.. make sure u check smbios with chameleon wizard

try imac8 or 9 or 10

 

io80211AirportMonitor.bundle

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×