This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:users:drivers:iwlwifi:debugging [2019/10/10 05:44] Luca Coelho [Prints] updated line number of debug bitmap |
en:users:drivers:iwlwifi:debugging [2022/05/30 08:07] (current) Johannes Berg s/Luca/Gregory/ for bug reports |
||
---|---|---|---|
Line 15: | Line 15: | ||
===== How to report? ===== | ===== How to report? ===== | ||
- | Issues can be filed in [[http://bugzilla.kernel.org|kernel's bugzilla]]. Make sure to add [[mailto:linuxwifi@intel.com|linuxwifi@intel.com]] to the bug. | + | Issues can be filed in [[http://bugzilla.kernel.org|kernel's bugzilla]]. |
+ | |||
+ | Make sure to set | ||
+ | |||
+ | * Product: Drivers | ||
+ | * Component: network-wireless-intel | ||
Always attach the kernel log to your reports: | Always attach the kernel log to your reports: | ||
<code>dmesg > dmesg.log</code> and attach dmesg.log to the bug. | <code>dmesg > dmesg.log</code> and attach dmesg.log to the bug. | ||
Line 36: | Line 42: | ||
<code>sudo trace-cmd record -e iwlwifi -e mac80211 -e cfg80211 -e iwlwifi_msg</code> | <code>sudo trace-cmd record -e iwlwifi -e mac80211 -e cfg80211 -e iwlwifi_msg</code> | ||
- | This records all the data that goes from and to the firmware. The output is a file: trace.dat which you can compress prior to sending. To enable tracing, [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/wireless/intel/iwlwifi/Kconfig#n139|CONFIG_IWLWIFI_TRACING]] must be set. | + | This records all the data that goes from and to the firmware. The output is a file: trace.dat which you can compress prior to sending. To enable tracing, [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/wireless/intel/iwlwifi/Kconfig#n139|CONFIG_IWLWIFI_DEVICE_TRACING]] must be set. |
**//Note: you must not remove the iwlwifi kernel module while tracing is running. You need to stop the tracing first!//** | **//Note: you must not remove the iwlwifi kernel module while tracing is running. You need to stop the tracing first!//** | ||
Line 44: | Line 50: | ||
The output of the air sniffing operation is a file with a pcap extension that can be parsed by the [[https://www.wireshark.org|Wireshark]] program. | The output of the air sniffing operation is a file with a pcap extension that can be parsed by the [[https://www.wireshark.org|Wireshark]] program. | ||
=== How to get a sniffer capture with your Intel device === | === How to get a sniffer capture with your Intel device === | ||
+ | To capture all A-MSDUs, you need to reload the iwlwifi driver with the ''amsdu_size=3'' module parameter. | ||
+ | |||
In order to put your device in monitor mode and get a sniffer capture, you first need to stop using it as a Wi-Fi client. To do so there are several options: | In order to put your device in monitor mode and get a sniffer capture, you first need to stop using it as a Wi-Fi client. To do so there are several options: | ||
* Disable Wi-Fi from the Network Manager GUI and re-enable manually with <code>rfkill unblock wifi </code> This may not work on all the distributions. | * Disable Wi-Fi from the Network Manager GUI and re-enable manually with <code>rfkill unblock wifi </code> This may not work on all the distributions. | ||
Line 70: | Line 78: | ||
Getting data from the firmware can often provide a lot of information, especially when the traffic is being stalled, latency is high, queues are stuck etc.. Here is how to do so. This is working starting kernel 3.19. | Getting data from the firmware can often provide a lot of information, especially when the traffic is being stalled, latency is high, queues are stuck etc.. Here is how to do so. This is working starting kernel 3.19. | ||
- | First you'll need to allow DEV_COREDUMP by setting CONFIG_ALLOW_DEV_COREDUMP to Y. | + | You'll need to allow DEV_COREDUMP by setting CONFIG_ALLOW_DEV_COREDUMP to Y. |
Then, you'll need to create a core dump. This can be done by: | Then, you'll need to create a core dump. This can be done by: | ||
Line 142: | Line 150: | ||
* Emmanuel Grumbach (18D075865D915B5E386F660F2D0B96FE6E363201); | * Emmanuel Grumbach (18D075865D915B5E386F660F2D0B96FE6E363201); | ||
* Johannes Berg (C0EBC440F6DA091C884D8532E0F373F37BF9099A); | * Johannes Berg (C0EBC440F6DA091C884D8532E0F373F37BF9099A); | ||
- | * Luciano Coelho (1772CD7E06F604F5A6EBCB26A1479CA21A3CC5FA). | + | * Gregory Greenman (F5C83636E8E2909E44319BAC083082600E73773C). |
For instance: | For instance: | ||
<code> | <code> | ||
- | gpg --recv-keys C0EBC440F6DA091C884D8532E0F373F37BF9099A 1772CD7E06F604F5A6EBCB26A1479CA21A3CC5FA 18D075865D915B5E386F660F2D0B96FE6E363201 | + | gpg --recv-keys C0EBC440F6DA091C884D8532E0F373F37BF9099A F5C83636E8E2909E44319BAC083082600E73773C 18D075865D915B5E386F660F2D0B96FE6E363201 |
- | gpg --encrypt -r 18D075865D915B5E386F660F2D0B96FE6E363201 -r C0EBC440F6DA091C884D8532E0F373F37BF9099A -r 1772CD7E06F604F5A6EBCB26A1479CA21A3CC5FA <file_to_encrypt></code> | + | gpg --encrypt -r 18D075865D915B5E386F660F2D0B96FE6E363201 -r C0EBC440F6DA091C884D8532E0F373F37BF9099A -r F5C83636E8E2909E44319BAC083082600E73773C <file_to_encrypt></code> |
This will generate a new, encrypted file that you should provide to us. Any of, and only, these developers will be able to open the file. Adding the three keys during encryption allows us to respond faster, since we're not restrained by a single developer's availability. | This will generate a new, encrypted file that you should provide to us. Any of, and only, these developers will be able to open the file. Adding the three keys during encryption allows us to respond faster, since we're not restrained by a single developer's availability. |