# Hardware > Hardware Reviews >  Netgear MA311 & HostAP driver

## Acinonyx

Η NetGear MA311 είναι μία wifi 802.11b κάρτα PCI με το Prism2.5 chipset της Intersil. Αποτελείται από μία miniPCI τύπου 3 η οποία είναι βασισμένη στο σχέδιο αναφοράς ISL37400M http://www.intersil.com/data/fn/fn8031.pdf και από έναν ενσωματωμένο miniPCI-to-PCI adapter (κάτι σαν αυτό -> http://www.getcatalyst.com/board_pic/minipci3.jpg). 

Παρόλο που η συσκευασία δείχνει ότι απαιτεί PCI v2.2 compliant μητρική, έχει αποδειχτεί ότι δουλεύει ακόμη και σε μητρικές χωρίς αυτή την ιδιότητα. Επίσης έχει δοκιμαστεί και σε μητρικές χωρίς την τάση των 3.3V στην PCI που παρόλο που είναι απαραίτητη στο πρότυπο PCI2.2 είναι προαιρετική στο 2.1. 

Μοναδικό μειονέκτημα είναι η έλειψη PCI bus mastering ή τουλάχιστον η έλειψη υποστηριξης της λειτουργίας αυτής από την Intersil. Παρόλαυτα, η χρήση του επεξεργαστή δεν είναι ιδιαίτερα μεγάλη. Συγκεκριμένα με δοκιμή σε επεξεργαστή Pentium 166MMX με 2 κάρτες με hostap σε μέγιστο throughput η χρήση της CPU δεν ξεπέρασε το 18%. 

Στην κάρτα υπάρχουν 2 firmware - το primary F/W που είναι υπεύθυνο για την λειτουργία σε master mode (AP) και το station F/W που είναι υπεύθυνο για την λειτουργία σε άλλα modes. Τα υπάρχοντα firmware στην flash μνήμη της κάρτας είναι:
Primary: id=0x15 v1.0.7
Station: id=0x1f v1.3.6

Η κάρτα υποστηρίζεται απόλυτα σε linux από το hostap αφού είναι βασισμένη σε Prism chip. Παρόλαυτά η υποστήριξη για χειροκίνητη ρύθμιση ισχύος έχει αφαιρεθεί από τις τελευταίες εκδόσεις του hostap. 

Το παρακάτω patch επαναφέρει την χειροκίνητη ρύθμιση ισχύος και διορθώνει το πρόβλημα όπου χανόντουσαν οι ρυθμίσεις ισχύος μετά από disconnect ή αλλαγή mode. Επίσης αντιστοιχεί πραγματικές τιμές σε dbm που δίνοντε από τον χρήστη με τιμές του καταχωρητή CR31 για ρύθμιση ισχύος (hostap_diag -a <interface> | grep CR31). 

