Opened 4 months ago

Last modified 11 hours ago

#14260 new bug

iprowifi3945 goes "no link" every 5 minutes

Reported by: ttcoder Owned by: waddlesplash
Priority: normal Milestone: Unscheduled
Component: Drivers/Network/iprowifi3945 Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

On my primary laptop (lenovo R61), wi-fi is less reliable in the newer hrevs: the connection is lost after a few minutes, then after about 15 seconds, the link comes back up and I can resume browsing the web. Rince and repeat every few minutes.

DHCP is not even renegotiated (does not get mentionned in the syslog at any rate), the link just comes back up. So this seems to be a driver issue.

Didn't try to go "static" (vs DHCP). But in previous hrevs (freebsd9 drivers?) the connection was solid. For instance in hrev50465

Let me know if you need any info, try builds ..etc to help with this, as we go into the beta1 dev cycle

Attachments (1)

syslog_sample (15.8 KB) - added by ttcoder 4 months ago.
when wifi goes down and then back up : mentions "firmware error", "authentication expired" and other interesting things

Download all attachments as: .zip

Change History (12)

comment:1 Changed 4 months ago by ttcoder

~/Desktop> uname -a
Haiku shredder 1 hrev52079 Jul  7 2018 09:16:33 BePC x86 Haiku
~/Desktop> ifconfig /dev/net/iprowifi3945/0 -ht
~/Desktop> listdev
...
device Network controller [2|80|0]
  vendor 8086: Intel Corporation
  device 4227: PRO/Wireless 3945ABG [Golan] Network Connection

Edit: will also post a syslog, which includes a "firmware error" message:

KERN: [net/iprowifi3945/0] [d0:ae:ec:3e:a9:b0] sta power save mode on
KERN: [iprowifi3945] (wpi) fatal firmware error
KERN: wpi_fatal_intr: invalid count field (count = 0)
KERN: [net/iprowifi3945/0] stop running, 1 vaps running

Edit2: not sure if it's significant at all, but there are "Tx errors", 39 after an hour or so of light browsing haiku tickets:

/dev/net/iprowifi3945/0
        Hardware type: Ethernet, Address: (my mac addy here)
        Network: (my net here), Address: (...), WPA2, PSK/CCMP
        inet addr: 192.168.1.10, Bcast: 192.168.1.255, Mask: 255.255.255.0
        MTU: 1500, Metric: 0, up broadcast link auto-configured
        Receive: 13725 packets, 0 errors, 11587106 bytes, 0 mcasts, 0 dropped
        Transmit: 13969 packets, 39 errors, 1639818 bytes, 0 mcasts, 0 dropped
        Collisions: 0
Last edited 4 months ago by ttcoder (previous) (diff)

comment:2 Changed 4 months ago by waddlesplash

What hrev is this?

comment:3 Changed 4 months ago by ttcoder

@waddlesplash - Running a USB thumbdrive with hrev52079 (so that my production environment remains pristine); but I can update it as needed

Changed 4 months ago by ttcoder

Attachment: syslog_sample added

when wifi goes down and then back up : mentions "firmware error", "authentication expired" and other interesting things

comment:4 Changed 4 months ago by waddlesplash

If you could try a FreeBSD 11.1 image and see if it behaves the same there, that would be helpful.

comment:5 Changed 4 months ago by waddlesplash

Also, perhaps try using the older firmware -- i.e. blacklist the existing firmware, and drop https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-3945-2.ucode into the appropriate non-packaged directory. It seems Linux still uses that firmware, anyway.

comment:6 Changed 4 months ago by waddlesplash

Try re-testing after hrev52091; I've disabled hardware AES which the FreeBSD developers suggested.

comment:7 Changed 4 months ago by pulkomandy

I'm getting linkdown/linkup notifications sometimes as well. It reconnects quite fast here but that may depend on the AP being used (unencrypted public wifi, so no WPA negociation needed).

comment:8 Changed 4 months ago by ttcoder

