Jump to content
3411 posts in this topic

Recommended Posts

TNW,

you need to copy some of iwi2200 code for the IOEthernetController version. check start(), enable(), disable(), outputpacket().

 

add a debug to outputpacket() to check if the interface receives the 1st packet

 

one important thing: create a networkSelector.app for turning the card on/off. this will help a lot for debuging the driver. you'll find some problems with rf_kill when turning the card on/off.

 

1st step at this time (i think) will be to write the missing code for station functions.

 

after this you need to handle rx packets - the most important will be the beacons and probe response. is this code in ieee80211_invoke_rx_handlers() ?

 

once this is done the driver will be ready to associate to networks. we'll need outputpacket once we get here

 

finally it will be ready to rx/tx data packets. it will not handle safe networks but at least the driver will be working :D

 

the reason of having the dmg in svn is mostly because of having more logs. there are different versions of iwi3945 cards.

 

you can try to use nsGUI if you like. but networkSelector works better if you need to reboot with "-s" option.

 

can you post the version of mac80211 you're using? maybe i can help writting some code.

 

it's also a good idea (before writting more code) to add a

#ifdef ethernet_version

to separate from IO80211Controller code

TWN,

I tried the kext load script with the test 3945 driver and it didn't seem to load so I just copied the kext into /Sysyem/Library/Extensions/

I tried rebooting twice and got a kernel panic each time it got to the 3945 driver, same spot each time. If you want I can post some pics.

Do you know how to boot from the panic? As I cant boot my OS X... Thnaks

 

Try to boot with -f or -x

if this doesn't work, boot with -s and type those commands to remove the driver (PARTITIONNAME is the name of the partition where you installed leopard:

 

rm -rf /Volumes/PARTITIONNAME/System/Library/Extensions/iwiXXXX.kext

 

(XXXX is your iwi version number: 2200, 3945 or else)

 

rm -rf /Volumes/PARTITIONNAME/System/Library/extensions.mkext

Then type exit and reboot your hackintosh.

TNW,

 

can you post the full system.log from last svn build?

if you have networkSelector what happens when turning the card on/off?

 

we'll need to write code for some skb linux functions

take a look at this:

http://tomoyo.sourceforge.jp/cgi-bin/lxr/s...x/skbuff.h#L644

this is better than trying to use list_head

 

it's better to remove

panic("BUG!"); \

the driver already as enought kernel panic. change it to printf() and make it return

 

in ieee80211_rx_irqsafe()

need to have tasklet_schedule(&local->tasklet); working. the driver won't work without this

 

__ieee80211_rx() need to have all mac80211 code. better to rewrite this function.

 

the best way to start all this is to begin writting code for ieee80211_alloc_hw(). all other functions depend on this one. i'm not shure of all code that is needed but you can start by enabling this one:

we don't need all mac80211 code - we'll see that later

 

eg:

 

static ieee80211_rx_handler ieee80211_rx_pre_handlers[] =

{

ieee80211_rx_h_parse_qos,

ieee80211_rx_h_load_stats,

NULL

};

on this case you can make ieee80211_rx_h_parse_qos(), ieee80211_rx_h_load_stats() return

 

on this:

static ieee80211_rx_handler ieee80211_rx_handlers[] =

{

ieee80211_rx_h_if_stats,

ieee80211_rx_h_monitor,

ieee80211_rx_h_passive_scan,

ieee80211_rx_h_check,

ieee80211_rx_h_sta_process,

ieee80211_rx_h_ccmp_decrypt,

ieee80211_rx_h_tkip_decrypt,

ieee80211_rx_h_wep_weak_iv_detection,

ieee80211_rx_h_wep_decrypt,

ieee80211_rx_h_defragment,

ieee80211_rx_h_ps_poll,

ieee80211_rx_h_michael_mic_verify,

/* this must be after decryption - so header is counted in MPDU mic

* must be before pae and data, so QOS_DATA format frames

* are not passed to user space by these functions

*/

ieee80211_rx_h_remove_qos_control,

ieee80211_rx_h_802_1x_pae,

ieee80211_rx_h_drop_unencrypted,

ieee80211_rx_h_data,

ieee80211_rx_h_mgmt,

NULL

};

make all return and write code for

ieee80211_rx_h_passive_scan,

ieee80211_rx_h_check,

ieee80211_rx_h_sta_process,

ieee80211_rx_h_drop_unencrypted,

ieee80211_rx_h_data,

ieee80211_rx_h_mgmt,

 

n the ifconfig :

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

there must be a bug in this. the RUNNING flag must be set only when the driver is associated to a network. just remembered: need to call disable() at driver load to fix this

i think you can use iwl3945_is_associated() in enable()

 

you can post the system.log - if it does not have all the log just press reload and you'll have it

ieee80211_alloc_hw.rtf

Hi ,

 

