When using the SMC SMCWPCI-G 802.11b/g (EU Version) PCI card, it is not possible to associate to an AP with a hidden ESSID on channels 12 and 13, even when the ESSID, BSSID and channel were set manually through iwconfig. This problem does not occur on channels 1 to 11, nor with the Win32 driver.
This card is in regdomain 96 with countrycode 0. Switching to one of the well-known EU country codes (e.g., 276) is not possible. wlanconfig ath0 list chan gives the following output:
Channel 1 : 2412 Mhz 11g Channel 8 : 2447 Mhz 11g
Channel 2 : 2417 Mhz 11g Channel 9 : 2452 Mhz 11g
Channel 3 : 2422 Mhz 11g Channel 10 : 2457 Mhz 11g
Channel 4 : 2427 Mhz 11g Channel 11 : 2462 Mhz 11g
Channel 5 : 2432 Mhz 11g Channel 12 : 2467* Mhz 11g
Channel 6 : 2437 Mhz 11g Channel 13 : 2472* Mhz 11g
Channel 7 : 2442 Mhz 11g Channel 14 : 2484* Mhz 11b
As far as I see, the asterisk after chan 12, 13 and 14 indicates that the card thinks it is only allowed to do passive scanning on these frequencies. Is active scanning necessary to associate to an AP with a known hidden ESSID?
wlanconfig ath0 list scan gives the following output (even after the ESSID has been set with iwconfig!):
SSID BSSID CHAN RATE S:N INT CAPS
0x000000000... 00:0f:b5:5c:d3:7c 13 54M 47:0 100 EPs ATH
As I said, it works perfectly when the AP is on a channel below 12 and even continues to work when I change the AP's channel to 13 - the card correctly follows the AP to the new channel. The problem does not occur with the Win32 driver.
Some information from dmesg:
ath_hal: 0.9.16.13 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413, DFS)
wlan: 0.8.4.2 (Atheros/multi-bss)
ath_rate_sample: 1.2
ath_pci: 0.9.4.5 (Atheros/multi-bss)
PCI: Found IRQ 15 for device 00:08.0
PCI: Sharing IRQ 15 with 00:10.0
PCI: Sharing IRQ 15 with 00:12.0
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36
Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 7.8 phy 4.5 radio 5.6
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5212: mem=0xee000000, irq=15