Jump to content

Project: Wireless Drivers


46 posts in this topic

Recommended Posts

I was planning to try my luck with this driver by the end of the month, when I get more time. So you can definitely count me in. That is, if you don't get it to work on your own by then :mellow: Well, have you looked at some other drivers, the PrismGT one maybe, how the firmware loading is done there? And there seems to be a BSD port of the ipw2200 already - might be worth a look, too. So you think the ipw2200 guys are interested in this port? Oh, and by the way, are there any PCcards or PCI cards built on this chipset out there?

Link to comment
Share on other sites

This is pertaining to Prism/Prism2 work, hopefuly I got the right thread.

 

I've put up yesterday's (09/06/05) CVS tree here.

 

These are the latest drivers including support for Tiger. I've gotten it to compile, but on boot I get an error and it tells me to reboot. :\ (Just a note, 'nuWireless' doesn't compile, and neither does sigMeter in WirelessConfig)

 

Howto compile:

 

 You will need to install the OS X 10.2 developer tools. This is a free download from Apple once you register as an Online developer (this IS free!). Find the file called WirelessDriver.pbproj in the source code, double click it to launch project builder. Select the "targets" tab and check the deployment build style. Click on the build button (hammer) to compile the driver. Do the same for the file called WirelessConfig.pbproj selecting the preference pane target..then the command line tool target and the signal meter target......pretty easy eh? Now you need to copy WirelessDriver.kext from the new build directory into /System/Library/Extensions, WirelessConfig to /usr/local/bin and WirelessDriver PPane.prefPane to /Library/PreferencePanes. You can put the SigMeter anywhere. Make sure the WirelessDriver.kext is owned by root so that it will load correctly. To ensure this, type the following in the terminal:

chown -R root.wheel /System/Library/Extensions/WirelessDriver.kext

Reboot and Enjoy!

 

Hopefully this helps, someone.. somewhere :)

Link to comment
Share on other sites

I built the sourcecode oniq posted, some things went well, other things didn't work. I'm quite a noob at this sort of work but I tried some buttons and something did happen ;)

 

I built all the projects that i found in many diffirent ways and orders, this is a little summary from what Xcode told me, I guess that's the same you'll find when you compile:

nuWireless:
-SimpleApp: fails. Missing file or directory /usr/lib/libstdc++.a
-WirelessDriver2:  fails. Missing netinet/ip_compat.h
        and a lot of other errors/warnings.
WirelessCard:
-WirelessDriver: succes!
-UserClient: succes! 

WirelessConfig
-WirelessConfig: succes!
-Preference Pane: succes!
-Command Line Tool: succes!
-SigMeter: fails. Missing SystemUIPlugin.h and other errors.

What I have now: a new panel in my config screen and a new kext in the Extensions folder. The UserClient app launches but dissapears from the dock immideately. I don't know wether the kext is loaded but my card is still not recognized, i guess i need the wirelessdriver2 (for prism2?) wich is not working yet.

 

I hope this info is usefull for some of you, i'd be more than happy to help.

 

Greetings, Thomas

 

attatched:

-wireless_panel.jpg > just a picture of the config panel