Sorry but i can't make a clean debug because log comes too quickly for system.log, and I'm not enought quick for press dmesg at the light speed :(

 

Are you thinking about port the mac80211 completly ? Like we do for the core driver ?

 

in the ifconfig :

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

ether 00:13:02:15:d8:12

media: autoselect status: inactive

supported media: autoselect

Last_log.rtf

Please, I have no quarry with you, but do some research. The driver is not functional yet. Please hold on and pay respect to those who put time and effort in giving you the oppertunity to have wireless on your precious laptop.

Well, I apologize if my question hurts you. by posting this, I do not want to be disrespectful to those who work hard to make this driver work. I know that driver is an alpha driver. But, I ask this to you in the hope that could help the team, nothing more.

 

So, Rubenca, stay relax and don't think I'm a poor noob who wants to polute this topic :(

there are some minor bugs in code:

 

in start() - sorry - better check the code in iwi2200. maybe you don't need WiFiPower.cpp

 

are this attachInterfaceWithMacAddress(), dataLinkLayerAttachComplete() correct? see if IOEthernetController/IONetworkController need this functions

 

there's missing code in outputPacket2(). in iwi2200 i have replace mergePacket(). you need to add this lines.

add a iolog to see if iwi3945 tryes to tx a packect with mbuf_next.

 

if(mbuf_next(m)){

nm = mergePacket(m);

if (nm==NULL)

{

netStats->outputErrors++;

IWI_ERR("merger pkt failed\n");

goto finish;

}

m=nm;

}

if(mbuf_next(m)){

IWI_ERR("BUG: dont support chains mbuf\n");

//IWI_ERR("BUG: tx packet is not single mbuf mbuf_len(%d) mbuf_pkthdr_len(%d)\n",mbuf_len(m) , mbuf_pkthdr_len(m) );

//IWI_ERR("BUG: next mbuf size %d\n",mbuf_len(mbuf_next(m)));

netStats->outputErrors++;

goto finish;

}

 

outputPacket() is wrong. copy from iwi2200

 

interruptOccurred() - i think we don't need this function

 

getPacketBufferConstraints(). all driver as it's align values. i don't know if this is right for iwi3945. see this later.

 

getHardwareAddress(). if you get errors on this add a if to check if priv!=NULL

 

getNetworkInterface(). missing code? maybe

 

getOutputQueue() - maybe it's better to remove this funtion.

 

configureInterface() copy from iwi2200. the netStats var controlls the rx/tx packets. it is used for statistics. you can see the rx/tx packets with Network Utility in Applications/Utilities. you need a place to reset netStats var - see ipw_reset_stats() in iwi2200

 

createWorkLoop(), getWorkLoop(),newVendorString(),newModelString() copy from iwi2200

 

this is all i can remember for now

I see some source code files related with iw4965 in these SVN Trees :

 

http://iwidarwin.googlecode.com/svn/trunk/...45-airport10.5/

 

and

 

http://iwidarwin.googlecode.com/svn/trunk/...45_new-osx10.5/

 

Could anyone explain what are they supposed to mean ?

I see some source code files related with iw4965 in these SVN Trees :

 

http://iwidarwin.googlecode.com/svn/trunk/...45-airport10.5/

 

and

 

http://iwidarwin.googlecode.com/svn/trunk/...45_new-osx10.5/

 

Could anyone explain what are they supposed to mean ?

 

They are supposed to mean WORK IN PROGRESS!!!

 

 

I saw comments regarding the 3945 ABG driver, and most people getting panics and happened with me too on my HP Pavilion DV2119TX. Anyways, problem repaired now using solutions above (Thanks a Lot!)

 

Not having a good camera to post the s-shots, but good luck to guyz working on this! and thanks a lot for the efforts being put in!

iwi3945 driver status

 

source code is available at

http://iwidarwin.googlecode.com/svn/trunk/...45_new-osx10.5/

this is the latest source code release

it's a IOEthernetController version - when the driver is stable we'll make a airport(IO80211Controller) version

 

anyone who like to develop this driver or the iwi4965 should look at this source files

 

iwi2200 driver status

working with wep support for mac os x 10.4 and 10.5

need more testing in 10.5

 

iwi2100

we don't have anyone with this card for help developing the driver

i read the source codes . i really wish i could do something . i don't know where to start . i wish i had some experience in this kind of programing. if there is a way to read about it to learn it'll be nice. i mean learn how to develop.

 

thanks a lot . i'm sure this driver will work soon.

I've been looking into these threads for a while, listening and looking around. It's good work here, and I am really glad Jalavoui & TNW (And others I am sure) are working hard on these drivers. There are a lot of us who would like to help, but know little about OS X and less about Drivers and the coding involved. I've been looking around, and I personally would like to see what still needs to be done, and what any of us can help with (besides testing obviously).

 

Basically, a Status report:

-How much money has been donated.

-How much more money you would like, and what you will use it for.

-What issues you are working on in which drivers.

 

And a Question: Jalavoui and TNW, are you only communicating through these forums?

i had the same question , if it's possible to make an ndiswrapper. i have the 3945 .and on ubuntu i install this ndiswrapper which is working not only for 3945 but many other cards . i wonder how that works . but it works great. so, since mac is unix based os . i'm not sure . but there could be away. anyways i'm just asking the developers , they might know something.

 

again i thank you guys for your work . i mean whatever you've done so far is amazing. it's a hard work. thanks a lot.

Hmm..... I have a very small question that is

I'm going to buy meself a new notebook{dell xps 1530m}

and I get the option of choosing between 3945 and 4965...

I'm confused which one should I choose ?

cab someone please help me....

thanks in advance

4965 coz it got wireless a/b/g and N support.

 

3945 only supports wireless a/b/g.

 

Since wireless-N is the next generation wireless standard, you should buy 4965.

But is 4965 having any drivers for leopard ....I want it to be supported

in leapord....and from what i see 3945 has more support and more

stable drivers

im sorry fi the inconvinience but im really confused ....can some one please guide me

...thanks for upur quick response ZAWIR.....can u please explain wjat u mean to me

Guest
This topic is now closed to further replies.
×
×
  • Create New...