http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1894

Description:   Opened: 2009-01-26 16:16
My wireless card (on a T61 Lenovo laptop) works fine in "managed" mode, but I
get this error when putting it in ad-hoc mode:

calculon-minor ~ # iwconfig wlan0 mode ad-hoc
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Operation not supported.

This happens whether its been brought up or down with ifconfig, whether its
compiled into the kernel or loaded as a module, and with all combinations of
the additional driver options in the kernel config.  Setting it to "managed" or
"repeater" modes doesn't throw an error.  Other values throw an "Invalid
argument" error.

I'm running the current Gentoo 64-bit kernel (2.6.28-gentoo-r1), and tried the
past couple 2.6.27 versions as well with the same results.

Please let me know if I can provide more information.

-Tom
------- Comment #1 From ximin luo 2009-02-01 17:14:02 -------
Could you please reload driver or down the interface before set mode to ad-hoc?
We have tried it and found that up interface then set mode to ad-hoc will
appear the error. 
------- Comment #2 From Tom Lippincott 2009-02-01 17:20:45 -------
(In reply to comment #1)
> Could you please reload driver or down the interface before set mode to ad-hoc?
> We have tried it and found that up interface then set mode to ad-hoc will
> appear the error. 
> 

As stated in the first post, I've tried all combinations of bringing the
interface up/down and loading/unloading the module with no difference.
------- Comment #3 From ximin luo 2009-02-01 17:31:02 -------
It's very kind of you to try the latest kernel, thanks for you immediate
feedback.
------- Comment #4 From Abhijeet Kolekar 2009-02-02 10:53:15 -------
What channel you are trying to set?
------- Comment #5 From Tom Lippincott 2009-02-02 11:01:16 -------
(In reply to comment #4)
> What channel you are trying to set?
> 

I'm not trying to set any channel (i.e. I never call "iwconfig wlan0 channel
X"), just the mode.  But when I do set the channel (e.g. to 4 or 6) it has no
effect on the ad-hoc mode problem.
------- Comment #6 From reinette chatre 2009-02-06 16:03:43 -------
(In reply to comment #5)
> (In reply to comment #4)
> > What channel you are trying to set?
> > 
> 
> I'm not trying to set any channel (i.e. I never call "iwconfig wlan0 channel
> X"), just the mode.  But when I do set the channel (e.g. to 4 or 6) it has no
> effect on the ad-hoc mode problem.
> 

The error returned is "Operation not supported" which means that according to
the current regulatory information in your kernel you are not allowed to use
ad-hoc on that channel. You are probably not running with crda
(http://wireless.kernel.org/en/developers/Regulatory/CRDA).

Please check that your kernel is configured with
CONFIG_WIRELESS_OLD_REGULATORY. 

In which country are you?

You can also look into:

options cfg80211 ieee80211_regdom="EU"
------- Comment #7 From Tom Lippincott 2009-02-07 11:30:19 -------
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #4)
> > > What channel you are trying to set?
> > > 
> > 
> > I'm not trying to set any channel (i.e. I never call "iwconfig wlan0 channel
> > X"), just the mode.  But when I do set the channel (e.g. to 4 or 6) it has no
> > effect on the ad-hoc mode problem.
> > 
> 
> The error returned is "Operation not supported" which means that according to
> the current regulatory information in your kernel you are not allowed to use
> ad-hoc on that channel. You are probably not running with crda
> (http://wireless.kernel.org/en/developers/Regulatory/CRDA).
> 
> Please check that your kernel is configured with
> CONFIG_WIRELESS_OLD_REGULATORY. 
> 
> In which country are you?
> 
> You can also look into:
> 
> options cfg80211 ieee80211_regdom="EU"
> 

I'm in the US.

I recompiled with CONFIG_WIRELESS_OLD_REGULATORY option, and was then able to
set it to ad-hoc mode, but ifconfig refused to bring the interface up with
"SIOCSIFFLAGS: No such file or directory".  I removed the option, but the
interface still won't come up and dmesg shows:

iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
iwl3945 0000:03:00.0: irq 311 for MSI/MSI-X
iwl3945 0000:03:00.0: firmware: requesting iwlwifi-3945-1.ucode
iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
iwl3945: Could not read microcode: -2

Is it possible using that kernel option corrupted the firmware?  Anyways,
wireless doesn't work at all now...

-Tom
------- Comment #8 From reinette chatre 2009-02-08 19:19:06 -------
(In reply to comment #7)

> 
> I recompiled with CONFIG_WIRELESS_OLD_REGULATORY option, and was then able to
> set it to ad-hoc mode, but ifconfig refused to bring the interface up with
> "SIOCSIFFLAGS: No such file or directory".  I removed the option, but the
> interface still won't come up and dmesg shows:
> 
> iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> iwl3945 0000:03:00.0: irq 311 for MSI/MSI-X
> iwl3945 0000:03:00.0: firmware: requesting iwlwifi-3945-1.ucode
> iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
> iwl3945: Could not read microcode: -2
> 
> Is it possible using that kernel option corrupted the firmware?  Anyways,
> wireless doesn't work at all now...

Sorry, but I have to ask ... could you please check that your firmware is in
the correct location? Did you perhaps download the latest firmware from the
website? It seems that your driver is still using the older v1 API firmware
(the latest available is v2).

Please check that your firmware is indeed iwlwifi-3945-1.ucode.

Reinette
------- Comment #9 From Tom Lippincott 2009-02-08 20:24:47 -------
(In reply to comment #8)
> (In reply to comment #7)
> 
> > 
> > I recompiled with CONFIG_WIRELESS_OLD_REGULATORY option, and was then able to
> > set it to ad-hoc mode, but ifconfig refused to bring the interface up with
> > "SIOCSIFFLAGS: No such file or directory".  I removed the option, but the
> > interface still won't come up and dmesg shows:
> > 
> > iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> > iwl3945 0000:03:00.0: irq 311 for MSI/MSI-X
> > iwl3945 0000:03:00.0: firmware: requesting iwlwifi-3945-1.ucode
> > iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
> > iwl3945: Could not read microcode: -2
> > 
> > Is it possible using that kernel option corrupted the firmware?  Anyways,
> > wireless doesn't work at all now...
> 
> Sorry, but I have to ask ... could you please check that your firmware is in
> the correct location? Did you perhaps download the latest firmware from the
> website? It seems that your driver is still using the older v1 API firmware
> (the latest available is v2).
> 
> Please check that your firmware is indeed iwlwifi-3945-1.ucode.
> 
> Reinette
> 

OK, I think that's the problem: its requesting v1, but Gentoo's iwl3945-ucode
package is at v2.  Is the kernel responsible for which version is requested?  I
take it the fix will be to get it to ask for v2.

-Tom
------- Comment #10 From reinette chatre 2009-02-08 22:16:15 -------
(In reply to comment #9)

> OK, I think that's the problem: its requesting v1, but Gentoo's iwl3945-ucode
> package is at v2.  Is the kernel responsible for which version is requested?  I
> take it the fix will be to get it to ask for v2.

... which will require you to upgrade your driver. You can look at
compat-wireless (http://wireless.kernel.org/en/users/Download )to do this if
you are not looking for a whole kernel upgrade.

Or you can just use v1 uCode - the latest version available is
http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-15.28.1.8.tgz
------- Comment #11 From Tom Lippincott 2009-02-09 12:57:54 -------
(In reply to comment #10)
> (In reply to comment #9)
> 
> > OK, I think that's the problem: its requesting v1, but Gentoo's iwl3945-ucode
> > package is at v2.  Is the kernel responsible for which version is requested?  I
> > take it the fix will be to get it to ask for v2.
> 
> ... which will require you to upgrade your driver. You can look at
> compat-wireless (http://wireless.kernel.org/en/users/Download )to do this if
> you are not looking for a whole kernel upgrade.
> 
> Or you can just use v1 uCode - the latest version available is
> http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-15.28.1.8.tgz
> 

Thanks for the help: its working now with the v1 ucode.  One last question: in
running a 2.6.28 kernel, which configuration options control the version of the
ucode that the iwl3945 driver requests?  I'd rather recompile the kernel since
gentoo doesn't have a package for compat-wireless.  Thanks again,
-Tom
------- Comment #12 From Jeff Zheng 2009-02-09 15:56:21 -------
Mark as  fixed according to last comments
------- Comment #13 From reinette chatre 2009-02-10 10:21:42 -------
(In reply to comment #11)
> 
> Thanks for the help: its working now with the v1 ucode.  One last question: in
> running a 2.6.28 kernel, which configuration options control the version of the
> ucode that the iwl3945 driver requests?  I'd rather recompile the kernel since
> gentoo doesn't have a package for compat-wireless.  Thanks again,

The uCode API version required by driver is hardcoded in driver self - it is
not a configuration option. This is required because an API change is usually
involved and includes driver changes that utilize new API. 

Reply via email to