-wirelessDriver.zip > zipped kext (WirelessDriver.kext) (zip because i'm on winxp)

-UserClientTemplate.zip > zipped UserClient app, not working for me

 

ps.sorry for the doublepost

 

UPDATE:

since nobody is replying/reading i'll just go ahead and post some results.

 

I managed to get the kext (attached) loaded, it loaded fine without any errors (as far as I know) but still no card in the pref pane, do I have to edit weird files to tell osx where to find my card? Maybe my card isn;t even supported for this driver (http://wirelessdriver.sourceforge.net/), i have a minipci card and all they're talking about on that site is pcmcia.. hmm, can anybody help me with this?

post-8025-1126203296_thumb.jpg

WirelessDriver.zip

UserClientTemplate.zip

Link to comment
Share on other sites

maybe my card is supported by the wirelesdriver2 (compiled in nuWirless) but i can't compile it because i miss those files:

- /usr/lib/libstdc++.a

- netinet/ip_compat.h

does somebody know where to get them?

 

 

use the spotlight function on the right upper cuadrant of any finder window

 

this will locate libstdc++.a and any other files

 

just be sure to select the right one according to your compiler (cc v4.0 needs the one from the 4.0 directory and so on)

 

you only need developers tools installed (which you probably have) (if you dont the exisit as a package in the DVD, or get the from Apple)

Link to comment
Share on other sites

i found the ip_compat.h file but i really dont have libstdc++.a, but I read somewhere on apple's developer sites that the libstdc++.a file is useless since gcc4, I removed it and no error about it.. i get more specific errors but I guess that's because the build process moves on. I attatched a file with lots of errors when compiling the WirelessFramework, i guess that's the file I also need before compiling the other projects. oh, i'm really not the right person for this kind of work :D

framework_errors.rtf

Link to comment
Share on other sites

  • 2 weeks later...
i am currently working on a port of the ipw2200 driver... but i am having trouble setting the dmas up to transfer the firmware and initialize the ucode some skilled dude is helping me on the developers mailing list however.

How are you progressing with this thing? Did you get past the firmware upload problems? Any source code to look at?

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
  • 2 weeks later...

Hey Everyone!

 

I've gotten fairly close to dissecting the WirelessDriver off SourceForge and getting it to run on my OSx86. I have an IBM THinkpad T30 using an MA401 pccard in slot 0. Can anyone confirm that card insertions and ejections are working on slot 1 of their pccard bus????? Mine freezes the system, havent investigated further. I figured its because apple only uses 1 slot buses . . . so they havent done much testing of their code on 2 card buses.

 

As far as the WirelessDriver . . . endiannes does not seem to be an issue, as they have properly extracted all info using methods from OSByteOrder.h which is endian-safe. I found that their model of mapping the card's memory into the kernel was not functioning on my system. I have modified their functions that read and write from the card to use members of IOPCCard16 object (the one derived from the same object as the PCI) . . . and this works without kernel panic. Not sure what was happening in their code, but probably some sort of dereferences pointer getting passed to the kernel.

 

HOWEVER BAD NEWS!!! I have fried my pccard socket 0 . . . too much data access and pulling it in and out of the pccard socket I suppose. So my only computer with a supported cardbus is now no longer functioning well enough to continue development. If anyone wants to check out my source and continue development for me during this dark time of broken computers, I would be very grateful. It will take a while to get this baby serviced from the manuf.

 

 

 

ALSO!!!! VERY IMPORTANT!!! For all you non-coders out there, there is a great way to help us out. Please try to find the programmer/developer manual for the chipset on your card and send it to me or post it in here or something. So far I have only been able to get my hands on prism2 (hfa84xx or whatever chip). There are drivers out there which are open source that provide support for these cards:

Atheros A/B/G Chipset Cards - MadWIFI Project

Prism2/2.5/3 - hostap driver

PrismGT/Duette/Indigo - prism54 project

 

and many others. If you want to help out . . . pick a project that supports your card and ask the dev team for any technical manuals they may have for those card. I am too lazy :P

Link to comment
Share on other sites

Oh yes . . sorry. Anyone who wants the source I've compiled . . . let me know by emailing chris at translucentnetworks dot com

 

Please do not ask for the source unless you are a serious coder . . . this is not the kind of thing you dump into xcode without having a solid grasp of kernel programming :P

 

 

 

 

PS - Please everyone userstand that drivers dont port to OSX from linux. OSX might as well be windows as far as porting code from one kernel from linux. seriously! the ndiswrapper project will never work in OSX . . . darwin is based mainly on FreeBSD . . . but again - the Darwin Kernel is a strange animal and ports of kernel code a tough as nails.

Link to comment
Share on other sites

its only for pccard right now . . . however I know the original team has already started a USB version at SourceForge. The beauty of apple's IOKit is that once you have written a driver for one type of device, it easily ports to another (PCI, PCCARD, USB, etc). My goal is to produce a patch for the original code that make it comatible with my system (and the rest of your systems, of course!). Then get it incorporated into the source of the original project so we can all benefit from their hard work :)

 

The specs of my build:

- using 10.4 Universal SDK

- using GCC 4.0

 

The results of their original code:

- compiles cleanly

- kernel panic originating from checkForWork() :P

 

The results of my code:

- No kernel panics :)

- driver now loads and unloads cleans

- card can be injected/inserted/re-inserted ad infinitum (or until you bust your cardbus slot :) )

- card is initialized and association led flashes . . . coooool

- access to card information via BAP is not working

 

The last step is good to be able to provide info about the card to ifconfig when you use it (like the mac address). That's as far as I got before my slot toasted (and no it was not the code that did it . . . but that would be funny lol ). Right now I need someone who can test and implement new code for this effort.

Link to comment
Share on other sites

  • 4 weeks later...

I have just recently gotten involved in MacOS x86 and am generally interested in hardware specific programming (any OS). I would like to get involved in this project, but I have a few concerns:

 

1) What are the prerequisites? Do I have to know assembly, C, which language? I am an advanced coder in C but have no clue in terms of hardware.

 

2) Where do I/you (the general 'you') begin? I have been reading the osx86 forum for quite some time now and thought I'd get involved, but am somewhat worried because I have no experience with this. How do you code device drivers in general? What questions are worth asking yourself to begin on such a project? I think this goes back to number 1 in terms of coding hardware.

 

I might have said something stupid but please bear with me. Any suggestions and/or things to do relating to this project would be greatly appreciated. Any good books/online tutorials that would help me understand how device drivers work would be great as well.

 

Thank You

MA Billoo

Link to comment
Share on other sites

  • 3 weeks later...

Hi @all,

 

maybe you find these guys interesting, they have a working open driver for 54mbit cards:

 

GTDriver is the first Open Source (GPL) Driver which supports 54Mbit cards under MacOS 10.3 & MacOS 10.4. Unlike others, the design of the Prism GT chipset allows all software components to be open. Even though it is untested the software might work as well with Darwin.

 

http://gtdriver.binaervarianz.de/download.php

Edited by xtraa
Link to comment
Share on other sites

Hi Gang,

 

I wish I could work with the driver link above, but my PCCard slot is ruined.

 

In answer to M$ Bob . . . experience in C is very necessary. C++ is even better. ASM is not required, but it helps to have a good understanding of it . . . as it is ESSENTIAL when programming a driver to understand how to move information around in memory, and it often becomes essential to understand how your C is compiled into machine code and executed if your kernel driver requires debugging.

 

To get started building kernel modules, check out the apple developer network. They have extensive documentation . . . start here: http://developer.apple.com/documentation/D...cept/index.html

Link to comment
Share on other sites

  • 3 months later...

Hi guys very good initiative. Congrats. I dont have the skills to help you in programming which i sorry for. I just want to know do you plan support for Intel Pro wireless 2200bg. If you need tester i can do that for you unless it doesnt bake my lappy.

 

Regards

Link to comment
Share on other sites

 Share

×
×
  • Create New...