OpenWrt Forum Archive

Topic: Trouble getting winstron cm9 wireless to work

The content of this topic has been archived on 29 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi, I have followed the installation of OpenWrt with some success using this page:
wiki.openwrt.org/toh/mikrotik/rb411

But I have a Winstron CM9-GP wireless card which I cannot get working. In the installation instructions, the line:
wifi detect > /etc/config/wireless
produces an empty file. I've tried using the kmod-ath9k but with no success and I cannot see the ath5k in the package list to try it.

Can anyone point me in the right direction please.

Cheers,
John

That is indeed an ath5k card.  I think you need kmod-ath and kmod-ath5k.  Also likely a PCI bus controller driver for your CPU, if it is not in the stock build.

Thank you for the help. But when I try and install theath5k module I get
Unknown package 'kmod-ath5k'.
Then I list the packages:
root@OpenWrt:/# opkg list | grep ath
kmod-ath - 3.10.49+2014-05-22-1
kmod-ath9k - 3.10.49+2014-05-22-1
kmod-ath9k-common - 3.10.49+2014-05-22-1
kmod-ipt-nathelper - 3.10.49-1

How can I get kmod-ath5k?

Did you connect to the Internet and opkg update first?

No, so just did that and I now have ath5k thank you.
root@OpenWrt:/# opkg list-installed | grep ath
kmod-ath - 3.10.49+2014-05-22-1
kmod-ath5k - 3.10.49+2014-05-22-1
kmod-ath9k - 3.10.49+2014-05-22-1
kmod-ath9k-common - 3.10.49+2014-05-22-1
kmod-ipt-nathelper - 3.10.49-1

But this command:
wifi detect > /etc/config/wireless
still gives me an empty file. So I installed pciutils and

root@OpenWrt:/# lspci
00:12.0 Ethernet controller: Qualcomm Atheros AR5212/AR5213 Wireless Network Adapter (rev 01)

I see no wireless adapter. Is this perhaps where I need PCI bus controller driver?? HOw would I identify what I need?

Actually, I see 'wireless' but I'm a bit confused. Is that like a 2-in-1 card or something?

The device registered on the PCI bus, so PCI controller is OK.  All wifi cards ultimately have an Ethernet-like network interface in the kernel, so that's why it says Ethernet there.

Does iw list show anything?
Review dmesg for any error messages.

(Last edited by mk24 on 23 May 2017, 16:28)

Here's the output of iw list

Wiphy phy0
        max # scan SSIDs: 4
        max scan IEs length: 2285 bytes
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Available Antennas: TX 0x3 RX 0x3
        Configured Antennas: TX 0x3 RX 0x3
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
        Band 1:
                Frequencies:
                        * 2412 MHz [1] (30.0 dBm)
                        * 2417 MHz [2] (30.0 dBm)
                        * 2422 MHz [3] (30.0 dBm)
                        * 2427 MHz [4] (30.0 dBm)
                        * 2432 MHz [5] (30.0 dBm)
                        * 2437 MHz [6] (30.0 dBm)
                        * 2442 MHz [7] (30.0 dBm)
                        * 2447 MHz [8] (30.0 dBm)
                        * 2452 MHz [9] (30.0 dBm)
                        * 2457 MHz [10] (30.0 dBm)
                        * 2462 MHz [11] (30.0 dBm)
                        * 2467 MHz [12] (disabled)
                        * 2472 MHz [13] (disabled)
                        * 2484 MHz [14] (disabled)
        Band 2:
                Frequencies:
                        * 5040 MHz [8] (disabled)
                        * 5060 MHz [12] (disabled)
                        * 5080 MHz [16] (disabled)
                        * 5180 MHz [36] (17.0 dBm)
                        * 5200 MHz [40] (17.0 dBm)
                        * 5220 MHz [44] (17.0 dBm)
                        * 5240 MHz [48] (17.0 dBm)
                        * 5260 MHz [52] (23.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 166 sec)
                          DFS CAC time: 60000 ms
                        * 5280 MHz [56] (23.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 166 sec)
                          DFS CAC time: 60000 ms
                        * 5280 MHz [56] (23.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 166 sec)
                          DFS CAC time: 60000 ms
                        * 5300 MHz [60] (23.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 166 sec)
                          DFS CAC time: 60000 ms
                        * 5320 MHz [64] (23.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 166 sec)
                          DFS CAC time: 60000 ms
                        * 5500 MHz [100] (disabled)
                        * 5520 MHz [104] (disabled)
                        * 5540 MHz [108] (disabled)
                        * 5560 MHz [112] (disabled)
                        * 5580 MHz [116] (disabled)
                        * 5600 MHz [120] (disabled)
                        * 5620 MHz [124] (disabled)
                        * 5640 MHz [128] (disabled)
                        * 5660 MHz [132] (disabled)
                        * 5680 MHz [136] (disabled)
                        * 5700 MHz [140] (disabled)
                        * 5745 MHz [149] (30.0 dBm)
                        * 5765 MHz [153] (30.0 dBm)
                        * 5785 MHz [157] (30.0 dBm)
                        * 5805 MHz [161] (30.0 dBm)
                        * 5825 MHz [165] (30.0 dBm)
        valid interface combinations:
                 * #{ managed } <= 2048, #{ AP, mesh point } <= 4, #{ IBSS } <=
