Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #723 (new defect)

Opened 15 years ago

Last modified 15 years ago

no private ioctls.

Reported by: cpicton@users.sf.net Assigned to:
Priority: minor Milestone:
Component: madwifi: other Version: v0.9.1
Keywords: iwpriv Cc:
Patch is attached: 0 Pending:

Description

I have just installed ver 0.9.1, and am trying to set the card to 802.11g mode.

I have done the following:

[root@boojum root]# modprobe ath_pci autocreate=ap [root@boojum root]# iwconfig ath0 rate 54M [root@boojum root]# iwconfig ath0 essid NingNing? [root@boojum root]# iwconfig ath0 key SECRET [root@boojum root]# iwconfig ath0 ath0 IEEE 802.11b ESSID:"NingNing" Nickname:"boojum.picton.nom.za"

Mode:Master Channel:0 Access Point: 00:00:00:00:00:00 Bit Rate=54Mb/s Tx-Power:0 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:BEEF-15DE-AD Security mode:restricted Power Management:off Link Quality:0/94 Signal level:-95 dBm Noise level:-95 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

When I try set the mode, I get the following: [root@boojum root]# iwpriv ath0 mode 3 Jun 27 17:01:39 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144)

ath0 no private ioctls.

[root@boojum root]# iwpriv ath0 mode 11g Jun 27 17:02:22 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144) ath0 no private ioctls.

[root@boojum root]# iwpriv ath0 Jun 27 17:02:22 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144) ath0 no private ioctls.

Is this known, and are there any fixes for this?

Change History

06/27/06 17:07:07 changed by anonymous

Apologise for the poor formatting: Updated here

I have just installed ver 0.9.1, and am trying to set the card to 802.11g mode.

I have done the following:

[root@boojum root]# modprobe ath_pci autocreate=ap
[root@boojum root]# iwconfig ath0 rate 54M
[root@boojum root]# iwconfig ath0 essid NingNing
[root@boojum root]# iwconfig ath0 key SECRET
[root@boojum root]# iwconfig ath0
ath0      IEEE 802.11b  ESSID:"NingNing"  Nickname:"boojum.picton.nom.za"
          Mode:Master  Channel:0  Access Point: 00:00:00:00:00:00
          Bit Rate=54Mb/s   Tx-Power:0 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:BEEF-15DE-AD   Security mode:restricted
          Power Management:off
          Link Quality:0/94  Signal level:-95 dBm  Noise level:-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

When I try set the mode, I get the following:

[root@boojum root]# iwpriv ath0 mode 3
Jun 27 17:01:39 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144)

ath0      no private ioctls.

[root@boojum root]# iwpriv ath0 mode 11g
Jun 27 17:02:22 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144)
ath0      no private ioctls.

[root@boojum root]# iwpriv ath0
Jun 27 17:02:22 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<144)
ath0      no private ioctls.

Is this known, and are there any fixes for this?

06/27/06 17:09:11 changed by mrenzmann

  • version set to v0.9.1.

Please post the output of ifconfig ath0.

06/27/06 17:58:43 changed by cpicton@users.sf.net

[root@boojum root]# ifconfig ath0
ath0      Link encap:Ethernet  HWaddr 00:04:E2:FA:FD:5D
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

06/28/06 05:05:30 changed by mrenzmann

Unrelated, but you haven't set a channel the AP should work on.

What does ifconfig wifi0 say?

06/28/06 07:53:35 changed by anonymous

[root@boojum root]# ifconfig wifi0
wifi0     Link encap:UNSPEC  HWaddr 00-04-E2-FA-FD-5D-B0-A5-00-00-00-00-00-00-00-00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:199
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:12 Memory:d814b000-d815b000

06/28/06 08:05:08 changed by anonymous

Is the wireless channel usually set according to the country you are in?

I did not need to set the country code or channel/frequency manually with previous snapshots up to 20060105 (1390).

Now, if I run

modprobe ath_pci countrycode=710 autocreate=ap

I get the following in /var/log/messages:

Jun 28 08:03:28 boojum kernel: ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
Jun 28 08:03:28 boojum kernel: wlan: 0.8.4.2 (0.9.1)
Jun 28 08:03:28 boojum kernel: ath_rate_sample: 1.2 (0.9.1)
Jun 28 08:03:28 boojum kernel: ath_pci: 0.9.4.5 (0.9.1)
Jun 28 08:03:28 boojum kernel: PCI: Found IRQ 12 for device 00:08.0
Jun 28 08:03:28 boojum kernel: wifi%d: unable to collect channel list from hal; regdomain likely 96 country code 710

The wifi0 and ath0 devices are not created

06/28/06 08:52:18 changed by anonymous

Using my previous snapshot (1390), I get the following when running modprobe ath_pci with no arguments:

Jun 28 08:28:41 boojum kernel: ath_hal: 0.9.16.13 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413, DFS)
Jun 28 08:28:42 boojum kernel: wlan: 0.8.4.2 (Atheros/multi-bss)
Jun 28 08:28:42 boojum kernel: ath_rate_sample: 1.2
Jun 28 08:28:42 boojum kernel: ath_pci: 0.9.4.5 (Atheros/multi-bss)
Jun 28 08:28:42 boojum kernel: PCI: Found IRQ 12 for device 00:08.0
Jun 28 08:28:42 boojum kernel: wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
Jun 28 08:28:42 boojum kernel: wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
Jun 28 08:28:42 boojum kernel: wifi0: H/W encryption support: WEP AES AES_CCM TKIP
Jun 28 08:28:42 boojum kernel: wifi0: mac 7.8 phy 4.5 radio 5.6
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 1 for WME_AC_BE traffic
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 0 for WME_AC_BK traffic
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 2 for WME_AC_VI traffic
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 3 for WME_AC_VO traffic
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 8 for CAB traffic
Jun 28 08:28:42 boojum kernel: wifi0: Use hw queue 9 for beacons
Jun 28 08:28:42 boojum kernel: wifi0: Atheros 5212: mem=0xd8000000, irq=12

After this, I run

/usr/bin/wlanconfig ath0 create wlandev wifi0 wlanmode ap
iwconfig wifi0 rate 54M
iwconfig ath0 essid NingNing
iwconfig ath0 key beef15dead
ifconfig ath0; ifconfig wifi0; iwconfig ath0; ifconfig wifi0

and get the following:

ath0      Link encap:Ethernet  HWaddr 00:04:E2:FA:FD:5D
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:9123 (8.9 Kb)

wifi0     Link encap:UNSPEC  HWaddr 00-04-E2-FA-FD-5D-D0-C8-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:163873
          TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:199
          RX bytes:0 (0.0 b)  TX bytes:11489 (11.2 Kb)
          Interrupt:12 Memory:d814b000-d815b000

ath0      IEEE 802.11g  ESSID:"NingNing"  Nickname:"boojum.picton.nom.za"
          Mode:Master  Frequency:2.412GHz  Access Point: 00:04:E2:FA:FD:5D
          Bit Rate=54Mb/s   Tx-Power:17 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:BEEF-15DE-AD   Security mode:restricted
          Power Management:off
          Link Quality:0/94  Signal level:-95 dBm  Noise level:-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

wifi0     Link encap:UNSPEC  HWaddr 00-04-E2-FA-FD-5D-C0-BD-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:163873
          TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:199
          RX bytes:0 (0.0 b)  TX bytes:11489 (11.2 Kb)
          Interrupt:12 Memory:d814b000-d815b000

As you can see, it does pick up a frequency automatically, and runs in 802.11g mode. I still cannot run iwpriv, though:

Jun 28 08:51:11 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<143)

06/28/06 09:38:57 changed by ignuss

check version of wireless tools, and install latest - that iwpriv stuff could be cause by that, or by old kernel - old wireless extensions vs. newer wireless tools that hal message about channel list , countrycode 710 is probably not usable within regdomain 96 - afaik regdomain 96 has almost all channels usable all around the world available, so no need to set countrycode there anyway imo another thing is that it is perfectly possible that never versions of madwifi doesn't set channel automagically in master mode, which is imo better way anyway - the less such important and surrounding area impacting things automagically done, the better

06/28/06 10:30:44 changed by anonymous

With a clean reboot, and updated kernel, the new driver initialises the frequency correctly without specifying country code. Possible there was a conflict when unloading the old driver and loading the new driver without a reboot in between. It also initialises in 802.11g mode correctly:

Jun 28 10:15:12 boojum kernel: ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
Jun 28 10:15:12 boojum kernel: wlan: 0.8.4.2 (0.9.1)
Jun 28 10:15:12 boojum kernel: ath_rate_sample: 1.2 (0.9.1)
Jun 28 10:15:12 boojum kernel: ath_pci: 0.9.4.5 (0.9.1)
Jun 28 10:15:12 boojum kernel: PCI: Found IRQ 12 for device 00:08.0
Jun 28 10:15:12 boojum kernel: wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
Jun 28 10:15:12 boojum kernel: wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54MbpsJun 28 10:15:12 boojum kernel: wifi0: H/W encryption support: WEP AES AES_CCM TKIP
Jun 28 10:15:12 boojum kernel: wifi0: mac 7.8 phy 4.5 radio 5.6
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 1 for WME_AC_BE traffic
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 0 for WME_AC_BK traffic
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 2 for WME_AC_VI traffic
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 3 for WME_AC_VO traffic
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 8 for CAB traffic
Jun 28 10:15:12 boojum kernel: wifi0: Use hw queue 9 for beacons
Jun 28 10:15:12 boojum kernel: wifi0: Atheros 5212: mem=0xd8000000, irq=12

