# Software > Linux >  Open HAL και MadWiFi

## Mick Flemm

Το OpenHAL δεν είναι κάτι καινούριο, υπάρχει εδώ και καιρό και είναι το open-source υποκατάστατο του binary HAL της Atheros που υπάρχει στον MadWiFi. Είναι κυρίως προϊόν reverse-engineering (και όχι μόνο, φήμες λένε ότι πήραν υλικό από την Atheros και το βγάλαν στη φόρα) και πλέον αποτελεί κομάτι του ath driver στο OpenBSD ο οποίος παρεπιπτόντως ακούω ότι είναι αρκετά stable. Το development για Linux έχει σταματίσει εδώ και καιρό, εκτώς από ένα port που είχε φτιάξει το roofnet project και είναι προ 3+ μηνών.

Το HAL στην ουσία είναι το firmware της κάρτας, μόνο που το βάζουν στον driver κι όχι στην κάρτα (έχουν δώσει σημασία περισσότερο στο physical layer), συνεπώς πειράζοντάς το μπορούμε να κάνουμε ΤΑ ΠΑΝΤΑ.

Τον τελευταίο καιρό προσπαθώ να κάνω update το υπάρχον port του roofnet project ώστε να δουλεύει σωστά με τον MadWiFi + να υποστιρίζει καλύτερα τις κάρτες και να έχει περισσότερα features (έχω πάρει τα definitions κλπ απ' το OpenBSD και τα έχω φέρει στα μέτρα μου).

Τα αποτελέσματα μέχρι τώρα είναι ενθαρυντικά, το module γίνεται compiled Ο.Κ. και φορτώνει κανονικά στον 2.6 (χρειάστηκε να βγάλω τα MOD_*_USE_COUNT; που είναι deprecated πλέον, αφού ο Kernel καταλαβαίνει τι rescources απασχολεί ο driver και δεν χρειάζεται αυτό το counter, καθώς και κάτι διορθώσεις στα definitions και μερικά ISO C90 combatibility isues - να είναι οι μεταβλητές στην αρχή της συνάρτησης κλπ), το hal γίνεται κανονικά attached και φαίνεται να δουλεύει O.K., τα κανάλια γίνονται κανονικά listed και φαίνεται να δουλεύουν τα wireless tools κανονικά (με τα private ioctls έχω κάτι προβλήμματα αλλά το δουλεύω). Επίσης σε έναν απ' τους πειραματισμούς μου, σηκώθηκε και κανονικά το interface και έπαιρνε κανονικά essid και mode (στο txpower κόλησε, προφανώς μου λείπει κάποιο initialization, το κοιτάω στον OpenBSD driver μπας και το βρω).

Έχει ακόμα πολύ δουλειά, προς το παρόν πειράζοντας τον κώδικα κατάφερα όταν σηκώνεται το interface να κολάει το σύστημα  ::  μάλλον κάποια λάθος deffinitions στο ah.h (του openhal) που έχουν ως αποτέλεσμα να γίνονται λάθος handle κάποιες λειτουργίες από το if_ath.c. Επίσης θέλει δουλειά το ah_osdep.h (του openhal πάντα -εκεί μάλλον την έχω κάνει τη λαδιά, λέω να το αφήσω άδειο και να τα βάλω όλα στο ah.h) και περεταίρω πειράγματα. Πάντως στο updated HAL (παίρνοντας κώδικα απ' το OpenBSD) δουλεύουν και τα regulatory domains κλπ και το filtering των καναλιών (don't worry, πειράζοντας τα definitions στο ieee80211_regdomain.h κάνουμε ότι θέλουμε με τα κανάλια κλπ, επίσης παρακάμπτεται και τελείως το regulatory domain από το countrycode αμα θέλουμε κλπ).

Παλεύω να το φέρω σε μια κατάσταση να δουλεύει (με κάποιον απ' τους παλιούς madwifi drivers του Οκτωμβρίου και παλαιότερους -με sample rate αλγόριθμο βέβαια-) ικανοποιητικά και σχετικά ασφαλώς (αν είναι να διαλύσω μόνο την δικιά μου κάρτα, μη σας πάρω στο λαιμό μου). Όταν τα καταφέρω θα πετάξω τον κώδικα εδωπέρα και θα στείλω κι ένα mail στο roofnet project για να κάνουν update.

Για να μην σας αφήσω όμως έτσι, πάρτε μια γεύση...



```
mathematix:/usr/src/madwifi# make
Checking if all requirements are met... ok.
mkdir -p ./symbols
for i in ./openhal ath_rate/sample ./net80211 ./ath; do \
        make -C $i || exit 1; \
done
make[1]: Entering directory `/usr/src/madwifi/openhal'
make -C /lib/modules/2.6.14.2-mf/build SUBDIRS=/usr/src/madwifi/openhal MODVERDIR=/usr/src/madwifi/openhal/../symbols modules
make[2]: Entering directory `/usr/src/linux-2.6.14.2'
  CC [M]  /usr/src/madwifi/openhal/ah_osdep.o
  CC [M]  /usr/src/madwifi/openhal/ar5xxx.o
  CC [M]  /usr/src/madwifi/openhal/ar5212.o
  CC [M]  /usr/src/madwifi/openhal/ieee80211_regdomain.o
  LD [M]  /usr/src/madwifi/openhal/ath_hal.o
  Building modules, stage 2.
  MODPOST
  CC      /usr/src/madwifi/openhal/ath_hal.mod.o
  LD [M]  /usr/src/madwifi/openhal/ath_hal.ko
  ...
  ...

mathematix:/usr/src/madwifi# lsmod |grep ath
ath_pci                81308  0
ath_rate_sample        16776  1 ath_pci
wlan                  145692  3 ath_pci,ath_rate_sample
ath_hal                66568  2 ath_pci,ath_rate_sample


mathematix:/usr/src/madwifi# modprobe -r ath_pci
mathematix:/usr/src/madwifi# modprobe ath_pci
mathematix:/usr/src/madwifi# tail -f /var/log/messages -n 30
Dec 28 19:19:40 localhost kernel: ath_pci: driver unloaded
Dec 28 19:19:40 localhost kernel: ath_rate_sample: unloaded
Dec 28 19:19:40 localhost kernel: wlan: driver unloaded
Dec 28 19:19:40 localhost kernel: ath_hal: driver unloaded
Dec 28 19:19:44 localhost kernel: ath_hal: driver loaded
Dec 28 19:19:44 localhost kernel: wlan: 0.8.6.0 (EXPERIMENTAL)
Dec 28 19:19:44 localhost kernel: ath_rate_sample: 1.2
Dec 28 19:19:44 localhost kernel: ath_pci: 0.9.6.0 (EXPERIMENTAL)
Dec 28 19:19:44 localhost kernel: ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 22 (level, low) -> IRQ 209
Dec 28 19:19:44 localhost kernel: Build date: Dec 28 2005
Dec 28 19:19:44 localhost kernel: Debugging version (IEEE80211)
Dec 28 19:19:44 localhost kernel: ath0: H/W encryption support: WEP
Dec 28 19:19:44 localhost kernel: ath0: mac 5.6 phy 4.1 radio 3.6
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 1 for WME_AC_BE traffic
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 0 for WME_AC_BK traffic
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 2 for WME_AC_VI traffic
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 3 for WME_AC_VO traffic
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 9 for CAB traffic
Dec 28 19:19:44 localhost kernel: ath0: Use hw queue 8 for beacons
Dec 28 19:19:44 localhost kernel: Debugging version (ATH)
Dec 28 19:19:44 localhost kernel: ath0: : mem=0xc2000000, irq=209

mathematix:/usr/src/madwifi# iwconfig ath0
ath0      IEEE 802.11  ESSID:""
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
          Bit Rate:0 kb/s   Tx-Power:20 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

mathematix:/usr/src/madwifi# iwlist ath0 channel
ath0      255 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 14 : 2.484 GHz
          Channel 16 : 5.08 GHz
          Channel 34 : 5.17 GHz
          Channel 36 : 5.18 GHz
          Channel 38 : 5.19 GHz
          Channel 40 : 5.2 GHz
          Channel 42 : 5.21 GHz
          Channel 44 : 5.22 GHz
          Channel 46 : 5.23 GHz
          Channel 48 : 5.24 GHz
          Channel 50 : 5.25 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 58 : 5.29 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Channel 100 : 5.5 GHz
          Channel 104 : 5.52 GHz
          Channel 108 : 5.54 GHz
          Current Frequency=2.412 GHz (Channel 1)
```

Τα κανάλια είναι ξεκλείδωτα απλά στην συγκεκριμένη φάση φαίνονται μόνο 32 (περιορισμός μάλλον σε κάποιο buffer, μπορεί και στα wireless tools) επίσης για να παίζουν όλα όσα είναι διαθέσημα απ' το hardware πρέπει να πειράξουμε το ieee80211_regdomain.h (θέλει κι άλλα definitions για κανάλια).

I'll keep you posted !

Ελπίζω να το στρώσω και να είναι αρκετά λειτουργικό για να κάνουμε την δουλειά μας (και μετά όποιος δεν βγάλει το Mikrotik θα τον κρεμάσω ανάποδα απ' τον πολυέλαιο).  ::

----------


## Mick Flemm

Τελικά κάτι παίζει με το ath_rate, φαίνεται να κολάει όταν πάει να κάνει initialize το ath_rate_sample. Με onoe δούλεψε κανονικά. Παραθέτω το ριμάδι (την ψιλοmodified έκδοση που δουλεύει, όχι όπως το έχω κάνει τώρα, μόνο το ieee80211_regdomain.h έχω κάνει update σε αυτή) για να το βάλετε και να το δοκιμάσετε.

Το τέσταρα στην έκδοση που χρησιμοποιείτε (όπως είδα στο wiki) δλδ το cvs-snapshot-2005-07-11 με onoe για το rate.

Για να το βάλετε κάνετε τα εξής...

extract το ριμάδι στον κατάλογο του MadWiFi
ανοίγετε το Makefile.inc και αλλάζετε το HAL και το ATH_HAL ώστε να κοιτάν στον κατάλογο του openhal.



```
HAL=    ${obj}/${DEPTH}/openhal
ATH_HAL=${DEPTH}/openhal
```

κάνετε make κι ελπίζετε να δουλέψει  :: 

Update: Φαίνεται να παίζει το txpower και δοκιμάστικε και με Kismet (το κουλό είναι ότι βρήκα ένα δίκτυο μέσα στο σπίτι μου που δεν το έβλεπα πριν  ::  τώρα μπορώ να προχωρήσω με το development του java kismet client). Πληζ δοκιμάστε το να δούμε τι λέει, θα προσπαθήσω να το κάνω να παίζει με rate_sample κλπ. Επίσης αν παρατηρίσετε όταν αλλάζει μεταξύ των καναλιών, μπορείτε να δείτε απ

----------


## acoul

Μπράβο Νίκο !! Περιμένουμε με αγωνία περισσότερο feedback από αυτό το πολύ ενδιαφέρον θέμα !!

----------


## Ernest0x

Ωραία νέα! Μπράβο. Θα το δοκιμάσω και θα ποστάρω εντυπώσεις.
Στο loading του ath_rate_sample έτρωγα κι εγώ segfault σε 2.6.13.4 kernel με τους madwifi-cvs-snapshot-2005-07-11 (στους οποίους ήταν default ακόμα ο onoe αλγόριθμος), οπότε ίσως να μην έχει σχέση (και μου φαίνεται λογικό αυτό) με το hal.

----------


## Mick Flemm

> Ωραία νέα! Μπράβο. Θα το δοκιμάσω και θα ποστάρω εντυπώσεις.
> Στο loading του ath_rate_sample έτρωγα κι εγώ segfault σε 2.6.13.4 kernel με τους madwifi-cvs-snapshot-2005-07-11 (στους οποίους ήταν default ακόμα ο onoe αλγόριθμος), οπότε ίσως να μην έχει σχέση (και μου φαίνεται λογικό αυτό) με το hal.


Ωραία, ψάχνω να δω τις αλλαγές που έγιναν μεταξύ του 07-11 και του 08-16 όπου και κολάει το σύμπαν...

----------


## Mick Flemm

Φαίνεται ότι μετά το snapshot 2005-07-11 όπου και έγιναν merge το BSD και το HEAD branch το πράγμα έχει προβλήμματα. Ψάχνω να δω ποιά απ' τις αλλαγές δημιουργεί το πρόβλημμα (και πως αυτό συνδέεται με το ΟpenHAL αν συνδέεται).

http://madwifi.org/log/cvs-import/trunk ... verbose=on

Ρίχτε μια ματιά κι εσείς μπας και το βρούμε.

----------


## Mick Flemm

GRRRR Τελικά ήταν πριν το BSD branch merge γι αυτό είναι λογικό μετά το merge να γίνεται το χάος και να μην καταλαβαίνω τι μου γίνεται...

http://madwifi.org/changeset/1143

*Feedback στο παραπάνω παιδιά και να μαζέψουμε definitions για κανάλια που υποστιρίζονται (δείτε ποιές συχνότητες που χρησιμοποιεί η κάρτα σας δεν αντιστοιχίζονται σε κανάλια) !!!*

----------


## Mick Flemm

Να και το updated source, είναι μόνο για τα 5212 (και κάποια απ' τα πρώτα 5213 ελπίζω) και ακολουθεί τον κώδικα που υπάρχει στο OpenBSD. Προσπάθησα να βάλω λίγη τάξη στο χάος κι ακόμα δεν έχω καταλάβει κάποια πράγματα (η όλη φάση με το /proc μου έχει σπάσει τα νεύρα).

So μέχρι τώρα δουλεύουν τα παρακάτω:

1) Monitoring απ' το οποίο φαίνεται ότι χρησιμοποιεί όλα τα κανάλια (και πρέπει να δούμε ποιά δεν είναι καταχωριμένα και να τα βάλουμε στο ieee80211_regdomain.h), μου έκανε scan κανονικά και βρήκε και δίκτυο.

2) Φαίνεται να αλλάζει κανονικά modes (master/managed/ad-hoc) καθώς και να αλλάζει το txpower (υπάρχει το definition στο HAL το κοίταξα, αν και λίγο ζαβο -η συνάρτηση στο HAL έχει μια παραπάνω παράμετρο απ' ότι στο MadWiFi, φαίνεται ότι έχουν προβλέψει και καλά διαφορετικό txpower ανάλογα με το κανάλι-).

3) Δουλεύει κανονικά με το kismet.

Δεν μπόρεσα να κάνω traffic γιατί είμαι μέσα στο σπίτι και δεν πιάνω τίποτα από εδώ, θα πρέπει να το δοκιμάσουμε κάπου (εθελοντές?).

Δεν δουλεύουν μέχρι στιγμής τα εξής:

1)Τα operation modes (οχι managed κλπ, ενοώ τα b/g/a/turbo κλπ που ρυθμίζονται απ' το iwpriv athX mode x).

2)Ο rate_sample αλγόρυθμος (βγάζει segfault).

3) Θα δίξει στην πορεία  :: 

