|
Note, this project is deprecated. The development is switched to the iwlwifi project (no binary daemon required!). You can find the iwlwifi project from Intel Wireless WiFi Link drivers for Linux*.
This project was created by Intel to enable support for the Intel PRO/Wireless 3945ABG Network Connection adapter. This project (IPW3945) is intended to be a community effort as much as is possible. As with our other wireless adapters, there are some working constraints related to documentation we can make publicly available. The 1.1.0 stable version (any version ending in .0 is 'stable') is available from Intel's Laptop Products page. If you would like to try a newer unstable/development version, first view this notice and then look below for links to download and use the development snapshots available from this project. As always, please send feedback, bug reports, feature requests and any fixes you come up with. Please let us know which distribution you use this with, and any problems you encounter. You can submit bugs to the Bugzilla repository available at BugHost.
Other Intel wireless project pages:
In order to use the Intel PRO/Wireless 3945ABG Network Connection driver for Linux you will need the following:
We have put up a development mailing list to help in development. You can frequently find people on IRC channel #ipw2100 on irc.freenode.org. The following are links to projects, archives, and other sites that may be of use to Intel PRO/Wireless 3945ABG Network Connection users: Packages (not maintained by ipw3945 project):
Jul 31 2007 Changes in 1.2.2
Apr 30 2007 Changes in 1.2.1
Jan 05 2007 Changes in 1.2.0
Dec 08 2006 Changes in 1.1.3
Nov 01 2006 Changes in 1.1.2
[ more ]
The version numbers used for the snapshots indicate whether a release is a stable release (ends in .0), or an unstable development release (does not end in .0). For example, 1.0.0 is stable, 1.0.1 is a development snapshot/release. Only fully tested and verified drivers should be used and deployed by end users. The development and unstable snapshots are intended only for development and testing. For more information, please see this notice.
Problems building with kernel v2.6.20
The work queue structure changed with 2.6.20. In addition,
pci_module_init was deprecated.
The three patches below in Patches were provided by Mattiaa Dongili to
correct this behavior. Download them and apply them to ipw3945-1.1.3
James
[PATCH] Fix ipw3945 for 2.6.22 onwards on 64bit archs: patch
In 2.6.22 onwards (since git commit 27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26),
on 64bit archs, skb->tail is no more a pointer, but just an offset from
skb->head, and an appropriate wrapper (skb_tail_pointer(skb)) must be used.
See the following snippet from include/linux/skbuff.h:
#ifdef NET_SKBUFF_DATA_USES_OFFSET
static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
{
return skb->head + skb->tail;
}
...
For older kernel releases, an appropriate default definition of the kernel
offset is given in ipw3945.h.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Index: ipw3945-1.2.2/ipw3945.c
===================================================================
--- ipw3945-1.2.2.orig/ipw3945.c
+++ ipw3945-1.2.2/ipw3945.c
@@ -14928,7 +14928,7 @@ static inline void ipw_build_tx_cmd_hwcr
tx_cmd->sec_ctl = TX_CMD_SEC_TKIP;
if (last_frag)
- memcpy(tx_cmd->tkip_mic.byte, skb_frag->tail - 8, 8);
+ memcpy(tx_cmd->tkip_mic.byte, skb_tail_pointer(skb_frag) - 8, 8);
else
memset(tx_cmd->tkip_mic.byte, 0, 8);
Index: ipw3945-1.2.2/ipw3945.h
===================================================================
--- ipw3945-1.2.2.orig/ipw3945.h
+++ ipw3945-1.2.2/ipw3945.h
@@ -76,6 +76,13 @@ typedef void irqreturn_t;
#include <linux/mutex.h>
#endif
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) )
+static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
+{
+ return skb->tail;
+}
+#endif
+
#if !defined(CONFIG_SOFTWARE_SUSPEND2_BUILTIN) && \
(defined(CONFIG_SOFTWARE_SUSPEND2) || \
defined(CONFIG_SOFTWARE_SUSPEND2_MODULE))
Fix potential driver lockup problem: patch
Since we have already store the inta to priv->isr_inta in the interrupt handler we don't need to get it from the hardware again in the tasklet. Some people find ipw3945-1.2.1 still didn't resolve the boot lockup problem as reported in bugzilla #1096. If you still find the lockup problem in ipw3945-1.2.1, please try this patch and report if it resolves your problem or not to yi.zhu@intel.com. Thanks to Egon for providing this patch! Signed-off-by: Egon <anannatrak@yahoo.it> Signed-off-by: Zhu Yi <yi.zhu@intel.com> -- --- a/ipw3945.c 2007-04-11 14:46:58.000000000 +0800 +++ b/ipw3945.c 2007-05-14 15:55:56.000000000 +0800 @@ -2769,8 +2769,8 @@ static void ipw_irq_tasklet(struct ipw_p spin_lock_irqsave(&priv->lock, flags); - inta = ipw_read32(priv, CSR_INT); - inta_mask = ipw_read32(priv, CSR_INT_MASK); + inta = 0; + inta_mask = 0; ipw_write32(priv, CSR_INT, inta); inta &= (CSR_INI_SET_MASK & inta_mask); [PATCH 1/1] Change call to the deprecated pci_driver_init to pci_register_driver.: patch
Change call to the deprecated pci_driver_init to pci_register_driver. Signed-off-by: Mattia Dongili <malattia@linux.it> --- ipw3945.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) bogus character appended to ESSID: patch
Hi,
On a Fedora Core 6 box (WE-20) with wireless-tools both v28 and v29 I’m
seeing a bogus character appended to ESSID on iwconfig output since
ipw3945-1.1.2.
The reason seems to be the patch in bug #1146, which I guess has a typo
that attached patch fixes.
~sertaç
--
diff -Nupr ipw3945/ipw3945.c ipw3945-new/ipw3945.c
--- ipw3945/ipw3945.c 2006-12-08 19:33:45.000000000 +0200
+++ ipw3945-new/ipw3945.c 2006-12-15 01:08:29.000000000 +0200
@@ -12210,7 +12210,7 @@ static int ipw_wx_get_essid(struct net_d
IPW_DEBUG_WX("Getting essid: '%s'\n",
escape_essid(priv->essid, priv->essid_len));
memcpy(extra, priv->essid, priv->essid_len);
- wrqu->essid.length = priv->essid_len + IW_ESSID_FIX;
+ wrqu->essid.length = priv->essid_len;
wrqu->essid.flags = 1; /* active */
} else {
IPW_DEBUG_WX("Getting essid: ANY\n");
[PATCH 2/2] workqueue rework: patch
Delayed works and normal works have been split to allow smaller memory usage. Use struct delayed_work where necessary. Signed-off-by: Mattia Dongili <malattia@linux.it> --- ipw3945.c | 106 +++++++++++++++++++++++++++++++++---------------------------- ipw3945.h | 27 ++++++++------- 2 files changed, 71 insertions(+), 62 deletions(-) [PATCH 1/2] workqueue rework: patch
INIT_WORK now takes 2 arguments and we can get the user data through the container_of macro. Signed-off-by: Mattia Dongili <malattia@linux.it> --- ipw3945.c | 198 ++++++++++++++++++++++++++++++------------------------------- 1 files changed, 98 insertions(+), 100 deletions(-)
If you have any questions, concerns, etc. please
email
ilw@linux.intel.com.
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||