Summary: | =sys-kernel/linux-firmware-20191215 with =sys-kernel/gentoo-sources-4.19.86 - iwlwifi: iwl_trans_send_cmd bad state = 0 // expected hw-decrypted unicast frame for station | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Gabriele Svelto <gabriele.svelto> |
Component: | Current packages | Assignee: | Chí-Thanh Christopher Nguyễn <chithanh> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | kernel, zerochaos |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Gabriele Svelto
2019-12-28 13:33:43 UTC
For anybody else affected a quick workaround is to add: =sys-kernel/linux-firmware-20191215 To /etc/portage/package.mask FYI after using the workaround in comment 1 for some time I realized that it doesn't fully solve the issue. It just makes it a lot less likely: I recorded a single error in 8 hours of uptime versus a few dozens with the more recent linux-firmware package. In order to find a stable solution I tried a kernel which contains the upstream fix. I'm now using =sys-kernel/gentoo-sources-5.4.6 and =linux-firmware-20191215 with this kernel configuration: https://setphaserstostun.org/config-5.4 This seems to work; I haven't found any iwlwifi-related error messages in the kernel log for the past few hours and the connection has been stable, delivering 100Mbps of bandwidth for sustained periods. (In reply to Gabriele Svelto from comment #0) > Expected Results: > The iwlwifi driver in the stable sources works properly with the > linux-firmware blobs I'm sorry to tell you, but we will never be able to meet your expectations: The problem is, that firmware and kernel must be in sync (=compatible). However, Gentoo is a rolling release and we don't know which kernel version you are using. We don't know if we need to deliver latest firmware bits sometimes requiring latest kernel or penultimate version because you are running still supported kernel from 2016 (4.4 or 4.9) for example. This is something only user can solve. We know that this is a challenging problem but we don't have a solution: At the moment, linux-firmware is a giant package containing firmwares for hundreds of different devices. User can easily run into situation where you want old firmware for wifi but latest AMD microcode for example. Best solution for know is using savedconfig feature. Keep in mind: The firmware you want is probably still present in latest linux-firmware package but overshadowed by newer firmwares. However, even masking newer versions with savedconfig feature will cause own problems: You are on your own. You need to follow upstream to learn when upstream fixed a vulnerability for example or when you switch kernel version you have to remember to check installed firmwares in case you are masking a firmware version required by your new kernel. Regarding your findings: You are looking for https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=50f5604476b2bd728910b2e1803a6eafd0eeaf3d upstream. It's present in 5.3+. You didn't share any details of your wifi chip. So please ask for backport on your own (you even need to test commit from above before doing so which will require access to affected device). (In reply to Thomas Deutschmann from comment #3) > I'm sorry to tell you, but we will never be able to meet your expectations: > > The problem is, that firmware and kernel must be in sync (=compatible). > However, Gentoo is a rolling release and we don't know which kernel version > you are using. We don't know if we need to deliver latest firmware bits > sometimes requiring latest kernel or penultimate version because you are > running still supported kernel from 2016 (4.4 or 4.9) for example. I apologize but I filed the bug only because this is happening on the latest versions of gentoo-sources and linux-firmware that have been marked stable. I understand that's impossible to guarantee compatibility across all versions. Since this configuration should be common among Gentoo users (just stable packages) I thought it was worth to at least document the issue. > This is something only user can solve. We know that this is a challenging > problem but we don't have a solution: At the moment, linux-firmware is a > giant package containing firmwares for hundreds of different devices. User > can easily run into situation where you want old firmware for wifi but > latest AMD microcode for example. > > Best solution for know is using savedconfig feature. Keep in mind: The > firmware you want is probably still present in latest linux-firmware package > but overshadowed by newer firmwares. However, even masking newer versions > with savedconfig feature will cause own problems: You are on your own. You > need to follow upstream to learn when upstream fixed a vulnerability for > example or when you switch kernel version you have to remember to check > installed firmwares in case you are masking a firmware version required by > your new kernel. Thanks for the tip. > Regarding your findings: You are looking for > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ > ?id=50f5604476b2bd728910b2e1803a6eafd0eeaf3d upstream. It's present in 5.3+. > > You didn't share any details of your wifi chip. So please ask for backport > on your own (you even need to test commit from above before doing so which > will require access to affected device). Yes, I forgot, it's an Intel Wireless-AC 9260. I will try backporting the fix to 4.19.x to check if it works and then follow up with upstream. Since I found a working configuration I'm closing this. For anybody with the same problem (and the same card) one other working configuration w/o using a 5.4.x kernel is =sys-kernel/gentoo-sources-4.19.86 using the firmware version 34 (iwlwifi-9260-th-b0-jf-b0-34.ucode file in linux-firmware). |