Σημείωση: Στον κώδικα αυτόν έχει υλοποιηθεί ο μηχανισμός για τα regulatory domains και τα country codes, για να τον παρακάμψω και να εκμεταλευόμαστε όλα τα κανάλια (αλλά ταυτόχρονα να μπορεί και να συντηριθεί) by default έχω βάλει ένα definition στο ar5xxx.c. Αν κατά τα άλλα θέλετε να χρησιμοποιήσετε τα regulatory domains κλπ απλά βρείτε τη γραμμή #define SUPERCHANNEL 1 και κάντε την comment (βάλτε "//" μπρωστά).

Υπενθυμίζω ότι το ριμάδι τρέχει μόνο σε snapshot πριν το merge (το 2005-07-11 είναι το τελευταίο με το οποίο δουλεύει, αυτό χρησιμοποιούν και οι περισσότεροι όπως λέει και το wiki) και για να το κάνετε compile πρέπει να πειράξετε το Makefile.inc (βλ. παραπάνω).

ΕDITED: Δεν δούλευε σωστά και το έβγαλα, χρησιμοποιείστε το παραπάνω.

----------


## Ernest0x

Δοκίμασα το updated openhal με τους cvs-11-7-2005 αλλά crashαρε όλο το σύστημα αμέσως μετά το load. Έχω όμως κάρτα με 5213 chipset.