However, I still cannot run any iwpriv commands

I am using Redhat Enterprise 3, with kernel version 2.4.21-40.EL, and wireless-tools-26-2. I dont see any errors about mismatch of wireless tools versions anywhere.

06/28/06 11:09:20 changed by mrenzmann

...
Jun 28 08:03:28 boojum kernel: wifi%d: unable to collect channel list from hal; regdomain likely 96 country code 710

Check #120.

I still cannot run iwpriv, though:

Jun 28 08:51:11 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<143)

That's just a warning, not an error. See UserDocs/Troubleshooting#Iseeath0WE:BufferforrequestSIOGIWPRIVtoosmallxlty.Whatswrong

06/28/06 11:16:29 changed by anonymous

My problem is that I get the following error from iwpriv:

[root@boojum root]# iwpriv ath0
ath0      no private ioctls.

08/09/06 09:11:53 changed by cpicton@users.sf.net

I have just tried version 0.9.2, but get the same error:

[root@boojum root]# iwpriv ath0
ath0      no private ioctls.

In the log, I get

Aug  9 09:09:24 boojum kernel: ath0 (WE) : Buffer for request SIOCGIWPRIV too small (128<146)

09/19/06 02:17:05 changed by jimis

I get the same errors (buffer too small, no private ioctls) using a 2.4 kernel with latest svn version of madwifi. Could it be related to the available memory? I'm testing in a very tight memory situation with no swap available.

10/27/06 14:06:03 changed by vipershock80@naver.com

Hello I'm korean..and poor English..

I get the same erros ,too

But ,just now I modify this problem.

iwpriv.c -

-#define IW_MAX_PRIV_DEF 128 (before) +#define IW_MAX_PROV_DEF 150 (now)

case IW_PRIV_TYPE_ADDR -char scratch[128] (before) +char scratch[150] (now)

good luck~

10/27/06 16:03:53 changed by mrenzmann

As already explained in a previous comment: the "Buffer for request SIOCGIWPRIV" thing can be ignored, they are harmless.

Re the "no private ioctls" message: make sure that after loading MadWifi you have one interface called wifi0 and one interface called ath0. If you have just ath0, your distribution probably renames wifi0 to ath0 (which would be wrong and needed to be fixed by the vendor of your distro).

10/27/06 23:15:32 changed by cpicton@users.sf.net

From the doc:

Ignoring the[se messages] is safe, as long as you don't get an error message from iwpriv as well.

I am getting an iwpriv error as well. I have both a wifi0 and and ath0, and cannot get private ioctls from either.

I have not tested the latest versions in a while, as I am running a snapshot from 2006-01-28, which gives me at least partial stability (but not a very good signal strength).

This older version does not give me a wifi0, only an ath0, but I can view private ioctls from it without any kernel errors.

I will try the suggested fix from vipershock80@naver.com, to see if it has any effect for me on the latest versions.

10/28/06 08:16:52 changed by mrenzmann

@cpicton: I am aware that you get an iwpriv error message, that's the reason why I wrote the second paragraph in my previous comment. The "you can ignore this message" hint was meant for users like jimis, who (following their description) don't get the iwpriv error at all, but only the warning message about "buffers too small".

01/26/07 09:26:08 changed by cpicton@users.sf.net

Finally got round to testing...

Updating the RHEL3 wireless-tools RPM with the changes suggested by vipershock80@naver.com does allow me to use iwpriv again.

I used the following patch to wireless-tools:

diff -uNr wireless_tools.26/iwpriv.c wireless_tools.26.new/iwpriv.c
--- wireless_tools.26/iwpriv.c  2003-04-03 01:45:19.000000000 +0200
+++ wireless_tools.26.new/iwpriv.c      2007-01-26 06:44:40.000000000 +0200
@@ -176,7 +176,7 @@
 static const char *    argtype[] = {
   "     ", "byte ", "char ", "", "int  ", "float", "addr " };

-#define IW_MAX_PRIV_DEF        128
+#define IW_MAX_PRIV_DEF        160

 /* Backward compatibility */
 #ifndef IW_PRIV_TYPE_ADDR
@@ -479,7 +479,7 @@

        case IW_PRIV_TYPE_ADDR:
          {
-           char                scratch[128];
+           char                scratch[160];
            struct sockaddr *   hwa;
            /* Display args */
            for(j = 0; j < n; j++)

This, together with the changes from changeset 1703, allow me to compile and use 0.9.2.1 on RHEL3, using the dkms packages provided by Dag Wieers

Stability seems good, as it has been running for over 2 hours without a disconnection, which is much better than I had been getting on any previous snapshots after 2006-01-28.