On Wed, 2007-09-26 at 15:22 -0400, Polychronis Ypodimatopoulos wrote:
> I have Ubuntu 7.04 with 2.6.20-16 and want to use the 8388 USB module
> with my system. I guess I either need to jump to 2.6.22, or compile the
> driver for 2.6.20. I would prefer the second as the upstream version of
> the driver does not come with all the features I need. So, do I just get
> the driver and compile it? Any directions on the wiki?

There are a few things to do if you really want to build the driver for
2.6.20.  Off the top of my head:

1) set 'skb->dev = ...' in libertas_upload_rx_packet() in rc.c to ensure
the skb device is correct, which kernels < 2.6.22 don't do  (patch
attached)
2) you'll run into an undefined radiotap flag (patch attached)
3) sysfs classdev changes in main.c and possibly debugfs.c (I don't have
patch for this any more)

Dan

diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c
index b5beaa1..6f35607 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -138,10 +138,13 @@ void libertas_upload_rx_packet(wlan_private * priv, struct sk_buff *skb)
 {
 	lbs_deb_rx("skb->data %p\n", skb->data);
 
-	if (priv->mesh_dev && IS_MESH_FRAME(skb))
+	if (priv->mesh_dev && IS_MESH_FRAME(skb)) {
+		skb->dev = priv->mesh_dev;
 		skb->protocol = eth_type_trans(skb, priv->mesh_dev);
-	else
+	} else {
+		skb->dev = priv->dev;
 		skb->protocol = eth_type_trans(skb, priv->dev);
+	}
 	skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 	netif_rx(skb);
@@ -368,6 +371,15 @@ static int process_rxed_802_11_packet(wlan_private * priv, struct sk_buff *skb)
 		/* XXX must check this value for pad */
 		radiotap_hdr.hdr.it_pad = 0;
 		radiotap_hdr.hdr.it_len = sizeof(struct rx_radiotap_hdr);
+#define IEEE80211_RADIOTAP_RX_FLAGS 14
+/* For IEEE80211_RADIOTAP_RX_FLAGS */
+#define IEEE80211_RADIOTAP_F_RX_BADFCS	0x0001	/* frame failed crc check */
+
+/* For IEEE80211_RADIOTAP_TX_FLAGS */
+#define IEEE80211_RADIOTAP_F_TX_FAIL	0x0001	/* failed due to excessive
+						 * retries */
+#define IEEE80211_RADIOTAP_F_TX_CTS	0x0002	/* used cts 'protection' */
+#define IEEE80211_RADIOTAP_F_TX_RTS	0x0004	/* used rts/cts handshake */
 		radiotap_hdr.hdr.it_present = RX_RADIOTAP_PRESENT;
 		/* unknown values */
 		radiotap_hdr.flags = 0;
_______________________________________________
Devel mailing list
[email protected]
http://lists.laptop.org/listinfo/devel

Reply via email to