----------


## Mick Flemm

> Δοκίμασα το updated openhal με τους cvs-11-7-2005 αλλά crashαρε όλο το σύστημα αμέσως μετά το load. Έχω όμως κάρτα με 5213 chipset.


O.K. λογικό είναι, δεν υποστηρίζονται ακόμα, ρίξε μια ματιά να βρεις το device id για να το βγάλουμε απ' τη λίστα (να μην κάνει attach σε αυτό). Το προηγούμενο σου δούλεψε ?

----------


## Mick Flemm

Ο κώδικας πλέον φιλοξενείται στο ath-driver.org και έχει ξεκινήσει το πείραγμά του, ήδη γίνονται δοκιμές για το 5424 chipset και το στρώνουμε για να γίνεται compile στον 2.6.17 και νεότερους  :: 



```
Hello folks,


Depending on my laziness /I got holidays here/ and few other factors we will be
having some source code uploaded and available to anyone soon.
Call it a temporary-working-solution-ready-for-anyone-to-get-his-hands-on-it-
and-start-hacking-and-sending-patches or call it whatever you want. In one or
two days THE THING will be up. More details soon.


all the best and happy summer
Mateusz

P.S.
We have a maintainer change and I'm no longer touching the HAL part of the code.

P.P.S.
THE THING is confirmed to be working. Period.

--------------------------------------------------------------------------------
Hello people,


you can git clone from the following link

rsync://rsync.ath-driver.org/gnumonks_users/mb/openhal.git

and quoting Nick
========================================================================
svn checkout http://svn.madwifi.org/branches/madwifi-old -r 1142 madwifi

Don't forget to remove the ending ) in line 175 at
net80211/ieee80211_radiotap.h


See README for more details
========================================================================


happy hacking,
Mateusz
```

