Subscribe to our RSS news feed
AAPL 199.94 (-1.25)

171 Pages V  « < 10 11 12 13 14 > »   
Closed Topic Start new topic
Intel Wireless 2100, 2200bg, 2915bg, 3945abg, 4965agn, IWIDarwin drivers for mac os x 10.4 and 10.5 *under development*
***
  • Group: Members
  • Posts: 119
  • Joined: 9-February 08
  • From: ASIA
  • Member No.: 184,743
man, thanks for the driver my wifi 2200 now works!!! I just noticed when i check my desktop with iatkos installed, the airport is installed even though there are no wifi card installed but of course the system knows that there are no available wifi card. Is it possible to copy the files from iatkos and embed it with kalyway for example to show the airport instead of ethernet 2?
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 26
  • Joined: 10-October 07
  • Member No.: 141,120
Just a quick update: TNW has gotten it so it gets to the point of card initialization. Currently, the card starts responding alright, but once it gets to a certain point (sending POWER_TABLE_CMD in iwl3945_send_power_mode()) the card starts responding with errors. He suspects that it's because the mbufs are getting corrupted due to the fact that mutexes and spinlocks aren't enabled, which I could see.

Unfortunately, enabling mutexes causes strange and interesting behavior. More unfortunately I can't determine the exact cause of the error, but I suspect it's either the call to alloc_skb() or pci_map_single() in iwl3945_rx_allocate(). I can't figure out where the error is because:

1) I have no wired NIC, so I can't use GDB over the network.
2) I have no serial port, so I can't use DDB.
3) The stack is deeper than DUMPFRAMES, so the darwin_iwi3945 code is lost behind a "Backtrace continues..." message.

I've been reading the backtraces to determine where errors are, so I'm not against using the third method. But compiling the kernel is really annoying, especially in an environment with no network access. Is there anyone here who can compile a new kernel and set DUMPFRAMES in osfmk/i386/AT386/model_dep.c:937 to something higher? Like, say, 64?
PM Profile Card
Go to the top of the page
+ Quote Post
*****
  • Group: Members
  • Posts: 289
  • Joined: 20-April 06
  • From: Romania
  • Member No.: 35,438
QUOTE (Symuc @ Feb 20 2008, 08:06 AM) *
Just a quick update: TNW has gotten it so it gets to the point of card initialization. Currently, the card starts responding alright, but once it gets to a certain point (sending POWER_TABLE_CMD in iwl3945_send_power_mode()) the card starts responding with errors. He suspects that it's because the mbufs are getting corrupted due to the fact that mutexes and spinlocks aren't enabled, which I could see.

Unfortunately, enabling mutexes causes strange and interesting behavior. More unfortunately I can't determine the exact cause of the error, but I suspect it's either the call to alloc_skb() or pci_map_single() in iwl3945_rx_allocate(). I can't figure out where the error is because:

1) I have no wired NIC, so I can't use GDB over the network.
2) I have no serial port, so I can't use DDB.
3) The stack is deeper than DUMPFRAMES, so the darwin_iwi3945 code is lost behind a "Backtrace continues..." message.

I've been reading the backtraces to determine where errors are, so I'm not against using the third method. But compiling the kernel is really annoying, especially in an environment with no network access. Is there anyone here who can compile a new kernel and set DUMPFRAMES in osfmk/i386/AT386/model_dep.c:937 to something higher? Like, say, 64?


hello Symuc,

i do not have experience in all this but i have the time and the system you need ... i have Xcode3 ... Leopard 10.5.2 ... A machine withe the integrated 3945 ... and the time to make the tests. What should be the next step? should we try remotely?

Cheers
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 1
  • Joined: 7-February 08
  • Member No.: 183,771
[attachment=22622:log.txt] boys,

not sure if it'd help .... but it seems I can load the driver a bit further then in the latest TNW's log.

please have a look at my log, maybe it will give you some ideas.

The sequence is of the following:

1. latest TNW's source code (ie http://zetasam.ath.cx/iwi3945_19_02_2008.zip)

