You are not logged in.

#1 2013-02-21 10:23:47

OttoRobba
Member
Registered: 2011-10-03
Posts: 18

Wifi on Surface Pro - installed with ndiswrapper but not working

Hi there guys.

I have installed Arch on a Surface Pro and most things work well.
The biggest problem so far is wifi - it comes with a 88w8797 Marvell Avastar chipset. I managed to find the drivers and used ndiswrapper to install them.

$ ndiswrapper -l
mwlu97w8 : driver installed
device (1286:2043) present (alternate driver: mwifiex_usb)

The ndiswrapper help page says that one should get rid of alternate drivers before enabling ndiswrapper but I have no clue where to start - that seems to be a kernel loaded module (link) but it really doesn't do much apparently.

I did 'modprobe ndiswrapper' but as you can see below, nothing seems to be really happening

# iwconfig
enp0s20u2u3  no wireless extensions.
lo        no wireless extensions.

dmesg returns this on ndiswrapper

$ dmesg | grep ndiswrapper
[    2.996565] ndiswrapper version 1.58 loaded (smp=yes, preempt=yes)
[    4.230024] usbcore: registered new interface driver ndiswrapper

The gnome network manager, just like iwconfig, shows no able wireless.

I'm at a loss on what to do, any help is greatly appreciatted smile

Last edited by OttoRobba (2013-02-21 10:26:50)

Offline

#2 2013-02-21 10:52:36

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

OttoRobba wrote:

that seems to be a kernel loaded module (link) but it really doesn't do much apparently.

Except probably claim the device, so that ndiswrapper can't drive it. So blacklist it. And to see what's actually going on with the mahcine, dmesg is your friend.

Also, just to satisfy my own curiosity, post lspci -nn and lsusb, I want to know what exact hardware is in this thing.

Offline

#3 2013-02-21 22:23:15

OttoRobba
Member
Registered: 2011-10-03
Posts: 18

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

The blacklisting was a good call as I had completely forgot to do so. Made a /etc/modprobe.d/blacklist.conf  with 'install mwifiex_usb /bin/false' -  nothing changed though, the wireless network still won't show.

 # lsusb
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 003: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 003 Device 002: ID 1286:2043 Marvell Semiconductor, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 045e:0795 Microsoft Corp. 
Bus 002 Device 003: ID 045e:079c Microsoft Corp. 
Bus 002 Device 004: ID 03eb:8209 Atmel Corp. 
Bus 002 Device 005: ID 045e:0794 Microsoft Corp. 
Bus 003 Device 006: ID 04e8:6863 Samsung Electronics Co., Ltd 
# lspci
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM77 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)

It seems ndiswrapper is failing to load - I wonder if there is another module claiming the device?

 #dmesg
[    4.191249] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'__chkstk'
[    4.191274] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'MmGetSystemRoutineAddress'
[    4.191295] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisFreeIoWorkItem'
[    4.191305] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisQueueIoWorkItem'
[    4.191326] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisFreeMdl'
[    4.191336] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateMdl'
[    4.191346] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferAndNetBufferList'
[    4.191356] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisFreeNetBufferList'
[    4.191366] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisFreeNetBufferListPool'
[    4.191376] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferListPool'
[    4.191386] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMAllocatePort'
[    4.191403] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMIdleNotificationComplete'
[    4.191413] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMIdleNotificationConfirm'
[    4.191423] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMFreePort'
[    4.191432] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMNetPnPEvent'
[    4.191443] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMIndicateReceiveNetBufferLists'
[    4.191453] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMSendNetBufferListsComplete'
[    4.191463] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMOidRequestComplete'
[    4.191473] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMIndicateStatusEx'
[    4.191483] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMSetMiniportAttributes'
[    4.191493] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisSetOptionalHandlers'
[    4.191504] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateMemoryWithTagPriority'
[    4.191514] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisOpenConfigurationEx'
[    4.191523] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisFreeTimerObject'
[    4.191533] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisCancelTimerObject'
[    4.191543] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisSetTimerObject'
[    4.191599] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateIoWorkItem'
[    4.191613] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMRegisterMiniportDriver'
[    4.191623] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisMDeregisterMiniportDriver'
[    4.191648] ndiswrapper (import:232): unknown symbol: NDIS.SYS:'NdisAllocateTimerObject'
[    4.191663] ndiswrapper (load_sys_files:199): couldn't prepare driver 'mwlu97w8'
[    4.191827] ndiswrapper (load_wrap_driver:121): couldn't load driver 'mwlu97w8'
[    4.191926] usbcore: registered new interface driver ndiswrapper

Offline

#4 2013-02-22 03:23:24

frank604
Member
From: BC, Canada
Registered: 2011-04-20
Posts: 1,212

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