Καλώ όποιον ενδιαφέρεται να βοηθίσει, να γραφτεί στην λίστα ath-driver-devel ([email protected]) μπας και δούμε άσπρη μέρα  ::

----------


## acoul

ψήνομαι ... από τη ζέστη  ::

----------


## Mick Flemm

Το πράγμα προχωράει και έφτασε η μεγάλη ώρα της νομιμότητας...

α) Το ar5k είναι BSD-like licence ενώ το ριμάδι για να μπει στον πυρήνα πρέπει να είναι GPL οπότε δουλεύουμε με τον Reyk και το FSF να βρούμε μια λύση, 

β) Παράληλα ο Sam Leffer μας είπε ανεπίσημα ότι μπορούμε να είμαστε σίγουροι ότι ο κώδικας του ar5k είναι βασισμένος σε proprietary υλικό οπότε τώρα περιμένουμε απ' τον Reyk να μας πει πως τον έγραψε κλπ. Θεωρητικά πάντα μπορεί με 1:1 disasembly του binary HAL (το οποίο είναι εντελώς αυτόνομο πράγμα χωρίς τα τρελά links προς τα έξω και χωρίς καθόλου optimization -να φανταστείτε έχει γίνει compile σε freebsd) να βγει κώδικας που μοιάζει παρα πολύ με τον αρχικό. Βέβαια ο Leffer που έχει γράψει και το binary HAL μπορεί με το "proprietary υλικό" να εννοεί το ίδιο το binary HAL και όχι και καλά κλεμένο κώδικα (μας λέει στην ουσία ότι του Reyk δεν του ήρθε ουρανοκατεύατο αλλά έκανε reverse engineer στο binary HAL).