Οι τιμές βρέθηκαν πειραματικά μετά από δοκιμές σε 2 διαφορετικές netgear και με λήψη από μία ίδια netgear και ένα cisco AP. Η διαδικασία ήταν η εξής: Για κάθε τιμή του καταχωρητη CR31 έγιναν 3 μετρήσεις με την netgear και μια μέτρηση με το cisco και καταγράφηκε ο μέσος όρος τους. Το πακέτο των 4ων μετρήσεων επαναληφθηκε άλλη μία φορά με διαφορετικές κεραίες και σε διαφορετική απόσταση κάνοντας ένα σύνολο 8 μετρήσεων για κάθε τιμή του CR31. Μετά βρέθηκαν οι σχετικές τιμές με μέγιστο τα 18dbm που είναι η μέγιστη ισχύς που δίνει η κάρτα (hostap_diag -a <interface> | grep FCBE). Οι μετρήσεις βρίσκονται στο παρακάτω έγγραφο excel. Ο καταχωρητής CR58 (hostap_diag -a <interface> | grep CR5 ::  μετράει την πραγματική ισχύ που εκπέμπει η κάρτα ανά πάσα στιγμή ανεξάρτητα με την ρυθμισή της. Είναι κάτι σαν βαττόμετρο. Έχει όμως το μειονέκτημα να τερματίζει από τα 8 dbm και κάτω. Ίσως υπάρχει τρόπος να επεκταθεί το εύρoς του μέσω μετατροπής στο F/W.

Το patch εφαρμόζεται με την εντολή patch -p1 < <path>/hostap-driver-0.1.3-powerfix-0.3.patch ενώ βρισκόμαστε στο directory που κάναμε untar το hostap. Το patch μπορεί να εφαρμοστεί μόνο στην έκδοση 0.1.3. Για να ενεργοποιηθεί η μετάφραση των τιμών από τον καταχωρητή σε dbm για τις κάρτες Netgear πρέπει πριν γίνει compile ο hostap να φύγουν τα σχόλια από το /* #define ISL37400M_DBM_CONVERSION */ στο αρχείο hostap_config.h (directory /drivers/modules). Αν η κάρτα δεν είναι Netgear τότε βγάλτε τα σχόλια από εδώ -> /* #define BYTE_DBM_CONVERSION */ για να έχετε μία ευκολότερη ρύθμιση με 0 την ελάχιστη και 255 τη μέγιστη ισχύ. Το hostap και το patch δείχνει να δουλεύει με το υπάρχον F/W της κάρτας (1.0.7 και 1.3.6). Μπορώ να εγγυηθώ όμως καλή λειτουργία μόνο με το 1.7.4 και το 1.1.4 φορτωμένο στην volatile μνήμη της κάρτας (RAM) μιάς και αυτό έχει δοκιμαστεί από μένα για αρκετό καιρό χωρίς κανένα πρόβλημα. 

Για να φορτώσετε τα F/W στην RAM πρέπει να βγάλετε τα σχόλια από το /* #define PRISM2_DOWNLOAD_SUPPORT */. Βεβαιωθείτε οτι έχετε την σωστή έκδοση υλικού με την εντολή hostap_diag <interface>. Πρέπει να δίνει NICID: id=0x8013 v1.0.0 Έπειτα πρέπει να δώσετε την εντολή prism2_srec -g <interface> <path>/ak010104.hex για το primary firmware και ύστερα prism2_srec -r <interface> <path>/rf010704.hex για το station. Τα F/W δίνονται παρακάτω.. ΠΡΟΣΟΧΗ: Τα παρακάτω F/W προορίζονται μόνο για φόρτωμα στην RAM! Μην προσπαθήσετε να flashαρετε την κάρτα με αυτά γιατί θα την καταστρέψετε... Το φόρτωμα στην RAM παρέχει την ασφάλεια ότι δεν πρόκειται να καταστραφεί η κάρτα κατά την διάρκεια ενός flashαρίσματος. Με ένα reset (reboot) επανέρχεται στο αρχικό της F/W...

EDIT: Ta patches αφαιρεθηκαν από εδω. Δείτε εδώ για το patch του hostap.

----------


## xaotikos

*Μπράβο για ακόμα μια φορά!!! Excellent!*

----------


## jabarlee

ΠΡΟΣΚΥΝΩ!

Αυτό θα το βάλεις και στο moin να υπάρχει; Αλλιώς το κάνω εγώ...

Μια ερώτηση, που φαντάζομαι έχει και άλλους αποδέκτες: Οι ρυθμίσεις αυτές είναι συμβατές με το hostaAP που υπάρχει στα πακέτα που ετοίμασε ο achille & paravoid? Όταν μπαίνει το rf010704_14ch_prism2.5.hex firmware πάνω σε αυτά;

----------


## Achille

Όχι, δεν είναι συμβατές. Το patch είναι φτιαγμένο από τον Acinonyx και ΔΕΝ είναι το psrrr. Αναμείνατε στο ακουστικό σας για πακέτα hostap με το νέο patch.

Υπάρχει πρόβλημα πάντως με τις τιμές στη ρύθμιση ισχύος.

Πρέπει ο driver να έχει run-time option για το αν τις θέλουμε σε dBm ή σε κλίμακα 0-255, και μάλιστα για κάθε interface ξεχωριστά. Ιδανικό θα ήταν να έχει table με τα IDs των καρτών που χρησιμοποιούμε (ουσιαστικά 3 μοντέλα: Netgear 311, Engenius 2011, Senao 2511) και να γίνουν μετρήσεις και για τα υπόλοιπα μοντέλα, ώστε να μπορούν όλοι να δίνουν τα νούμερα σε dBm και να είναι σίγουροι ότι εκπέμπουν όσο πρέπει.

Ο dti έχει μια Senao η οποία θα αντικατασταθεί σύντομα από εξωτερική συσκευή και φαντάζομαι θα μπορούσε να τη διαθέσει στον Acinonyx για μετρήσεις, και ο σύλλογος διαθέτει μια Engenius 2011 η οποία μπορεί να διατεθεί επίσης.

Θα πρότεινα ο Acinonyx να δημιουργήσει μια ομάδα εργασίας πάνω στο hostap και να ζητήσει τη βοήθεια όσων μπορούν να συνεισφέρουν σε coding ή στις μετρήσεις.

----------


## paravoid

Μπράβο και από μένα αν και εγώ στα έχω χιλιοπεί στο irc  :: 
Εκείνο το mail στη mailing list του hostap ακόμα να το στείλεις;




> Στην κάρτα υπάρχουν 2 firmware - το primary F/W που είναι υπεύθυνο για την λειτουργία σε master mode (AP) και το station F/W που είναι υπεύθυνο για την λειτουργία σε άλλα modes. Τα υπάρχοντα firmware στην flash μνήμη της κάρτας είναι:
> Primary: id=0x15 v1.0.7
> Station: id=0x1f v1.3.6


Εδώ νομίζω πως κάνεις λάθος πάντως. Για master mode νομίζω πως χρησιμοποιείται το tertiary firmware. To HostAP όμως δεν χρησιμοποιεί αυτό αφού η δουλειά του είναι να παίρνει και να στέλνει raw 802.11 frames και να συμπεριφέρεται αυτό ως AP, όχι το firmware.
(_με κάθε επιφύλαξη_)

----------


## dti

Συγχαρητήρια Acinonix! 
Οταν περάσεις να παραλάβεις το καλώδιο που έχεις παραγγείλει, θα σου δώσω και τη senao για να την περιποιηθείς.  ::

----------


## paravoid

Α κάνω attach το firmware 1.8.0 (ram + station).
Προσοχή στη χρήση του, συνιστώ την ram version.
(Η έκδοση αυτή είναι με 11 κανάλια, Αχιλλέα κάντην για 14  :: )




> Components after download:
> NICID: 0x8013 v1.0.0
> PRIID: 0x0015 v1.1.1
> STAID: 0x001f v1.8.0

----------


## apoikos

Μπράβο και από μένα! Μόλις πέρασα το patchαρισμένο 0.1.3 και τα firmwares και δοκιμάζω  ::

----------


## andreas

Γιαυτο ειχε πεσε το λινκ  :Stick Out Tongue:

----------


## apoikos

Μη μου πεις ότι ήσουν τόσο τυχερός και πέτυχες το μισό λεπτό που ήθελε για να κάνει reboot ο router  ::

----------


## andreas

Καποια στιγμη επεσε και το ΑΜΔΑ και ολα..... (2-3 λεπτα)
Δεν ξερω αν ηταν....

----------


## InDio

Τελικά παιδιά έγινε η έκδοση για 14 κανάλια; Την περιμένω για να μην χρειαστεί να την ξαναβάλω όταν την βγάλει ο Αχιλλέας.

Να ρωτήσω κάποια πράγματα μιας και έχω μείνει λίγο πίσω στο θέμα του hostap tweaking λόγω άλλων προβλημάτων μαζί του... Όταν κάνεις αυτή τη φάση με τα firmware στη RAM, σε ποιές περιπτώσεις επανέρχεται η κάρτα στο flashαρισμένο της firm, δηλαδή χάνεις αυτά που έκανες; Αφού το κάνεις μια φορά, μετά πως γίνεται όταν ανεβαίνει το μηχάνημα από reset; Πρέπει να το ξαναβάζεις με κάποιο script;...μάλλον δεν έχω πιάσει κάτι.

Γενικώς επειδή παρατήρω ότι οι κάρτες μου βαράνε συνεχώς reset κλπ, το κατέβασμα του firmware σε RAM μου φαίνεται λιγο ασταθές.....Ίσως φταίει ότι έχω ακόμη hostap 0.0.4 - flash firm 1.1.7 βέβαια  ::

----------


## Acinonyx

Χαίρομαι που σας άρεσε το review..  :: 




> Εδώ νομίζω πως κάνεις λάθος πάντως. Για master mode νομίζω πως χρησιμοποιείται το tertiary firmware. To HostAP όμως δεν χρησιμοποιεί αυτό αφού η δουλειά του είναι να παίρνει και να στέλνει raw 802.11 frames και να συμπεριφέρεται αυτό ως AP, όχι το firmware. 
> (με κάθε επιφύλαξη)


Έχεις δίκιο μάλλον. Το primary παρέχει την δυνατότητα να επικοινωνεί το hostap με την κάρτα. Το station να λειτουργεί στα διάφορα modes... Το σημαντικό είναι ότι με το primary μόνο φορωμένο (γίνεται και αυτό!) μπορείς να την λειτουργήσεις μόνο σε master (AP) mode με το hostap.

Κάτι πολύ σημαντικό που ξέχασα, το οποίο μπορεί όμως κάποιος να το καταλάβει ρίχνοντας μιά ματία στο patch, είναι ότι *η ελάχιστη ρύθμιση εκπεμπόμενης ισχύος είναι τα -12dbm*.

Όλα τα παραπάνω χαρακτηριστικά της κάρτας σε συνδιασμό και με την σχετικά χαμηλή της τιμή την κάνουν μία από της καλύτερες αγορές για 802.11b (για μένα την καλύτερη  ::  ). Αυτό βέβαια το οφείλει στο πλήρως παραμετροποιήσιμο Prism2.5 chip της.




> Γενικώς επειδή παρατήρω ότι οι κάρτες μου βαράνε συνεχώς reset κλπ, το κατέβασμα του firmware σε RAM μου φαίνεται λιγο ασταθές.....Ίσως φταίει ότι έχω ακόμη hostap 0.0.4 - flash firm 1.1.7 βέβαια


Από ότι είδα στο hostap, η κάρτα γίνεται αυτόματα reset ΜΟΝΟ αν προκληθεί κάποιο fatal error. Χωρίς λόγο αυτό δεν γίνεται. Είχα διαβάσει στην mailing list ότι κάποιο παλιότερο F/W (1.4.2???)είχε κάποιο πρόβλημα και δεν μπορούσε να λειτουργήσει σε AP mode όπως και παλιότερα F/W από το 1.4.Χ έχουν πρόβλημα με το wep encryption. Ισως αυτά να προκαλούν κάποιο πρόβλημα στον driver και να τον αναγκάζουν να κάνει reset την κάρτα. Το πιό πιθανό πάντως είναι να έχεις βάλει to psrrr patch το οποίο έχει την ιδιαιτερότητα να κάνει συχνά reset την κάρτα. Συγκεκριμένα, κάνει reset κάθε φορά που αλλάζεις μία ρύθμιση txpower, rate ή sensitivity κάθε φορά που γίνεται associated και κάθε φορά που αλάζεις mode (πρέπει να μου έχει ξεφύγει σίγουρα κάποια ακόμη περίπτωση στην οποία κάνει reset αλλά τέλος πάντων!). Απλά η ερμηνεία των παρατηρήσεων του φίλου Jirka ήταν λάθος γιατί δεν είχε υπόψιν του ότι οι καταχωρητές ρύθμισης ισχύος ανανεώνονται μόνο τη στιγμή που γίνεται εκπομπή και όχι τη στιγμή που κάνεις την ρύθμιση με το iwconfig..  ::  Μας τάραξε στα reset ο άτιμος!  :: 




> Θα πρότεινα ο Acinonyx να δημιουργήσει μια ομάδα εργασίας πάνω στο hostap και να ζητήσει τη βοήθεια όσων μπορούν να συνεισφέρουν σε coding ή στις μετρήσεις.


Αν είχα χρόνο θα το έκανα Αχιλλέα. Είμαι σε φάση πνιξίματος τώρα.

Φαίδωνα δεν το έστειλα στην mailing list. Κάντο εσύ αν θες γιατί δεν προλαβαίνω ούτε να ...  :: 




> Πρέπει ο driver να έχει run-time option για το αν τις θέλουμε σε dBm ή σε κλίμακα 0-255, και μάλιστα για κάθε interface ξεχωριστά. Ιδανικό θα ήταν να έχει table με τα IDs των καρτών που χρησιμοποιούμε (ουσιαστικά 3 μοντέλα: Netgear 311, Engenius 2011, Senao 2511) και να γίνουν μετρήσεις και για τα υπόλοιπα μοντέλα, ώστε να μπορούν όλοι να δίνουν τα νούμερα σε dBm και να είναι σίγουροι ότι εκπέμπουν όσο πρέπει.


Απ'ότι είδα η αυτόματη αναγνώριση της κάρτας είναι εφικτή. hostap_diag -a wlan0 | grep FD24 - δείχνει το product name της κάρτας. Και η μετατροπή σε mW γίνεται. Όχι από μένα πάντως γιατί χρειάζεται γερή επέμβαση στον driver...  ::

----------


## InDio

Πράγματι έχω το psssr patch για το 0.0.4 hostAP, οπότε δικαιολογούνται και τα συνεχή reset. Συγγνώμη βεβαίως οου ξέχασα να πω τι καλή δουλειά που έκανες Acinonyx!  ::  

Τελικά όμως δεν κατάλαβα πως φορτώνεται αρχικά το firmware στην RAM της κάρτας! Δηλαδή όταν ανεβαίνει το σύστημα με τα intrerfaces του, τι γίνεται με το firmware; Πρέπει να εκτελεστεί η prism2_srec εντολή για να γίνει σωστά η δουλειά;

----------


## apoikos

Εφ' όσον τα firmwares που ανεβάζουμε γράφονται στη RAM της κάρτας, τότε σε κάθε boot επιστρέφει στο αρχικό firmware και πρέπει να τρέξεις (π.χ. στο rc.local) την prism2_srec για να φορτώσεις τα καινούργια.

Δε θα χρειαζόταν να τα φορτώσεις με το χέρι μόνο αν flashαρες την κάρτα, περνούσες δηλαδή τα firmwares στην ΕEPROM (ή ότι άλλο έχει). Κάτι τέτοιο όμως ενέχει τον κίνδυνο μίας μη-αναστρέψιμης βλάβης, την οποία δεν υπάρχει λόγος να διακινδυνεύσεις.

----------


## Acinonyx

Δοκιμάζοντας ένα script ώστε να φορτώνω και να ρυθμίζω αυτόματα τα if μου ανακάλυψα ότι η ρύθμιση ισχύος δεν άλλαζε στις Netgear σύμφωνα με το script. Παρόλαυτα όταν η ρύθμιση γινόταν χειροκίνητα όλα δούλευαν ρολόι. Μετά από πολλές δοκιμές βρήκα τι έφταιγε. Μετά την αλαγή F/W χρειαζόταν κάποιος χρόνος για να κάνει η κάρτα initialization και να δουλεύει σωστά. Το πρόβλημα λύθηκε όταν πρόσθεσα μία καθυστέρηση στο script μεταξύ της φόρτωσης του F/W και την ρύθμιση με το iwconfig. 

Αν φτιάξετε κάποιο script που θα φορτώνει τα F/W και μετά θα ρυθμίζει τις παραμέτρους των καρτων μην ξεχάσετε να προσθέσετε μετά την φόρτωση του F/W μια εντολή π.χ. sleep 5 που θα προκαλεί κάποια παύση στην ροή του script μέχρι να γίνουν οι κάρτες initialized...  ::

----------


## Acinonyx

Με το που πήρα την netgear MA311*NAR* στα χέρια μου, άρχισα τις δοκιμές. Οι ευρωπαικές κάρτες με τις αμερικάνικες δεν έχουν καμία διαφορά σε επίπεδο υλικού αλλά και λογισμικού. Οι μετρήσεις εκπομπης κ λήψης είναι ίδιες. Η μόνη διαφορά τους είναι σε μερικούς καταχωρητές στο PDR (production data area). Αυτό σημαίνει ότο μπορεί να χρησιμοποιηθεί το ίδιο patch και για τις NAR κάρτες.  ::

----------


## jimis

Τελικά το 1.8.0 firmware για να δουλεύει με 14 κανάλια το ετοίμασε κανείς;

----------


## pxatzis

> Αν φτιάξετε κάποιο script που θα φορτώνει τα F/W και μετά θα ρυθμίζει τις παραμέτρους των καρτων μην ξεχάσετε να προσθέσετε μετά την φόρτωση του F/W μια εντολή π.χ. sleep 5 που θα προκαλεί κάποια παύση στην ροή του script μέχρι να γίνουν οι κάρτες initialized...


OXI !!! τώρα το είδα ..... [email protected]~#$#[email protected]@! και τραβάω τις τρίχες μου και εγώ δεν ξέρω πόσο

----------


## Acinonyx

Παρατηρήθηκε ότι κατα τη διάρκεια του κατεβάσματος F/W στην RAM υπάρχει μεγάλη πιθανότητα να κρεμάσει το σύστημα αν 2 κάρτες μοιράζονται το ίδιο IRQ. Στην συγκεκριμένη περίπτωση μοιράζονταν το IRQ 12 και κατέβαζα το primary 1.1.4 με φορτωμένο το hostap 0.1.3. Υπάρχει περίπτωση αυτό να είναι και bug στον πυρήνα 2.4.22 αν δεν είναι στο hostap.

----------


## Nickibanez

Συγγνώμη αν θα σας κουράσω με τις ερωτήσεις μου αλλά είμαι νέος στο awmn και προσπαθώ να στήσω τον κόμβο #1673-νέα κηφισιά.
Hardware: 2 NetGear MA311, Andrew 24db

1. ακολούθησα τον οδηγό του Mick Flemm
2. διαφοροποιήθηκα εγκαθιστώντας τον πυρήνα 2.4.25-awmn και τα πακέτα από http://www.awmn.gr/pub/linux/apt/pool/stable/main/
3. δημιούργησα script για να φορτώνεται κατά την εκκίνηση τo firmware:
PRIID: id=0x0015 v1.1.4
STAID: id=0x001f v1.7.4
4. έβαλα sleep 10 μετά το φόρτωμα του firmware
5. edit το /etc/network/interfaces για να φορτώνονται οι ρυθμίσεις της κάρτας. Σε πρώτη φάση set-αρω μόνο την μία κάρτα για ενδεικτικό scan της περιοχής.
Όταν τελειώνει το boot, με iwconfig wlan0 παίρνω:



> wlan0 IEEE 802.11b ESSID:"awmn-1673" 
> Mode:Ad-Hoc Frequency:2.462GHz Cell: 02:09:C8:4A:9B:34 
> Bit Rate:1Mb/s Tx-Power:0 dBm Sensitivity=1/3 
> Retry limit:8 RTS thrff Fragment thrff
> Encryption keyff
> Power Managementff
> Link Quality:0/92 Signal level:-100 dBm Noise level:-100 dBm
> Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
> Tx excessive retries:36 Invalid misc:5 Missed beacon:0


Το ερώτημά μου είναι: στο /interfaces βάζω *wireless_txpower 0* ή *wireless_txpower 56* που αντιστοιχεί σε 0dBm σύμφωνα με το excel που δημοσίευσε ο Acinonyx.

Ευχαριστώ πολύ και συγγνώμη αν σας κούρασα.

----------


## Acinonyx

Αν δεν έχεις βάλει το patch μου που πιθανότατα δεν το έχεις κάνει τότε δίνεις 56.

Για να βεβαιωθείς ότι πραγματικά δουλεύει σε αυτή τη ρύθμιση δώσε:
hostap_diag -a wlan0 | grep -i "Manual TX"
και πρέπει να σου δώσει την τιμή που έβαλες.  :: 

Υ.Γ. Σε χαίρομαι γιατί φαίνεται ότι έχεις ξεκοκκαλίσει το forum πριν κάνεις οτιδήποτε. Μπράβο! Μακάρι όλοι να κινούνταν έτσι.

----------


## Nickibanez

Με ρύθμιση = wireless_txpower 0 παίρνω



> # hostap_diag -a wlan0 | grep -i "Manual TX"
> CR31 (Manual TX Power Control): 0


Με ρύθμιση = wireless_txpower 56 παίρνω



> # hostap_diag -a wlan0 | grep -i "Manual TX"
> CR31 (Manual TX Power Control): 56


Οπότε, αν αντιλαμβάνομαι σωστά, το Tx-Power:ΧΧΧ dBm που παίρνω όταν δίνω iwconfig wlan0 δεν εμφανίζει *dBm* αλλά το *CR31*.

Ευχαριστώ πολύ για τη βοήθεια.




> Υ.Γ. Σε χαίρομαι γιατί φαίνεται ότι έχεις ξεκοκκαλίσει το forum πριν κάνεις οτιδήποτε. Μπράβο! Μακάρι όλοι να κινούνταν έτσι.


Μήνες διαβάζω τώρα για νά έρθει η ώρα να κάνω το πρώτο μου post και να μην πω μ@@@@κίες

----------


## Acinonyx

Έφτιαξα μία νέα έκδοση του patch που περιέχει μία επιπλέον επιλογή στο config για όσους δεν θέλουν καμία μετατροπή για την ρύθμιση ισχύος δηλάδη να δίνουν 127-0 και 255-128. Για να ενεργοποιήσετε την ρύθμιση αυτή περνάτε το patch με το γνωστό τρόπο, κάνετε edit το hostap_config.h στο directory drivers/modules και αφαιρείτε τα σχόλια απο το #define NO_CONVERSION 

* No conversion at all. Setting is passed to the register as it is
* given. (increasing 127-0, 255-12 :: 
*/
/* #define NO_CONVERSION */

Compile κλπ. κλπ. και είστε έτοιμοι.

EDIT: Ta patches αφαιρεθηκαν από εδω. Δείτε εδώ για το patch του hostap.

----------


## Acinonyx

Με αφορμή το post του apoikos http://www.awmn/forum/viewtopic.php?t=7857 για το πρόβλημα των ενδείξεων του σήματος των πελατών όταν δουλεύουμε την κάρτα σε Master Mode ψαχούλεψα λίγο τον κώδικα για να βρω τι το προκαλεί. Παρατήρησα ότι ενώ οι μετρήσεις με το iwlist <if> scan είναι εντελώς λάθος, οι ενδείξεις στο /proc/net/hostap/<if>/<client_mac> είναι σωστές. Παραθέτω τις ενδείξεις:



```
users=0
aid=1
flags=0x0043 AUTH ASSOC POLL
capability=0x41
listen_interval=100
supported_rates=1Mbps 2Mbps 5.5Mbps 11Mbps 22Mbps 
jiffies=2115357
last_auth=2112749
last_assoc=2112749
last_rx=2112749
last_tx=2112637
rx_packets=0
tx_packets=70
rx_bytes=0
tx_bytes=2520
buffer_count=0
last_rx: silence=168 signal=174 rate=20 tx_rate=110
tx[1M]=0
tx[2M]=0
tx[5.5M]=0
tx[11M]=70
rx[1M]=0
rx[2M]=140
rx[5.5M]=0
rx[11M]=0
```

Υπενθυμίζω ότι οι τιμές σε dbm του silence και signal είναι = *-(συμπλήρωμα ως προς 2 της τιμής) γιατί θεωρείτε ως 8bit προσημασμένος*. Αυτό σημαίνει ότι για να βρούμε την πραγματική τιμή σε dbm αφαιρούμε το 256 από την τιμή του silence ή του signal. Το ίδιο ισχύει και για διάφορα προγράμματα που διαβάζουν αυτές τις ενδείξεις όπως το *kismet*.

Το bug στο hostap είναι ότι *μετατρέπει εσφαλμένα 2 φορές την τιμή του RSSI σε dBm*. Συγκεκριμένα για να κάνει update το /proc/net/hostap/<if>/<client_mac> χρησιμοποιεί την διαδικασία *HFA384X_RSSI_LEVEL_TO_dBm* ή οποία αφαίρει το 100 από την τιμή που δίνει η κάρτα για το RSSI. Αυτό είναι σωστό. Παρολαυτά, όταν καλείται η διαδικασία για να περάσει τα δεδομένα στα wireless tools, αντί να δίνεται η τιμή σε dbm όπως έχει γίνει πριν με την HFA384X_RSSI_LEVEL_TO_dBm, γίνεται λανθασμένα μία επιπλέον μετατροπή με την διαδικασία *HFA384X_LEVEL_TO_dBm* ή οποία θεωρεί οτι η τιμή signal και silence είναι στο εύρος 27-154 με μεγιστό το 154 και ελάχιστο το 27. Αφαιρόντας την επιπλέον μετατροπή και διορθώνοντας λίγο τον αλγόριθμο υπολογισμού του signal quality το πρόβλημα λύθηκε.

Παρακάτω θα βρείτε το patch για την διόρθωση του bug. Αφού το κατεβάσετε και το κάνετε untar, το εφαρμόζεται στον πηγαίο κώδικα με την εντολή *patch -p1 < hostap-driver-0.1.3-apscanfix-0.1.patch* αφού πριν έχετε μπει στο directory του hostap-driver-0.1.3. Ύστερα κάνετε κανονικά compile με make pci και make install_pci. Το patch δουλεύει μόνο για την έκδοση 0.1.3  :: 

EDIT: Ta patches αφαιρεθηκαν από εδω. Δείτε εδώ για το patch του hostap.

----------


## Mick Flemm

Έχεις δώσει ρέστα ρε Acinonyx, αύριο στα καπάκια έλα από εδώ να φτιάξουμε τον kernel...

----------


## paravoid

Acinonyx,
Και τι μας το λες;  ::  [email protected]
ΣΤΕΙΛΤΟ ΤΩΡΑ γιατί αλλιώς θα πλακωθούμε  ::

----------


## Acinonyx

http://lists.shmoo.com/pipermail/hos...ch/005957.html

Θα το στείλω γιατί ακόμη δεν έχουν βρει άκρη με αυτό και ριχνουν το φταίξιμο στο F/W.  ::

----------


## paravoid

Αν είναι εύκολο, θα ήταν καλό να κάνεις αντίστοιχο patch και για την 0.2.x (η οποία λίαν συντόμως θα είναι η stable).

----------


## paravoid

Ήρθε στη λίστα. Good job  :: 
Για να δούμε τι θα πει ο Jouni.

----------


## nvak

Τί είναι το ''psssr patch για το 0.0.4 hostAP'' και πώς βλέπουμε αν υπάρχει στο debian ?
Εδώ και μία μέρα με έχει τρελάνει στο reset η κάρτα που βλέπει τον bliz. Δεν με πειράζει που κάνει reset αλλά ότι κολλάει ο router μετά απο 5-10 reset. ( έχω δοκιμάσει και άλλη κάρτα )

----------


## nvak

Γνωρίζει κανείς που οφείλονται τα reset των netgear ? 
Δυστυχώς μου συμβαίνει συχνά και μου κολλάει το PC.
κάθε βοήθεια δεκτή

----------


## ysam

Βάλε αυτό του acinonyx..

Μια χαρούλα και πολύ καλή δουλειά.. + σωστές μετρήσεις.. 

-Γιάννης

----------


## Acinonyx

Κρίσιμο νέο patch! Παρατηρήθηκαν μερικές περιπτώσεις όπου όταν ύστερα από μία εντολή iwconfig ρύθμισης της ισχύος σε *master* mode, γινόταν ρύθμιση άλλων συγκεκριμένων παραμέτρων, τότε υπήρχε πιθανότητα να χανόταν η τιμή. Αυτό το patch διορθώνει απόλυτα το πρόβλημα με τη ρύθμιση ισχύος.  ::  Αναβαθμίστε άμεσα.. 

Υπενθυμίζω ότι το patch εφαρμόζεται μόνο σε hostap 0.1.3. 

Επίσης, για δυνατότητα ακριβής ρυθμισης της ισχύος (0 - 255) και ανεβάσματος F/W στη RAM αντιγράψτε το παρακάτω αρχείο στο φάκελο hostap-driver-0.1.3/driver/modules μετά την εφαρμογή του patch και πριν κάνετε compile.


EDIT: Ta patches αφαιρεθηκαν από εδω. Δείτε εδώ για το patch του hostap.

----------


## andreas

Καποιο patch για hostap-driver-0.2.4 υπαρχει?
Δοκιμασα το παραπανω αλλα χωρις αποτελεσμα  ::

----------


## Acinonyx

Ακόμη όχι.. Μόλις βρω χρόνο και διάθεση θα φτιάξω και για το 0.2.4  ::

----------


## Ifaistos

Για όσους ενδιαφέρονται υπάρχει μια σειρά από firmware και docs  ::  για τις prism

http://www.ifaistos.awmn/prism/

----------


## jimis

Ψάχνοντας ανακάλυψα ότι ο hostap-driver-0.2.5 έχει από μόνος του setting για ρύθμιση ισχύος. Αρκεί να γράψουμε δύο γραμμές πριν το τέλος του driver/modules/hostap_config.h:



```
#define RAW_TXPOWER_SETTING
```

Τότε η ελάχιστη ισχύς παρέχεται σαν -43dbm ενώ η μέγιστη σαν 20dbm. Και απ'ότι κατάλαβα η πραγματική ισχύς είναι κοντά στις μετρημένες για τη netgear ma311. 

Δημήτρης

Υ.Γ. Κάπου είχα διαβάσει στο φόρουμ ότι με αλλαγή firmware η κάρτα ενεργοποιεί και τα 14 κανάλια. Ισχύει; Κανα λινκ για το πώς γίνεται;

----------


## Acinonyx

> Ψάχνοντας ανακάλυψα ότι ο hostap-driver-0.2.5 έχει από μόνος του setting για ρύθμιση ισχύος. Αρκεί να γράψουμε δύο γραμμές πριν το τέλος του driver/modules/hostap_config.h:
> 
> 
> 
> ```
> #define RAW_TXPOWER_SETTING
> ```
> 
> Τότε η ελάχιστη ισχύς παρέχεται σαν -43dbm ενώ η μέγιστη σαν 20dbm. Και απ'ότι κατάλαβα η πραγματική ισχύς είναι κοντά στις μετρημένες για τη netgear ma311. 
> ...


Ο κώδικας που αναφέρεις υπάρχει και στο hostap 0.1.3 και προφανώς δεν έχει αφαιρεθεί από το 0.2.x. Το πρόβλημα είναι ότι σε κάθε νέο association ή αλλαγή mode χρειάζεται να γίνει κάποιο software reset στην κάρτα με αποτέλεσμα οι τιμές txpower, rate, και sensitivity, να χάνονται. Το patch διορθώνει το πρόβλημα αυτό αποθηκεύοντας τις τιμές και φορτώνοντας τες μετά από το soft reset της κάρτας.

Επίσης από το λίγο που έχω κοιτάξει η μετατροπή RAWTXPOWER σε dbm δεν υπάρχει καθόλου στο hostap 0.2.x οπότε πρέπει να είναι λάθος οι αριθμοί που δίνεις. Τυπικά χωρίς patch η ρύθμιση ισχύος δουλευει από το μικρότερο στο μεγαλύτερο με τιμές 127-0,255-128. Αυτό σημάινει ότι η ελάχιστη ισχύς ειναι τo 127 και όσο μειώνεις την τιμή αυξάνει η ισχύς. Αυτό όμως μέχρι το μηδέν οπου η αμέσως μεγαλύτερη κλίμακα ισχύος αρχίζει από το 255 και συνέχιζει να αυξάνει όσο μειώνεις την τιμή μέχρι το 128. Το 128 είναι το μέγιστο.

----------


## jimis

> Επίσης από το λίγο που έχω κοιτάξει η μετατροπή RAWTXPOWER σε dbm δεν υπάρχει καθόλου στο hostap 0.2.x οπότε πρέπει να είναι λάθος οι αριθμοί που δίνεις. Τυπικά χωρίς patch η ρύθμιση ισχύος δουλευει από το μικρότερο στο μεγαλύτερο με τιμές 127-0,255-128. Αυτό σημάινει ότι η ελάχιστη ισχύς ειναι τo 127 και όσο μειώνεις την τιμή αυξάνει η ισχύς. Αυτό όμως μέχρι το μηδέν οπου η αμέσως μεγαλύτερη κλίμακα ισχύος αρχίζει από το 255 και συνέχιζει να αυξάνει όσο μειώνεις την τιμή μέχρι το 128. Το 128 είναι το μέγιστο.


Acinonyx, ο κώδικας για μετατροπή απευθείας σε/από dbm υπάρχει στα 0.2.4, 0.2.5 που έχω δει εγώ. Χωρίς το patch σου οι τιμές του CR31 τίθενται στα 127<=>-43dbm και 128<=>20dbm. Οι ενδιάμεσες τιμές είναι σωστές, τουλάχιστον περίπου και όχι ακριβώς, σύμφωνα με τις μετρήσεις που είχες κάνει.

Επίσης για το χάσιμο των τιμών που αναφέρεις δεν το έχω παρατηρήσει με τα τελευταία firmware (1.1.4 και 1.8.0 νομίζω, δεν είμαι καθόλου σίγουρος). Εσύ το έχεις δει; 

Τέλος αν ξέρετε να με παραπέμψετε οπουδήποτε για τροποποίηση firmware για 14 κανάλια θα βοηθήσετε πολύ. 

Δημήτρης

----------


## jimis

Για του λόγου το αληθές: 

/hostap-driver-0.2.5/driver/modules/hostap_ioctl.c line 1417


```
/* Note! This TX power controlling is experimental and should not be used in
 * production use. It just sets raw power register and does not use any kind of
 * feedback information from the measured TX power (CR58). This is now
 * commented out to make sure that it is not used by accident. TX power
 * configuration will be enabled again after proper algorithm using feedback
 * has been implemented. */

#ifdef RAW_TXPOWER_SETTING
/* Map HFA386x's CR31 to and from dBm with some sort of ad hoc mapping..
 * This version assumes following mapping:
 * CR31 is 7-bit value with -64 to +63 range.
 * -64 is mapped into +20dBm and +63 into -43dBm.
 * This is certainly not an exact mapping for every card, but at least
 * increasing dBm value should correspond to increasing TX power.
 */

static int prism2_txpower_hfa386x_to_dBm(u16 val)
{
	signed char tmp;

	if (val > 255)
		val = 255;

	tmp = val;
	tmp >>= 2;

	return -12 - tmp;
}

static u16 prism2_txpower_dBm_to_hfa386x(int val)
{
	signed char tmp;

	if (val > 20)
		return 128;
	else if (val < -43)
		return 127;

	tmp = val;
	tmp = -12 - tmp;
	tmp <<= 2;

	return (unsigned char) tmp;
}
#endif /* RAW_TXPOWER_SETTING */
```

----------


## Acinonyx

Τελικά ο κώδικας είναι ίδιος ακριβώς με το 0.1.3. Μόνο στην λήψη έχει αφαιρεθεί η μετατροπή σε dbm στο 0.2.x. Δεν έχω δοκιμάσει το 1.8.0. Με τι τρόπο επιβεβαιώνεις ότι δεν χάνονται οι τιμές;

----------


## jimis

Δεν ξέρω να σου πω σίγουρα για το χάσιμο των τιμών, αυτό δεν το έχω ψάξει τόσο, απλά δεν έχει τύχει σε μένα. Ανεβάζω και το 1.8.0 secondary firmware γιατί δεν το βρήκα κάπου σο forum. 

Όσο για τις τιμές CR31<=>dbm, η όλη ιστορία ξεκίνησε προσπαθώντας να μεταφέρω το patch σου στον 0.2.5. Τότε είδα ότι βάζοντας το define που είπα δεν χρειαζόταν κάτι τέτοιο μιας που η ισχύς ρυθμιζόταν σωστά.

----------


## Acinonyx

Ναι, το patch είναι για να διατηρούνται οι τιμές. Ο κώδικας υπάρχει και στο 0.1.3 απενεργοποιημένος βέβαια από τη μάνα του. Αν μπορείς δοκίμασε το 1.8.0 αν διατηρεί τις τιμές γιατί για μένα δεν είναι πολύ εύκολο τώρα να πειραματίζομαι.

----------


## Acinonyx

Καλό μήνα και καλό φθινοπωρο..

Θα ήθελα να ενημερωσω ότι:

Τα νέα του κόμβου #1979 θα αναγράφονται πιά στο site http://www.acinonyx.awmn και http://www.acinonyx.ath.cx και όχι στην ενότητα των κόμβων Ax Bx.

Μη μου στείλετε PM. Δεν θα το δω. Στείλτε e-mail στο acinonyx(a)exchange.awmn ή στο acinonyxs(a)yahoo.gr αν θέλετε να επικοινωνήσετε μαζί μου.

Θα προσπαθήσω σιγά σιγά να μεταφέρω τα χρησιμα post αυτου του λογαριασμού κάπου στο site μου http://www.acinonyx.tk .


Λογοπεριορισμός Τελος!  :: 

Καλή συνέχεια και πολλά 73.




> Long way from home
> nowhere to go what made the river so cold
> the sweat of thoughts trickle down my brow
> soaking and stinging my eye
> tell tale sighs and cries
> of dreams unFULFILLED
> and time is running DRY
> PANIC stricken bloodshot hearts
> TRY TO RESTART
> ...

----------


## xrg

Για να χρησιμοποιήσω το firmware, μόλις έγραψα το παρακάτω script.
Αυτό έχει το καλό οτι δεν χαλάω τη σειρά των rc scripts και μοιάζει με τον μηχανισμό που θα μπορούσε να έχει το kernel module από μόνο του (βλ. hotplug firmware).

Για να πάρει μπρός, βάλτε και τη γραμμή:

install hostap_pci /sbin/modprobe --ignore-install hostap_pci ; /sbin/hostap_set_rfirm

στο /etc/modprobe.conf

----------


## Acinonyx

Πληροφορίες για την Netgear MA311 - http://wiki.awmn/doku.php?id=ma311

----------


## Vigor

> Πληροφορίες για την Netgear MA311 - http://wiki.awmn/doku.php?id=ma311


Θα μπορούσαν να προστεθούνε στο wiki και κάποια στοιχεία που αφορούν το flashάρισμα της Netgear MA311 (από Linux/Windows/DOS) από εδώ:
*Mini-howto on Flashing Intersil Prism Chipsets*

----------

