Revised patch for Symbol CF Monitor mode
Ian Goldberg
ian at cypherpunks.ca
Mon Jul 1 00:58:33 EST 2002
While doing more testing of that last patch (in the form of a little
warwalking session), I noticed that all the networks I found had
low-numbered channels. More investigation revealed that while the patch
indeed prevented the badness from happening (the card doesn't stop
giving you packets), neither did it actually change the channel. D'oh. :-(
I noticed that doing "ifconfig eth0 down; ifconfig eth0 up" made the
card start sending packets again, so I whittled away at that codepath
until I had the minimal code that would keep the card happy. I've
included it (3 lines) as a patch below. This patch is against (the
version of orinoco.c in the spectrum24-0.3.4 package, patched with
Snax's monitor mode patch for 0.12). Throw away my previous patch to
this file, and you can also revert orinoco_hopper.c to its original form
(we no longer use the "iwpriv eth0 monitor 3 x" trick).
I did another warwalking and it's indeed picking up networks on channels
1, 11, and things in between. I've updated the packages and tools on
http://www.cypherpunks.ca/zaurus/socket.html to this version.
- Ian
-------------- next part --------------
--- spectrum24-0.3.4/orinoco.c Fri Jun 28 19:08:25 2002
+++ spectrum24-0.3.4-arm/orinoco.c Sun Jun 30 09:46:01 2002
@@ -3405,6 +3405,18 @@
break;
case P80211ENUM_truth_true:
+ /* If you set the monitor mode often (like with a channel
+ * hopper), Symbol/Socket cards at least tend to stop
+ * returning packets after a minute or so. Re-initing the
+ * chipset clears this up. - Ian
+ */
+ hermes_set_irqmask(hw, 0);
+ hermes_init(hw);
+ hermes_set_irqmask(hw, HERMES_EV_RX | HERMES_EV_ALLOC |
+ HERMES_EV_TX | HERMES_EV_TXEXC |
+ HERMES_EV_WTERR | HERMES_EV_INFO |
+ HERMES_EV_INFDROP);
+
/* Disable the port (if enabled), only check Port 0 */
if ( hw->port_enabled[0] ) {
/* Save macport 0 state */
More information about the wireless
mailing list