οπότε μέχρι να λυθεί το θέμα no code όπως φαίνεται  ::

----------


## Mick Flemm

Τελικά ξεσκάλωσε, περισσότερα εν καιρό..

Προς το παρόν μπορείτε να κάνετε git-clone την τελευταία έκδοση (υποστιρίζει τα επόμενα chipset της Atheros -5424 κλπ- όχι και πολύ καλά ακόμα + έχει μερικά fixes).

----------


## paravoid

> α) Το ar5k είναι BSD-like licence ενώ το ριμάδι για να μπει στον πυρήνα πρέπει να είναι GPL οπότε δουλεύουμε με τον Reyk και το FSF να βρούμε μια λύση,


Hellooooooooooooooo το ({2,3}-clause) BSD είναι GPL-compatible...

----------


## Mick Flemm

Αν δεν δεχτεί ο Reyk όμως να γίνει dual lisence (που δεν δέχτηκε γιατί λέει ότι δεν είναι διατεθημένος να κάνει τον μπαμπούλα και να ελέγχει ποιός χρησιμοποιεί παράνομα τον κώδικα) τότε αλλάζει το πράγμα κι επειδή ούτε εγώ, ούτε εσύ, ούτε οι περισσότεροι στη λίστα είμαστε δικηγόροι ζητήσαμε την βοήθεια των ειδικών. Το 2ο όμως ήταν και είναι το κυριότερο και ακόμα δεν έχουμε εγγυήσεις ότι ο κώδικας του Reyk είναι normal οπότε τον χρησιμοποιούμε προσωρινά (για το development του driver).