Which windows version of the driver did you use for ndiswrapper?
Also, try different manufacturer's drivers.  For example, your device is a microsoft product, perhaps asus/toshiba/acer/dell has a driver for the same chipset.
ndiswrapper doesn't work with all drivers unfortunately, might just be out of luck but mind as well pull all the roots out before giving up.

Last edited by frank604 (2013-02-22 03:26:36)

Offline

#5 2013-02-22 04:05:14

progandy
Member
Registered: 2012-05-17
Posts: 5,184

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

The wifi chip is a Marvell Avastar 88W8797 (according to zdnet)
The necessary firmware should be already in the kernel firmware tree, maybe you could try it (save it as /usr/lib/firmware/mrvl/usb8797_uapsta.bin)
http://git.kernel.org/?p=linux/kernel/g … 785bd6e1d3

Last edited by progandy (2013-02-22 04:15:41)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Online

#6 2013-02-22 08:22:12

OttoRobba
Member
Registered: 2011-10-03
Posts: 18

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

@frank604
I'm using the 64bits one - I'll look around for other places to download but they are scarce for this one.

@progandy
I like how you think! If it could be solved with kernel firmware, that would be great. I did as you said and, while it is not working, it seems like a step in the right direction:

$ dmesg | grep usb8797
[    3.398761] usbcore: registered new interface driver usb8797
[    3.399816] usb 3-3: Failed to get firmware mrvl/usb8797_uapsta.bin

I have fully uninstalled the ndiswrapper driver and have un-blacklisted mwifiex_usb. Can't think of anything else that would stop the system from getting the .bin file. What do you think?

Offline

#7 2013-02-22 08:43:12

progandy
Member
Registered: 2012-05-17
Posts: 5,184

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

Did you put the firmware file in the right place? No typos or invisible characters and /lib is a symlink to /usr/lib?


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Online

#8 2013-02-22 21:09:08

OttoRobba
Member
Registered: 2011-10-03
Posts: 18

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

I did have a typo, argh. I fixed the typo but I noticed something weird: the .bin file was 0 bytes. Always. So I went to linux's firmware github and downloaded the right version (500kb).

Put it in place and now it is recognized (and bluetooth works now as well) but it can't really connect. At least, not through gnome's network manager. I can input the password (tried 8 times or so) but it always fails to connect.

And it shows up in three different ways

$ iwconfig
p2p0      IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
enp0s20u2  no wireless extensions.

uap0      IEEE 802.11abgn  Mode:Master  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
lo        no wireless extensions.

mlan0     IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

dmesg now looks fine

$ dmesg | grep 8797
[    2.398797] ahci 0000:00:1f.2: setting latency timer to 64
[    3.413242] usbcore: registered new interface driver usb8797

I'll see if I can connect through the commandline but something in my head tells me that is not going to connect.

EDIT:

# wifi-menu p2p0
:: Scanning for networks                                               [FAILED] 
 > No networks found

# wifi-menu uap0
:: Scanning for networks                                               [ BUSY ] ioctl[SIOCSIWPMKSA]: Invalid argument
ioctl[SIOCSIWMODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWPMKSA]: Invalid argument
                                                                       [FAILED]
 > No networks found

# wifi-menu mlan0
:: Scanning for networks                                [FAILED] 

EDIT 2:
Tried to do

ip link set [connection_name] up

and connect afterwards, same as gnome, I can input the password but the connection fails.

# wifi-menu mlan0
:: Scanning for networks                                               [FAILED] 
 > No networks found

uap0 only shows the password prompt on the second try

:: uap0-2WIRE662 up                                                    [ BUSY ] Successfully initialized wpa_supplicant
nl80211: Could not configure driver to use managed mode
ioctl[SIOCSIWPMKSA]: Invalid argument
ioctl[SIOCSIWMODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWENCODEEXT]: Operation not supported
ioctl[SIOCSIWENCODE]: Operation not supported
ioctl[SIOCSIWPMKSA]: Invalid argument

EDIT 3
Ok. Somehow I managed to connect two of the three wireless parts. The third is uap0, which must be the actual wireless connection one since the others don't really connect to the internet.

Last edited by OttoRobba (2013-02-22 21:44:42)

Offline

#9 2014-04-13 00:48:16

decaren
Member
Registered: 2009-04-17
Posts: 24

Re: Wifi on Surface Pro - installed with ndiswrapper but not working

I know it's been awhile and this may be a dead subject by now, but has anyone tried the firmware from Marvell?  Download it at Marvell GitHub.  Copy it to /lib/firmware/mrvl/usb8797_uapsta.bin.  Sorry if this is behind the times, but I'm just now getting ready to move from Ubuntu to Arch and I'm doing my pre-research for installation.

Offline

Board footer

Powered by FluxBB