Module is loaded, but no wlan0 interface

I’m having trouble getting the wlan0 interface to show up for a Marvell 8797 USB to WiFi chip, and it seems like everything should be working. I’m running Arch Linux Arm, 3.8.13 kernel, and have verified that the modules are loaded correctly, and that it recognizes the device, but still no wlan0 interface. I also verified that the firmware is indeed in the /lib/firmware/mrvl/ directory. Am I missing something obvious?

Here is my output from dmesg, lsmod, and modinfo.

[ 15.321430] usb usb1: usb wakeup-resume
[ 15.321482] usb usb1: usb auto-resume
[ 15.321503] hub 1-0:1.0: hub_resume
[ 15.321551] hub 1-0:1.0: port 1: status 0101 change 0001
[ 15.424482] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 15.424547] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[ 15.529900] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 15.650300] usb 1-1: default language 0x0409
[ 15.651367] usb 1-1: udev 2, busnum 1, minor = 1
[ 15.651387] usb 1-1: New USB device found, idVendor=1286, idProduct=2043
[ 15.651399] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 15.651410] usb 1-1: Product: Marvell Wireless Device
[ 15.651420] usb 1-1: Manufacturer: Marvell
[ 15.651430] usb 1-1: SerialNumber: 0000000000000000
[ 15.651958] usb 1-1: usb_probe_device
[ 15.651978] usb 1-1: configuration #1 chosen from 1 choice
[ 15.655328] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[ 15.656222] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[ 15.656269] hub 1-0:1.0: port 1 enable change, status 00000503
[ 15.787448] cfg80211: Calling CRDA to update world regulatory domain
[ 15.811632] usb8797 1-1:1.0: usb_probe_interface
[ 15.811661] usb8797 1-1:1.0: usb_probe_interface - got id
[ 15.820715] usbcore: registered new interface driver usb8797

[root@alarm ~]# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.54.183.74 netmask 255.255.255.0 broadcast 10.54.183.255
inet6 fe80::caa0:30ff:feac:e319 prefixlen 64 scopeid 0x20
ether c8:a0:30:ac:e3:19 txqueuelen 1000 (Ethernet)
RX packets 11697 bytes 1387285 (1.3 MiB)
RX errors 0 dropped 12 overruns 0 frame 0
TX packets 1117 bytes 148026 (144.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 40

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 186 bytes 14214 (13.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 186 bytes 14214 (13.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@alarm ~]# lsmod
Module Size Used by
mwifiex_usb 8870 0
mwifiex 123902 1 mwifiex_usb
cfg80211 421700 1 mwifiex
rfkill 18407 1 cfg80211
omap_rng 4599 0
autofs4 21976 2

[root@alarm ~]# modinfo mwifiex_usb
filename: /lib/modules/3.8.13-34-ARCH/kernel/drivers/net/wireless/mwifiex/mwifiex_usb.ko.gz
firmware: mrvl/usb8797_uapsta.bin
license: GPL v2
version: 1.0
description: Marvell WiFi-Ex USB Driver version1.0
author: Marvell International Ltd.
srcversion: 430F2EB6A43396FC9E1AE01
alias: usb:v1286p2044ddcdscdpicFFiscFFipFFin*
alias: usb:v1286p2043ddcdscdpiciscipin
depends: mwifiex
intree: Y
vermagic: 3.8.13-34-ARCH SMP mod_unload modversions ARMv7 p2v8
[root@alarm ~]#

If you’re on ALARM and you did not setup udev to give the old interface names you will need to get the actual interface name such as wlp10s0 The arch wiki will serv you best especially if you’re not familiar with Arch. Arch is not Debian, its is not a lazy mans OS.

Forgot to state use ip to find out your interface name. man ip ip addr

I have not done anything with udev yet… I read through the Wireless netwrok configuration wiki, but didn’t see anywhere on how to create the interface. https://wiki.archlinux.org/index.php/Wireless_network_configuration#Interface_activation

I’m starting to read the wiki on udev, but is that too general, or do you know of something else I should be looking at?
https://wiki.archlinux.org/index.php/udev

ip addr only lists eth0 and lo.

[root@alarm ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether c8:a0:30:ac:e3:19 brd ff:ff:ff:ff:ff:ff

Thanks,

Also, other USB to WiFi adapters work just fine. For example, I have one that uses the rtl8192cu driver, and this one creates a wlan0 interface automatically. Any ideas what would be causing this?

OK then that means they setup the udev rule on BBBs still I couldnt remember have not done a fresh install in awhile. what do you get with ip addr ifconfig is depreciated you should get use to ip with Arch. Is this a driver that needs ndiswrapper? If so you may need to blacklist it so the wrapper can grab it

Here is what I get when I run ‘ip addr’:

[root@alarm ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether c8:a0:30:ac:e3:19 brd ff:ff:ff:ff:ff:ff

I’m not sure if the driver needs ndiswrapper or not… how do I tell? I did find the following website, but looks like it’s for Ubuntu.
http://askubuntu.com/questions/257600/marvells-wireless-driver-not-recognized

Anyone have any ideas what else I could try? I’ll try to contact the manufacturer, but have a feeling that won’t go very far…

I am not sure about if 3.8.x kernel support marvel 8797 .

In my previous experience , when “ifconfig -a” show nothing about your adapter , try another newer version driver

http://wireless.kernel.org/en/users/Download/stable/

maybe you can try compat-wireless

hope its be useful

Thanks for the help - I figured it out… it was operator error. The evaluation board that I was using with the Marvell chip apparently just needed another connector plugged in for power. Once I plugged that in, the interface was available for me to bring up.