----------


## acoul

Μπράβο Νίκο, Φαίδων πόσο στοιχίζει ο καλός ο λόγος τελικά ... ??

----------


## Mick Flemm

Thanx αν και δεν έχω κάνει μέχρι στιγμής κάτι το ιδιαίτερο  ::  στο μέλλον ελπίζω όταν το project μπει σε κάποιο δρόμο να μπορώ να βοηθίσω περισσότερο...

----------


## paravoid

> Αν δεν δεχτεί ο Reyk όμως να γίνει dual lisence (που δεν δέχτηκε γιατί λέει ότι δεν είναι διατεθημένος να κάνει τον μπαμπούλα και να ελέγχει ποιός χρησιμοποιεί παράνομα τον κώδικα) τότε αλλάζει το πράγμα κι επειδή ούτε εγώ, ούτε εσύ, ούτε οι περισσότεροι στη λίστα είμαστε δικηγόροι ζητήσαμε την βοήθεια των ειδικών. Το 2ο όμως ήταν και είναι το κυριότερο και ακόμα δεν έχουμε εγγυήσεις ότι ο κώδικας του Reyk είναι normal οπότε τον χρησιμοποιούμε προσωρινά (για το development του driver).


To BSD είναι GPL-compatible.

----------


## Mick Flemm

Το ξέρω ρε Φαίδωνα, έλεος δλδ ! Δεν κάλεσα εγώ το FSF για να μεσολαβήσει, απλά δεν μπορούσαμε να βασίσουμε ένα project σε κάτι αμφιλεγόμενο, κάποιοι δεν είχαμε πρόβλημμα, κάποιοι άλλοι δεν πείθονταν και ήθελαν επίσημη θέση απ' το FSF. Οι υποδείξεις σου τι νόημα έχουν ? Βρήκες πάλι ευκαιρία να το παίξεις ξερόλας ? Σου εξηγώ επάνω όμορφα ότι ο Reyk δεν ήθελε να γίνει redistribute ο κώδικάς του υπό την GPL και για να είμαστε σίγουροι καλέσαμε το FSF, όλοι ξέρουμε να διαβάζουμε το gnu.org δλδ, έλεος πια...

----------


## bedazzled

.

----------


## Mick Flemm

Κάτι άλλο που είδα είναι ότι πλέον με τα fixes που έγιναν στο "φακέλωμα" των καναλιών + το g που έγινε disable, το auto mode δουλεύει κανονικά ! Αν π.χ. βάλετε στο kismet το madwifi_ab θα έχετε full scan !!! Επίσης πλέον δεν χρειάζετε να κάνετε iwpriv athX mode X για να συνδεθείτε, θα συνδεθεί αυτόματα σε όποιο AP πιάσει πρώτα και κατόπιν σε όποιο AP έχει καλύτερο σήμα.