1,
                   total <= 2048, #channels <= 1
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing

~

and here's the dmesg output.

[    0.000000] Linux version 3.10.49 (bb@builder1) (gcc version 4.8.3 (OpenWrt/
Linaro GCC 4.8-2014.04 r42625) ) #5 Wed Oct 1 14:15:03 CEST 2014
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR7130 rev 2
[    0.000000] Clocks: CPU:300.000MHz, DDR:300.000MHz, AHB:150.000MHz, Ref:40.0
00MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] User-defined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x01ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x01ffffff]
[    0.000000] On node 0 totalpages: 8192
[    0.000000] free_area_init_node: node 0, pgdat 80326b60, node_mem_map 810000
00
[    0.000000]   Normal zone: 64 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 8192 pages, LIFO batch:0
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32
bytes
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa
ges: 8128
[    0.000000] Kernel command line:  console=ttyS0,115200 gpio=4031 HZ=15000000
0 mem=32M kmac=00:0C:42:4C:C0:13 board=411 boot=1 mlc=2 rootfstype=yaffs noinit
rd
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Writing ErrCtl register=00023010
[    0.000000] Readback ErrCtl register=00023010
[    0.000000] Memory: 28660k/32768k available (2328k kernel code, 4108k reserv
ed, 634k data, 236k init, 0k highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.080000] Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.090000] NET: Registered protocol family 16
[    0.100000] MIPS: machine is MikroTik RouterBOARD 411/A/AH
[    0.610000] registering PCI controller with io_map_base unset
[    0.620000] bio: create slab <bio-0> at 0
[    0.630000] rb4xx-spi rb4xx-spi: master is unqueued, this is deprecated
[    0.640000] PCI host bridge to bus 0000:00
[    0.640000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x16ffffff]
[    0.650000] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.650000] pci_bus 0000:00: No busn resource found for root bus, will use [
bus 00-ff]
[    0.660000] pci 0000:00:12.0: [168c:0013] type 00 class 0x020000
[    0.660000] pci 0000:00:12.0: reg 10: [mem 0x00000000-0x0000ffff]
[    0.660000] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.660000] pci 0000:00:12.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]
[    0.660000] pci 0000:00:12.0: using irq 40 for pin 1
[    0.670000] Switching to clocksource MIPS
[    0.680000] NET: Registered protocol family 2
[    0.680000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[    0.680000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[    0.690000] TCP: Hash tables configured (established 512 bind 512)
[    0.690000] TCP: reno registered
[    0.700000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.700000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.710000] NET: Registered protocol family 1
[    0.710000] PCI: CLS 0 bytes, default 32
[    0.740000] yaffs: yaffs built Sep 20 2014 23:09:53 Installing.
[    0.740000] msgmni has been set to 55
[    0.740000] io scheduler noop registered
[    0.750000] io scheduler deadline registered (default)
[    0.750000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.790000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
[    0.800000] console [ttyS0] enabled, bootconsole disabled
[    0.810000] m25p80 spi0.0: pm25lv512 (64 Kbytes)
[    0.820000] Creating 4 MTD partitions on "spi0.0":
[    0.820000] 0x000000000000-0x00000000b000 : "routerboot"
[    0.830000] 0x00000000b000-0x00000000c000 : "hard_config"
[    0.840000] 0x00000000d000-0x00000000f000 : "bios"
[    0.850000] 0x00000000f000-0x000000010000 : "soft_config"
[    0.850000] NAND flash driver for RouterBoard 4xx series version 0.2.0
[    0.860000] NAND device: Manufacturer ID: 0xad, Chip ID: 0x76 (Hynix NAND 64
MiB 3,3V 8-bit), 64MiB, page size: 512, OOB size: 16
[    0.870000] Scanning device for bad blocks
[    0.880000] Bad eraseblock 1 at 0x000000004000
[    0.920000] Bad eraseblock 193 at 0x000000304000
[    1.290000] Bad eraseblock 1874 at 0x000001d48000
[    1.340000] Bad eraseblock 2052 at 0x000002010000
[    1.710000] Bad eraseblock 3770 at 0x000003ae8000
[    1.740000] Bad eraseblock 3861 at 0x000003c54000
[    1.790000] Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
[    1.800000] 0x000000000000-0x000000040000 : "booter"
[    1.810000] 0x000000040000-0x000000400000 : "kernel"
[    1.810000] 0x000000400000-0x000004000000 : "rootfs"
[    1.820000] mtd: device 6 (rootfs) set to be root filesystem
[    1.830000] mtdsplit: no squashfs found in "rootfs"
[    1.830000] mtdsplit: no squashfs found in "NAND 64MiB 3,3V 8-bit"
[    1.850000] libphy: ag71xx_mdio: probed
[    2.160000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=00221
512, driver=Micrel KSZ8041]
[    2.170000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[    2.180000] TCP: cubic registered
[    2.180000] NET: Registered protocol family 17
[    2.190000] Bridge firewalling registered
[    2.190000] 8021q: 802.1Q VLAN Support v1.8
[    2.200000] yaffs: dev is 32505862 name is "mtdblock6" ro
[    2.200000] yaffs: passed flags ""
[    2.210000] yaffs: yaffs: Attempting MTD mount of 31.6,"mtdblock6"
[    2.390000] yaffs: block 1619 is bad
[    2.410000] yaffs: block 1797 is bad
[    2.600000] yaffs: block 3515 is bad
[    2.610000] yaffs: block 3606 is bad
[    5.540000] yaffs: yaffs_read_super: is_checkpointed 0
[    5.540000] VFS: Mounted root (yaffs filesystem) readonly on device 31:6.
[    5.550000] Freeing unused kernel memory: 236K (80345000 - 80380000)
[   12.200000] ar71xx: pll_reg 0xb8050010: 0x1099
[   12.200000] eth0: link up (100Mbps/Full duplex)
[   13.790000] eth0: link down
[   15.450000] NET: Registered protocol family 10
[   15.470000] nf_conntrack version 0.5.0 (451 buckets, 1804 max)
[   15.490000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   15.510000] Loading modules backported from Linux version master-2014-05-22-
0-gf2032ea
[   15.520000] Backport generated by backports.git backports-20140320-37-g5c33d
a0
[   15.530000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   15.590000] xt_time: kernel timezone is -0000
[   15.850000] cfg80211: Calling CRDA to update world regulatory domain
[   15.850000] cfg80211: World regulatory domain updated:
[   15.860000] cfg80211:  DFS Master region: unset
[   15.860000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_ga
in, max_eirp), (dfs_cac_time)
[   15.870000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000
mBm), (N/A)
[   15.880000] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000
mBm), (N/A)
[   15.890000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000
mBm), (N/A)
[   15.900000] cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000
mBm), (N/A)
[   15.900000] cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000
mBm), (0 s)
[   15.910000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000
mBm), (0 s)
[   15.920000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000
mBm), (N/A)
[   15.930000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0
mBm), (N/A)
[   16.120000] PPP generic driver version 2.4.2
[   16.130000] NET: Registered protocol family 24
[   16.150000] PCI: Enabling device 0000:00:12.0 (0000 -> 0002)
[   16.160000] ath5k 0000:00:12.0: registered as 'phy0'
[   16.650000] ath: EEPROM regdomain: 0x0
[   16.650000] ath: EEPROM indicates default country code should be used
[   16.650000] ath: doing EEPROM country->regdmn map search
[   16.650000] ath: country maps to regdmn code: 0x3a
[   16.650000] ath: Country alpha2 being used: US
[   16.650000] ath: Regpair used: 0x3a
[   16.650000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   16.660000] ath5k: phy0: Atheros AR5213A chip found (MAC: 0x59, PHY: 0x43)
[   16.670000] ath5k: phy0: RF5112B multiband radio found (0x36)
[   16.670000] cfg80211: Calling CRDA for country: US
[   16.680000] cfg80211: Regulatory domain changed to country: US
[   16.680000] cfg80211:  DFS Master region: FCC
[   16.690000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_ga
in, max_eirp), (dfs_cac_time)
[   16.700000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000
mBm), (N/A)
[   16.710000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700
mBm), (N/A)
[   16.710000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2300
mBm), (0 s)
[   16.720000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000
mBm), (N/A)
[   16.730000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4
000 mBm), (N/A)
[   26.780000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   26.800000] device eth0 entered promiscuous mode
[   26.800000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   27.200000] ar71xx: pll_reg 0xb8050010: 0x1099
[   27.200000] eth0: link up (100Mbps/Full duplex)
[   27.200000] br-lan: port 1(eth0) entered forwarding state
[   27.210000] br-lan: port 1(eth0) entered forwarding state
[   27.210000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   27.230000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   29.210000] br-lan: port 1(eth0) entered forwarding state

~

All looks good. Remove your /etc/config/wireless and run wifi detect again.

OK, I found out that "wifi detect" writes the wireless file without the need to direct output to the file. In fact the output is blank which was over-writing the file just after it had been written!
So just call:
wifi detect
on it's own.
And thanks for your excellent help mk24. If you're ever in Ireland, I'll buy you a pint!

The discussion might have continued from here.