1a changed spin_lock to spin_lock_saveirq in iwi3945_isr ( don't think it helped since #define for spin_lock_saveirq just calling spin_lock as I found later)

2. did load.command (pc crashed - KP)

3. rebooted pc (crashed again )

4. rebootede pc, did not crash, however produces the same log as in TNW's LOG.rtf (e.i. MAC = 0:0:0:0)

5. if I kextload at this stage, it goes much further, printing the right MAC in the log.

It looks like after this "second" load I can load & unload driver as much as I pleased, no KP.

and I can see correct wireless MAC in the log.
Attached File(s)
Attached File  log.txt ( 33.55K ) Number of downloads: 11
 
PM Profile Card
Go to the top of the page
+ Quote Post
**
  • Group: Members
  • Posts: 95
  • Joined: 30-April 06
  • Member No.: 37,052
Hello baikai,

Maybe you should play with the lastest version .
You must disable spinlock for the moment or replace them with mutex due to this problem.

This link explains the problem :
http://lists.apple.com/archives/Darwin-ker...n/msg00046.html

We have another problem , we need to disable processor's intterupts to make sur that the current thread isn't switched by the kernel's scheduler.

But since OS-X we can't do that , maybe can we set an high priority on the current thread?

If someone have an idea , that would be great !

Bye
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 38
  • Joined: 7-February 08
  • From: canada
  • Member No.: 183,893
I realize that you guys are working very hard at making this work. I had read somewhere earlier in the thread that porting a BSD driver would be easier than a linux one. I saw some information on freebsd and was wondering if that would help:

http://www.clearchain.com/wiki/Wpi Maybe those guys there could be a resource?

Here is the "stable" driver for BSD: Attached File  20071102_freebsd_wpi.tar.gz ( 131.33K ) Number of downloads: 49
PM Profile Card
Go to the top of the page
+ Quote Post
********
  • Group: Members
  • Posts: 1,141
  • Joined: 28-August 06
  • Member No.: 53,253
TNW, Symuc

is the svn tree up to date with latest code? - i hope so, i'll try to help

maybe you'd like to change some things in code:

class darwin_iwi3945 : public IO80211Controller -> make it IOEthernetController
it's nice to have a airport device but at this time the driver will be more stable with IOEthernetController

does request_firmware() works?
maybe it's better to set struct iwl3945_ucode ucode = (struct iwl3945_ucode*)ipw3945_ucode_raw

always leave fInterruptSrc->enable() - the driver needs to work this way...

mutex, locks - we don't need them at this time - they only give bugs

pci_enable_device()
maybe it's better to test old code
/*UInt16 reg16;

reg16 = fPCIDevice->configRead16(kIOPCIConfigCommand);

reg16 |= (kIOPCICommandBusMaster |
kIOPCICommandMemorySpace |
kIOPCICommandMemWrInvalidate);

reg16 &= ~kIOPCICommandIOSpace; // disable I/O space
fPCIDevice->configWrite16(kIOPCIConfigCommand,reg16);*/

fPCIDevice->setBusMasterEnable(true);
fPCIDevice->setMemoryEnable(true);


if_down() - use old iwi2200 code to really turn the interface down

power stuff - the code from iwi2200 for requestPowerDomainState(), WiFiPower.cpp and other power things work fine
if you're going to use IOEthernetController better to change this.

pci_save_state() - this can give some bugs

get rid of IOMallocContiguous() - i get some bugs in the past by using this function
take a look at pci_map/unmap_single
try to use MemoryDmaAlloc()

dev_kfree_skb() - add more validation code here- the driver will panic if trying to free a packet in several ways.

__alloc_skb() - try to set size to 0
mbuf_setlen(skb->mac_data,0);
mbuf_pkthdr_setlen(skb->mac_data,0);

start_thread(), queue_work(), queue_delayed_work(), wait_event_interruptible_timeout()
to make thread work correctly this code need to be corrected - i don't know if it will ever work
maybe it's better to use code form queue_te/td()


i hope this helps

smile.gif
PM Profile Card
Go to the top of the page
+ Quote Post
**
  • Group: Members
  • Posts: 95
  • Joined: 30-April 06
  • Member No.: 37,052
QUOTE (jalavoui @ Feb 20 2008, 02:51 PM) *
TNW, Symuc

is the svn tree up to date with latest code? - i hope so, i'll try to help

maybe you'd like to change some things in code:

class darwin_iwi3945 : public IO80211Controller -> make it IOEthernetController
it's nice to have a airport device but at this time the driver will be more stable with IOEthernetController
It's not our problem for the moment but I will do that.

does request_firmware() works?
maybe it's better to set struct iwl3945_ucode ucode = (struct iwl3945_ucode*)ipw3945_ucode_raw
request_firmware() works fine at this moment

always leave fInterruptSrc->enable() - the driver needs to work this way...
How can we disable the interrupts without that ?

mutex, locks - we don't need them at this time - they only give bugs
Mutex and Lock help for thread syncronitation , without they all thread acces restricted area of the code
pci_enable_device()
maybe it's better to test old code
/*UInt16 reg16;

reg16 = fPCIDevice->configRead16(kIOPCIConfigCommand);

reg16 |= (kIOPCICommandBusMaster |
kIOPCICommandMemorySpace |
kIOPCICommandMemWrInvalidate);

reg16 &= ~kIOPCICommandIOSpace; // disable I/O space
fPCIDevice->configWrite16(kIOPCIConfigCommand,reg16);*/

fPCIDevice->setBusMasterEnable(true);
fPCIDevice->setMemoryEnable(true);
if_down() - use old iwi2200 code to really turn the interface down

power stuff - the code from iwi2200 for requestPowerDomainState(), WiFiPower.cpp and other power things work fine
if you're going to use IOEthernetController better to change this.

pci_save_state() - this can give some bugs

get rid of IOMallocContiguous() - i get some bugs in the past by using this function
take a look at pci_map/unmap_single
try to use MemoryDmaAlloc()
At this moment we have timeout error on sending cmd, that it ?

dev_kfree_skb() - add more validation code here- the driver will panic if trying to free a packet in several ways.

__alloc_skb() - try to set size to 0
mbuf_setlen(skb->mac_data,0);
mbuf_pkthdr_setlen(skb->mac_data,0);
I going to see that

start_thread(), queue_work(), queue_delayed_work(), wait_event_interruptible_timeout()
to make thread work correctly this code need to be corrected - i don't know if it will ever work
maybe it's better to use code form queue_te/td()
i hope this helps
All this function seems to work fine , but I can change it
smile.gif


Thank's for your help
PM Profile Card
Go to the top of the page
+ Quote Post
********
  • Group: Members
  • Posts: 1,141
  • Joined: 28-August 06
  • Member No.: 53,253
TNW,

if the driver is getting firmware errors it can be because of
- bad firmware loading - request_firmware()??
- wrong firmware version - have you tryed all firmware versions?
- you need to wait for the driver exits start() - i add 1 second delay in iwi2200 and them call __iwl3945_up()

to disable interrups the iwl3945_disable_interrupts() should work - maybe there's a problem that we can't see at this point

the cmd timeouts might be fixed by adding a IODelay(xxx) to wait_event_interruptible_timeout()
you need to fix iwl3945_send_cmd_sync() - maybe make HOST_COMPLETE_TIMEOUT=HOST_COMPLETE_TIMEOUT*x
if the value is wrong you'll always get cmd errors
maybe it's better to use wait_event_interruptible_timeout()

if you're using jiffies in code - get the source from iwi2200. it works fine

you need to use fNetif->registerOutputHandler(this,getOutputHandler()); it will allow the driver to start calling outputpacket(). i'm not shure if this is also needed for sending commands.

maybe someone can post the linux log for iwl-1.2.23 - this will help us understand what's wrong

"Mutex and Lock help for thread syncronitation" - ok - but you should test the driver in both ways
i've disabled this code in iwi2200 - the driver can leave without this

if the thread functions work fine you should keep them.

disable iwl3945_send_power_mode() if you get errors - try to use requestPowerDomainState() in start()

i'll keep looking to the svn code and try to help

ok - i'll stop writting and let you work smile.gif
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 34
  • Joined: 11-November 06
  • Member No.: 64,061
What about the 3945 tiger development? Reading the threads it looks like it is focused in leopard but is there any way to get it working under tiger 10.4.11?

EDIT:ill try the 10.5 version in my 10.4.11 release to see if it works
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 17
  • Joined: 17-February 08
  • Member No.: 188,006
Thanks everyone! I was completely new to Mac/OSx86 until I found the community and I've already learned so much just by reading the boards.

So I started my own project when I came across the Kalyway 10.5.1 install DVD. I treid to install it on my Gateway M460 but after a bit of research, and many installation attempts, I found out that I'd probably be better off using the older Tiger because it had better support for my older laptop.

So I got JaS 10.4.8 DVD almost everything seems to work. Even my wireless works after I used the latest iwi2200 driver from the group (rev 579 Installer).

I was wondering if it's possible to use WEP or WPA with my system. I read the FAQ as well as the installation guide, which states that WEP is NOT supported, but many posts on the board allude to WEP 2200 working with Tiger. Is this possible? If so perhaps someone could direct me to which version of Tiger/2200 driver they're using?

Thanks,

LJ
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 2
  • Joined: 16-February 08
  • Member No.: 187,673
Maybe THIS,

http://opensolaris.org/os/community/laptop/wireless/wpi/

could be of some help


JPGRIZZLY

'While computing, never stop drinking'... Water
PM Profile Card
Go to the top of the page
+ Quote Post
*****
  • Group: Members
  • Posts: 254
  • Joined: 31-January 06
  • From: Yangsan, South Korea
  • Member No.: 22,151
Leopard kexts for 3945 still give me the old "Map is Zero" error meaning the driver loads but can't recognize or can't turn on the wireless card.
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 34
  • Joined: 11-November 06
  • Member No.: 64,061
QUOTE (leejones @ Feb 21 2008, 07:28 PM) *
Thanks everyone! I was completely new to Mac/OSx86 until I found the community and I've already learned so much just by reading the boards.

So I started my own project when I came across the Kalyway 10.5.1 install DVD. I treid to install it on my Gateway M460 but after a bit of research, and many installation attempts, I found out that I'd probably be better off using the older Tiger because it had better support for my older laptop.

So I got JaS 10.4.8 DVD almost everything seems to work. Even my wireless works after I used the latest iwi2200 driver from the group (rev 579 Installer).

I was wondering if it's possible to use WEP or WPA with my system. I read the FAQ as well as the installation guide, which states that WEP is NOT supported, but many posts on the board allude to WEP 2200 working with Tiger. Is this possible? If so perhaps someone could direct me to which version of Tiger/2200 driver they're using?

Thanks,

LJ


The version you have works with wep. Try using an hex password with ":" like aa:bb:cc:dd:ee:ff
PM Profile Card
Go to the top of the page
+ Quote Post
**
  • Group: Members
  • Posts: 95
  • Joined: 30-April 06
  • Member No.: 37,052
QUOTE (Megnus @ Feb 24 2008, 01:53 AM) *
Just to get a quick overview. Is the driver close to getting finished?


Hi!
We have a bad news , Symuc and I searched a lot on the Linux driver(3945) and we didn't find a solution for a problem.
I'll try to explain this problem :
When the driver send a command , we have an HW error ( inta; 0x20000000)(DMA error)
but when we disable the interrupts the card seems to be OK ( inta 0x80000008 )( cmd sent and cmd response is ready) but the interrupts are disabled.
Lastly , when we enabled the interrupts but not on start we have this inta : 0x82000001 (Ucode loaded , cmd sent , SW error)

I think it's because the card is a PCIe card and we didn't correctly initialised the card.

So , I'm going to port the FreeBSD driver , but Symuc works a lot at his job so he can't work a lot on the driver .
If someone with c/cpp skills can help us ,that will be good for the project.
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 46
  • Joined: 25-December 07
  • Member No.: 165,806
is this for the 3945 or the 2200???
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 1
  • Joined: 15-February 08
  • Member No.: 187,373
Just a quick thank you for everyone on this forum for all their hard work, I think everything you all have achieved is outstanding. Please keep up the good work guys. I wish I was as smart as allot of you, however as sad as my stupidness may be to myself I will leave the genius work to the people who know what they are doing. bag.gif
PM Profile Card
Go to the top of the page
+ Quote Post
********
  • Group: Members
  • Posts: 1,141
  • Joined: 28-August 06
  • Member No.: 53,253
QUOTE (TNW @ Feb 24 2008, 11:49 AM) *
So , I'm going to port the FreeBSD driver , but Symuc works a lot at his job so he can't work a lot on the driver


the freebsd code will not fix the interrupts bug - it's a mac os x problem

if you like to use another aproach to fix this search code for
IOFilterInterruptEventSource::filterInterruptEventSource()
kIOPCIMSICapability, kIOPCIMSIXCapability
also check ioreg to see if the driver is sharing the interrupts with another device.

maybe this can fix the driver problem.

iwi3945
can someone post more logs for TNW last version?
PM Profile Card
Go to the top of the page
+ Quote Post
*
  • Group: Members
  • Posts: 2
  • Joined: 22-February 08
  • Member No.: 190,622
Thank You very much.

The driver worked for me on Kalyway 10.5.1. It didn't sem to work at first but I checked it out with the troubleshooting instructions, opened Network Selector and turned it on. I haven't gotten as far as checking to see if there is any more support for WPA ( I'm running on an open segment right now ).

Thanks again,

Taz416

Dell Inspiron 9300/geForceGo 6800/1.7Ghz/Intel 2200BG
PM Profile Card
Go to the top of the page
+ Quote Post
**
  • Group: Members
  • Posts: 95
  • Joined: 30-April 06
  • Member No.: 37,052
QUOTE (jalavoui @ Feb 24 2008, 04:42 PM) *
the freebsd code will not fix the interrupts bug - it's a mac os x problem

if you like to use another aproach to fix this search code for
IOFilterInterruptEventSource::filterInterruptEventSource()
kIOPCIMSICapability, kIOPCIMSIXCapability
also check ioreg to see if the driver is sharing the interrupts with another device.

maybe this can fix the driver problem.

iwi3945
can someone post more logs for TNW last version?


Hi wink.gif
I don't think that it's a problem of interrupts , I enabled the MSI but I don't know how to initialise the vector( for msi interrupts) because no explains come from Apple.
The card is MSI compatible but not compatible with MISX.
PM Profile Card
Go to the top of the page
+ Quote Post
171 Pages V  « < 10 11 12 13 14 > » 
Closed Topic Start new topic

7 User(s) are reading this topic (6 Guests and 0 Anonymous Users)
1 Members: Bastiann

 

RSS Lo-Fi Version Time is now: 21st November 2009 - 02:15 PM