----------


## acoul

λέω να κάνω μια δοκιμή με αυτό σε openwrt/mips ... κάλλιο αργά ...

----------


## Mick Flemm

Δες το Readme  ::

----------


## Mick Flemm

```
Just in case you want to experiment, i have a working port of ar5k
that works on madwifi-old before the BSD - HEAD merge...

well i'm no good programmer (yet), i did what i could (i'm sure those
define macros are nasty for most people :P) and hope that helps...

you can git clone from the following link

rsync://rsync.ath-driver.org/gnumonks_users/mb/openhal.git

I'm working with the following madwifi revision...
svn checkout http://svn.madwifi.org/branches/madwifi-old -r 1142 madwifi

Don't forget to remove the ending ) in line 175 at
net80211/ieee80211_radiotap.h ;-)

Also you'll need to do some modifications to make it work with newer
kernel versions (MODULE_PARM stuff in if_ath.c)...

diff -Naurp madwifi-openhal/ath/if_ath.c madwifi-openhal-fixed/ath/if_ath.c
--- madwifi-openhal/ath/if_ath.c        2005-06-24 06:41:22.000000000 -0400
+++ madwifi-openhal-fixed/ath/if_ath.c  2006-08-04 14:49:38.000000000 -0400
@@ -245,13 +245,20 @@ enum {
 #endif

 static int countrycode = -1;
-MODULE_PARM(countrycode, "i");
-MODULE_PARM_DESC(countrycode, "Override default country code");
 static int outdoor = -1;
-MODULE_PARM(outdoor, "i");
-MODULE_PARM_DESC(outdoor, "Enable/disable outdoor use");
 static int xchanmode = -1;
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,52))
+MODULE_PARM(countrycode, "i");
+MODULE_PARM(outdoor, "i");
 MODULE_PARM(xchanmode, "i");
+#else
+#include <linux/moduleparam.h>
+module_param(countrycode, int, 0);
+module_param(outdoor, int, 0);
+module_param(xchanmode, int, 0);
+#endif
+MODULE_PARM_DESC(countrycode, "Override default country code");
+MODULE_PARM_DESC(outdoor, "Enable/disable outdoor use");
 MODULE_PARM_DESC(xchanmode, "Enable/disable extended channel mode");

 int

See README for more details


I haven't looked much the MadWiFi code since then, perhaps you can
help in making ar5k work with newer madwifi versions + improve it's
functionality to help both linux and OpenBSD.

(The name OpenHAL came from John Bicket's initial port)


Happy coding ;-)
Nick
```



```
There have been several suggestions already, such as switching to the OpenHAL/ath-driver.org HAL alternatives, or at least offering the user to choose between these alternatives. Also, it is possible that the FCC requirements are not as tight as Atheros interpreted them. It's worth investigating if Atheros could be allowed to open the HAL source without denying their customer's FCC approval.
```

Όπως βλέπεις προχοράμε, θέλει πολύ δουλειά ακόμα + ο σκοπός είναι να δουλέψουμε και με το DaWiFi και να μπει επιτέλους ένας free driver στον πυρήνα...

----------


## Mick Flemm

It's there...

http://svn.madwifi.org/branches/dadwifi-openhal/
http://svn.madwifi.org/branches/dadwifi ... hal/README

Το πράγμα προχωράει !!!  ::

----------


## Mick Flemm

Από σήμερα είμαι κι επίσημα developer στον MadWiFi και τον Dadwifi  :: . Αν βρείτε κάποιο bug ή γενικότερα κάποιο πρόβλημμα κλπ, θα χαρώ να βοηθήσω και να κάνω και κάποιο commit εφόσον χρειαστεί.

http://madwifi.org/wiki/TeamMembers