@waddlesplash No change with the alternate firmware in place:

But I believe this is because the alternate and base one are the same by for byte:

/boot/system/non-packaged/data/firmware/iprowifi3945> cmp iwlwifi-3945-2.ucode /boot/system/data/firmware/iprowifi3945/iwlwifi-3945-2.ucode
/boot/system/non-packaged/data/firmware/iprowifi3945> 

(ran that before the blacklisting came into effect on reboot of course)

Can't find another file for 3945 in the directory listing over at https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/

Do you remember what prompted you to think of an alternate firmware file? Maybe you actually found one and just pasted the wrong link ? I'm all setup for trying another one if we find one :-)

This is with hrev52094 so includes the AES encryption change BTW


Misc details:

I see DHCP renewals in syslog, now. Maybe there were there before and eluded me.


Trying FreeBSD on this laptop is a bit of a long shot... Maybe if there exists a "FreeBSD on USB thumbdrive" thing like exists with Haiku..

--- EDIT: found some files, experimenting, will report back soon

Last edited 4 months ago by ttcoder (previous) (diff)

comment:9 Changed 4 months ago by ttcoder

@waddlesplash so I actually was able to test, with the files below (sound right? they look legit)

Found a half dozen firmwares via http://www.intellinuxwireless.org/ : https://wireless.wiki.kernel.org/en/users/drivers/iwlegacy Had to rename the older files as they are suffixed "-1" instead of "-2" and the driver was failing to find the firmware

Test results:

  • iwlwifi-3945-ucode-15.28.1.6 : net disappears before login, exactly as in ticket #14266 (!)
  • iwlwifi-3945-ucode-15.28.1.8 : intermittent "no link"
  • iwlwifi-3945-ucode-15.28.2.8 : intermittent "no link"
  • iwlwifi-3945-ucode-15.32.2.9 : intermittent "no link"

So going back to older firmwares, things are not better.

Worst case, when beta1 comes out I could create a "franken-rev" haiku, mix and match the beta1 image with the old driver; I guess the freebsd stuff is statically linked into each driver, so that idea could work ? I'm guessing if I drop the old driver binary in place, I'll get the old driver code with the old freebsd code

EDIT:

So my updated to-do list would be:

  • frankenstein-rev
  • TrueOS (BSD)
  • static instead of DHCP
  • some SotA wpa_supplicant debugging by mmlr in ticket:9646#comment:1
Last edited 4 months ago by ttcoder (previous) (diff)

comment:10 Changed 4 months ago by waddlesplash

Milestone: R1/beta1Unscheduled

Well, if this only affects one chipset, it's probably not a huge issue then. Removing from beta1.

comment:11 Changed 11 hours ago by ttcoder

No change in hrev52539

I'm not using this older laptop all that much any more, so no biggie if browsing gets interrupted AFAIC.

FWIW I looked at the syslog 'live' and saw this when the link went down..

KERN: [iprowifi3945] (wpi) fatal firmware error
KERN: wpi_fatal_intr: invalid count field (count = 0)
KERN: [net/iprowifi3945/0] stop running, 1 vaps running
KERN: [net/iprowifi3945/0] ieee80211_new_state_locked: RUN -> INIT (nrunning 0 nscanning 0)
KERN: [net/iprowifi3945/0] down parent 
KERN: ieee80211_notify_scan_done
KERN: [net/iprowifi3945/0] ieee80211_newstate_cb: RUN -> INIT arg -1
(2 screens' worth..)

And I think there was this when it came back up

KERN: ieee80211_notify_scan_done
KERN: wlan_control: 9235, 76
KERN: ifmedia_ioctl: switching wlan to   Type: IEEE 802.11 Wireless Ethernet
KERN:   Mode: autoselect
KERN:   SubType: autoselect
KERN: wlan_control: 9234, 18
KERN: wlan_control: 9234, 7
(2 screens worth of tracing deleted)
Note: See TracTickets for help on using tickets.