Βασικά έχω access στο repository, μπορώ να αναλάβω tickets κλπ αλλά κυρίως ασχολούμαι με το integration του openhal με τον Dadwifi, έτσι ώστε να έχουμε μια πλήρως free λύση που να μπορεί να μπει στον πυρήνα.

Έκανα ήδη μερικά commit κι ελπίζω στο μέλλον να μπορώ να βοηθήσω για κάτι καλύτερο...

http://madwifi.org/log/branches

Επίσης από σήμερα το βράδυ δουλεύουν τα transmit queues (ήταν ένα bug στην setup_tx_queue) κι ελπίζω να μπορούμε να έχουμε και κάποια σοβαρή διαφοροποίηση (802.11e). Το bug το έστειλα και στον Reyk και το διόρθωσε κι εκείνος στο OpenBSD...



```
before:

[ 1409.937688] ath0: Use hw queue 0 for WME_AC_BE traffic
[ 1409.937764] ath0: Use hw queue 0 for WME_AC_BK traffic
[ 1409.937769] ath0: Use hw queue 0 for WME_AC_VI traffic
[ 1409.937772] ath0: Use hw queue 0 for WME_AC_VO traffic
[ 1409.937776] ath0: Use hw queue 9 for CAB traffic
[ 1409.937781] ath0: Use hw queue 8 for beacons

after:

[ 3280.938207] ath0: Use hw queue 1 for WME_AC_BE traffic
[ 3280.938210] ath0: Use hw queue 0 for WME_AC_BK traffic
[ 3280.938213] ath0: Use hw queue 2 for WME_AC_VI traffic
[ 3280.938217] ath0: Use hw queue 3 for WME_AC_VO traffic
[ 3280.938220] ath0: Use hw queue 9 for CAB traffic
[ 3280.938223] ath0: Use hw queue 8 for beacons
```

http://www.openbsd.org/cgi-bin/cvswe...-cvsweb-markup

Για όσους από εσάς θέλουν να δοκιμάσουν τον συνδυασμό MadWiFi+Openhal μπορείτε να κατεβάσετε ένα έτοιμο & pachαρισμένο για να δουλεύει με τους τελευταίους πυρήνες (αγνοήστε τα warnings) κώδικα, εδω ->

http://147.52.78.39/madwifi-free.tar.bz2

Τι δεν δουλεύει:

α) Το txpower (βασικά δεν γίνεται σωστά initialize ο ενισχυτής και ένα κομμάτι του RF με αποτέλεσμα το SNR να παίζει αρκετά -ότι βγάζει ο synthesizer)

β) Τα κανάλια σε g έχουν γίνει disable γιατί υπήρχε πρόβλημα με το μαρκάρισμα τους.


Τι δουλεύει:

Όλα τα υπόλοιπα, iwconfig κλπ -έκανα update τον κώδικα για να δουλεύει με το καινούριο API, μάλλον δεν δουλεύει το scan με το iwlist (τουλάχιστον με τον 2.6.19 όπου έφυγε το support για τις παλιές εκδόσεις wireless extensions) αλλά το kismet παίζει μια χαρά (οπότε την δουλειά σας μπορείτε να την κάνετε). Στο kismet βάλτε το madwifi_ab target κι αν θέλετε να έχετε κι όλα τα κανάλια (έχετε με το kismet το ultimate scaner  :: ) δείτε το README του openhal.

ΚΑΙ ΦΥΣΙΚΑ ΕΙΝΑΙ FREEE !!!  ::

----------


## CyberFreak

Μπράβο Νίκο !!!!

Είσαι Πολύ Μπροστά !!!

----------


## sotirisk

Μπράβο Νίκο  :: 
Άντε λύσε κι αυτό με το radio να το βλάλουμε σε productive ( :: ) καταστάσεις να δούμε πώς πάει!

----------


## Mick Flemm

Ευχαριστώ πολύ παιδιά  :: , όποιος έχει ppc με linuxάκι και μια atheros επάνω (κατά προτίμηση 5212) pm me, έχω μια ιδέα για το txpower αλλά πρέπει να βάλω κάποιον με ppc να κάνει λίγο reverse engineering...

----------

