如何使用pwclient从社区邮件列表获取相关补丁

news2024/10/23 5:03:02

最近在调试Qualcomm的QCA2066 WiFi 6E平台,主控处理器信息如下所示:

6nm AMD APU
CPU:Zen 2 4c/8t、2.4-3.5GHz(最高可达 448GFlops FP32)
GPU:8 RDNA 2 CUs、1.6GHz(1.6 TFlops FP32)

到这里,大家应该能猜到是那个项目,hahaha...。没错,就是如你所想的那样,Valve的最新一代Steam Deck OLED:https://store.steampowered.com/steamdeck


言归正传,回到我们的问题点。在客户的使用Steam Deck OLED的过程中,偶然间发现,Kernel会持续的打印如下的kernel trace,但是Wi-Fi还是可以正常使用,并没有影响其Wi-Fi功能。初步分析可能是一个Warning信息,但是总归有概率性会打印相关log,本着解决客户一切问题的态度,开始着手排查此问题。

May 30 18:56:25 SteamBe kernel: ------------[ cut here ]------------
May 30 18:56:25 SteamBe kernel: invalid HE MCS: bw:6, ru:6
May 30 18:56:25 SteamBe kernel: WARNING: CPU: 5 PID: 2312 at net/wireless/util.c:1501 cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211]
May 30 18:56:25 SteamBe kernel: Modules linked in: tls uinput snd_seq_dummy snd_hrtimer rfcomm snd_seq snd_seq_device michael_mic nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_tables ip6table_nat ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_mangle iptable_raw iptable_security ccm algif_aead crypto_null cbc des_generic libdes ecb uhid cmac ip6table_filter ip6_tables md4 algif_skcipher algif_hash ramoops af_alg iptable_filter bnep reed_solomon qrtr_mhi squashfs amdgpu intel_rapl_msr intel_rapl_common edac_mce_amd kvm_amd qrtr snd_acp_sof_mach snd_sof_probes snd_acp_mach ath11k_pci kvm snd_soc_dmic amdxcp ath11k irqbypass crct10dif_pclmul i2c_algo_bit qmi_helpers hci_uart crc32_pclmul snd_sof_amd_vangogh btqca polyval_clmulni polyval_generic r8153_ecm btrtl drm_exec snd_sof_amd_acp hid_multitouch btbcm mac80211 gf128mul cdc_ether snd_sof_pci gpu_sched snd_sof_xtensa_dsp ghash_clmulni_intel
May 30 18:56:25 SteamBe kernel:  drm_suballoc_helper btintel snd_hda_codec_hdmi sha512_ssse3 usbnet snd_sof drm_buddy libarc4 aesni_intel crypto_simd drm_ttm_helper snd_hda_intel snd_sof_utils cryptd mousedev joydev snd_hda_codec snd_intel_dspcfg ttm bluetooth atkbd rapl snd_hda_core cfg80211 snd_intel_sdw_acpi drm_display_helper libps2 snd_soc_max98388 wdat_wdt snd_soc_nau8821 snd_pci_acp5x sp5100_tco snd_hwdep snd_acp_config cec tpm_crb ecdh_generic pcspkr snd_soc_core snd_compress vivaldi_fmap acpi_cpufreq tpm_tis ac97_bus snd_pcm_dmaengine r8152 mii snd_pcm rfkill mmc_block video i2c_piix4 hid_steam cdc_acm snd_soc_acpi ccp mhi snd_timer ltrf216a snd ff_memless tpm_tis_core 8250_dw wmi i2c_hid_acpi industrialio soundcore i2c_hid mac_hid pkcs8_key_parser i2c_dev crypto_user dm_mod fuse loop nfnetlink zram tpm ip_tables x_tables overlay ext4 crc16 mbcache jbd2 usbhid vfat fat btrfs blake2b_generic libcrc32c crc32c_generic xor raid6_pq serio_raw extcon_steamdeck steamdeck_hwmon leds_steamdeck sdhci_pci nvme cqhci crc32c_intel sdhci
May 30 18:56:25 SteamBe kernel:  xhci_pci nvme_core i8042 xhci_pci_renesas mmc_core nvme_common serio steamdeck spi_amd
May 30 18:56:25 SteamBe kernel: CPU: 5 PID: 2312 Comm: NetworkManager Not tainted 6.5.0-valve7-1-neptune-65-gbb001cd639ba #1 2c0c0bd32b97c03c98ce17cfa084cf1c9f9be83b
May 30 18:56:25 SteamBe kernel: Hardware name: Valve Galileo/Galileo, BIOS F7G0110 04/09/2024
May 30 18:56:25 SteamBe kernel: RIP: 0010:cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211]
May 30 18:56:25 SteamBe kernel: Code: fa 02 74 4d 80 fa 01 74 51 84 d2 75 11 8b 44 84 60 eb 8a 8b 44 84 10 eb 84 40 84 f6 74 1e 48 c7 c7 3d 5e 0e c1 e8 b5 b1 4b e2 <0f> 0b 31 c0 eb a1 0f 0b 31 c0 eb 9b 0f 0b 31 c0 eb 95 8b 44 84 30
May 30 18:56:25 SteamBe kernel: RSP: 0018:ffffa0e84bbeb598 EFLAGS: 00010282
May 30 18:56:25 SteamBe kernel: RAX: 0000000000000000 RBX: ffff8c71560a3900 RCX: 0000000000000027
May 30 18:56:25 SteamBe kernel: RDX: ffff8c7371d60748 RSI: 0000000000000001 RDI: ffff8c7371d60740
May 30 18:56:25 SteamBe kernel: RBP: ffffa0e84bbeb760 R08: 0000000000000000 R09: ffffa0e84bbeb420
May 30 18:56:25 SteamBe kernel: R10: 0000000000000003 R11: ffff8c737ef7ffe8 R12: ffff8c71fa7a3f74
May 30 18:56:25 SteamBe kernel: R13: ffff8c71252e83c0 R14: 0000000000003ef0 R15: ffff8c71fa7a3ef0
May 30 18:56:25 SteamBe kernel: FS:  00007f719a307200(0000) GS:ffff8c7371d40000(0000) knlGS:0000000000000000
May 30 18:56:25 SteamBe kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
May 30 18:56:25 SteamBe kernel: CR2: 00005599344e1028 CR3: 000000016b2c8000 CR4: 0000000000350ee0
May 30 18:56:25 SteamBe kernel: Call Trace:
May 30 18:56:25 SteamBe kernel:  <TASK>
May 30 18:56:25 SteamBe kernel:  ? cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  ? __warn+0x81/0x130
May 30 18:56:25 SteamBe kernel:  ? cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  ? report_bug+0x171/0x1a0
May 30 18:56:25 SteamBe kernel:  ? prb_read_valid+0x1b/0x30
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? handle_bug+0x3a/0x70
May 30 18:56:25 SteamBe kernel:  ? exc_invalid_op+0x17/0x70
May 30 18:56:25 SteamBe kernel:  ? asm_exc_invalid_op+0x1a/0x20
May 30 18:56:25 SteamBe kernel:  ? cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  ? cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  nl80211_put_sta_rate+0x5b/0x4d0 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  nl80211_send_station+0x9ce/0x1000 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  nl80211_dump_station+0xef/0x290 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  netlink_dump+0x129/0x320
May 30 18:56:25 SteamBe kernel:  __netlink_dump_start+0x1cd/0x290
May 30 18:56:25 SteamBe kernel:  genl_family_rcv_msg_dumpit+0x110/0x120
May 30 18:56:25 SteamBe kernel:  ? __pfx_genl_start+0x10/0x10
May 30 18:56:25 SteamBe kernel:  ? __pfx_nl80211_dump_station+0x10/0x10 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  ? __pfx_genl_parallel_done+0x10/0x10
May 30 18:56:25 SteamBe kernel:  genl_rcv_msg+0x146/0x2c0
May 30 18:56:25 SteamBe kernel:  ? __pfx_nl80211_dump_station+0x10/0x10 [cfg80211 fcf90004dc54bed01f0e724730aa1704ae8671a3]
May 30 18:56:25 SteamBe kernel:  ? __pfx_genl_rcv_msg+0x10/0x10
May 30 18:56:25 SteamBe kernel:  netlink_rcv_skb+0x5b/0x110
May 30 18:56:25 SteamBe kernel:  genl_rcv+0x28/0x40
May 30 18:56:25 SteamBe kernel:  netlink_unicast+0x1a1/0x290
May 30 18:56:25 SteamBe kernel:  netlink_sendmsg+0x254/0x4d0
May 30 18:56:25 SteamBe kernel:  sock_sendmsg+0x96/0xa0
May 30 18:56:25 SteamBe kernel:  ____sys_sendmsg+0x278/0x300
May 30 18:56:25 SteamBe kernel:  ? copy_msghdr_from_user+0x7d/0xc0
May 30 18:56:25 SteamBe kernel:  ___sys_sendmsg+0x9a/0xe0
May 30 18:56:25 SteamBe kernel:  ? __fget_light+0x99/0x100
May 30 18:56:25 SteamBe kernel:  __sys_sendmsg+0x7a/0xd0
May 30 18:56:25 SteamBe kernel:  do_syscall_64+0x60/0x90
May 30 18:56:25 SteamBe kernel:  ? syscall_exit_to_user_mode+0x26/0x40
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? do_syscall_64+0x6c/0x90
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? do_syscall_64+0x6c/0x90
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? syscall_exit_to_user_mode+0x26/0x40
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  ? do_syscall_64+0x6c/0x90
May 30 18:56:25 SteamBe kernel:  ? do_syscall_64+0x6c/0x90
May 30 18:56:25 SteamBe kernel:  ? __irq_exit_rcu+0x46/0xc0
May 30 18:56:25 SteamBe kernel:  ? srso_return_thunk+0x5/0x10
May 30 18:56:25 SteamBe kernel:  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
May 30 18:56:25 SteamBe kernel: RIP: 0033:0x7f719b293e6d
May 30 18:56:25 SteamBe kernel: Code: 28 89 54 24 1c 48 89 74 24 10 89 7c 24 08 e8 2a c9 f7 ff 8b 54 24 1c 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 33 44 89 c7 48 89 44 24 08 e8 7e c9 f7 ff 48
May 30 18:56:25 SteamBe kernel: RSP: 002b:00007ffe3712c6a0 EFLAGS: 00000293 ORIG_RAX: 000000000000002e
May 30 18:56:25 SteamBe kernel: RAX: ffffffffffffffda RBX: 0000561b21172fb0 RCX: 00007f719b293e6d
May 30 18:56:25 SteamBe kernel: RDX: 0000000000000000 RSI: 00007ffe3712c6e0 RDI: 000000000000000b
May 30 18:56:25 SteamBe kernel: RBP: 00007ffe3712c770 R08: 0000000000000000 R09: 0000000000000001
May 30 18:56:25 SteamBe kernel: R10: 0000000000000003 R11: 0000000000000293 R12: 0000561b2105cc60
May 30 18:56:25 SteamBe kernel: R13: 0000561b21172fb0 R14: 00007ffe3712c9bc R15: 0000561b21037b70
May 30 18:56:25 SteamBe kernel:  </TASK>
May 30 18:56:25 SteamBe kernel: ---[ end trace 0000000000000000 ]---

好巧不巧,我们在排查此问题的过程中,发现Kernel社区邮件列表里面已经有此问题的相关patch,并且状态是Accepted。那这不就是得来全不费工夫嘛,我们直接应用相关patch即可(具体patch内容我们这里就不做更多的解释,一看便知):
[2/2] wifi: cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he() - Patchwork

以前在社区邮件列表找到patch,我们都是通过网页直接下载,本着学习的态度,我们多尝试其他方法。这里介绍下pwclientrc这个工具的使用方法。


Pwclient安装和使用指导

Pwclient is the command-line client for Patchwork. Currently, it provides access to some read-only features of Patchwork, such as downloading and applying patches. The pwclient program: GitHub - getpatchwork/pwclient: The command-line client for the patchwork patch tracking tool

1. 安装相关依赖

在安装pwclient之前,需要先安装相关依赖。此示例是基于Ubuntu 18.04的环境。

1.1 安装"python"

sudo apt install python3

Note: 这里最好使用python3.8以上的版本,因为使用"importlib_metadata"模块。因为这个模块在Python 3.8及更高版本中是内置的,但对于Python 2.7和早期的Python 3版本,需要手动安装。

1.2 安装"pip3"

sudo apt install python3-pip

1.3 安装"importlib_metadata"

pip3 install importlib_metadata

2. 安装"pwclient"

git clone https://github.com/getpatchwork/patchwork
cd patchwork
sudo python setup.py install

3. 配置"pwclient"

pwclient需要一个配置文件来指定Patchwork服务器和项目。你可以在~/.pwclientrc文件中配置,例如:

[options]
default=linux-wireless

[linux-wireless]
backend = xmlrpc
url = https://patchwork.kernel.org/xmlrpc/

4. 使用"pwclient"

4.1 检索补丁

xx@q-PowerEdge-R740xd:~$ pwclient search "cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he()"
ID      State        Name
--      -----        ----
13687774 Accepted     [2/2] wifi: cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he()

4.2 获取补丁

pwclient get <patch id>

xx@q-PowerEdge-R740xd:~$ pwclient get 13687774  
Saved patch to 2-2-wifi-cfg80211-handle-2x996-RU-allocation-in-cfg80211_calculate_bitrate_he.patch

4.3 应用补丁

git am xx.patch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1844386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat配置详解

文章目录 一、配置文件介绍配置文件日志文件 二、组件组件分层和分类核心组件Tomcat处理请求过程URL对应关系 三、部署java程序手动部署搭建博客状态页 四、常见配置详解tomcat端口号安全配置管理虚拟主机配置Context配置 四、Tomcat Nginx动静分离 一、配置文件介绍 配置好环…

代码讲解——ssm+jsp+maven项目目录结构说明

1 applicationContext.xml 应用上下文配置 2 db.properties 数据库配置 3 log4j.properties日志配置 4 mybatis-config.xml mybatis配置 5 springmvc.xml springmvc配置

【ai】tx2-nx:安装深度学习环境及4.6对应pytorch

参考:https://www.waveshare.net/wiki/Jetson_TX2_NX#AI.E5.85.A5.E9.97.A8 英伟达2021年发布的的tritionserver 2.17 版本中,backend 有tensorflow1 和 onnxruntime ,他们都是做什么用的,作为backend 对于 triton 推理server意义是什么,是否应该有pytorch? Triton Infer…

新版二开微信发卡小程序源码卡密系统/支持流量主

新版二开微信发卡小程序源码卡密系统支持流量主。裂变扩展多种领取模式二次开发的发卡小程序源码&#xff0c;其后台采用PHP编写&#xff0c;支持用户通过付费购卡或者观看视频广告领取卡密。 该小程序还支持流量主&#xff0c;因为功能需要&#xff0c;就进行了二开&#xff…

LeetCode 热题100 --哈希

哈希 哈希&#xff0c;有限空间映射一个无限的空间。在空间内&#xff0c;有序化进行快速查询。 用空间换时间。 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组…

如何使用ChatGPT辅助设计工作

文章目录 设计师如何使用ChatGPT提升工作效率&#xff1f;25个案例告诉你&#xff01;什么是 prompt&#xff1f;咨询信息型 prompt vs 执行任务 prompt编写出色 prompt 的基本思路撰写 prompt 的案例和技巧1、将 ChatGPT 视作专业人士2、使用 ChatGPT 创建表单3、使用 ChatGPT…

论文学习 Learning Robust Representations via Multi-View Information Bottleneck

Code available at https://github.com/mfederici/Multi-View-Information-Bottleneck 摘要&#xff1a;信息瓶颈原理为表示学习提供了一种信息论方法&#xff0c;通过训练编码器保留与预测标签相关的所有信息&#xff0c;同时最小化表示中其他多余信息的数量。然而&#xff0…

驶向未来,智慧加油新体验——我们的加油App开发之旅

一、引言 在数字化与智能化交织的时代&#xff0c;每一次出行都呼唤着更加高效、便捷的服务。为了满足广大车主对加油服务的更高需求&#xff0c;我们倾力打造了一款创新的加油App&#xff0c;旨在为您的驾驶生活带来前所未有的智慧新体验。 二、洞察需求&#xff0c;创新服务…

torch.optim 之 Algorithms (Implementation: for-loop, foreach, fused)

torch.optim的官方文档 官方文档中文版 一、Implementation torch.optim的官方文档在介绍一些optimizer Algorithms时提及它们的implementation共有如下三个类别&#xff1a;for-loop, foreach (multi-tensor), and fused。 Chat-GPT对这三个implementation的解释是&#xf…

光伏设计需要设计哪些方面?

光伏设计是一项复杂而关键的工作&#xff0c;它涉及到多个方面的综合考虑&#xff0c;以确保光伏系统的效率、安全性和可持续性。下面将详细探讨光伏设计需要设计的几个方面。 一、系统规模与布局 光伏设计的首要任务是确定系统的规模和布局。这包括评估安装地点的光照资源、可…

工业智能网关如何与设备连接?天拓四方

随着工业4.0时代的来临&#xff0c;智能化、自动化已成为工业生产的标配。在这样的背景下&#xff0c;工业智能网关应运而生&#xff0c;成为连接工业设备、实现数据交互与管理的关键节点。本文将阐述工业智能网关如何与设备连接&#xff0c;旨在为读者提供一套清晰、实用的解决…

实现Hexo新建博文时自带随机默认封面

文章目录 1. Hexo模版2. 准备封面和缩略图3. 新建博文脚本windowsLinux 4. 效果展示 前提是选择的主题在Front-matter中支持cover和thumbnail&#xff0c;主题之间对于这两个属性的定义可能并不用&#xff0c;如果不适用&#xff0c;只需要根据逻辑修改脚本即可。 1. Hexo模版…

python爬虫之selenium自动化操作

python爬虫之selenium自动化操作 需求&#xff1a;操作淘宝去掉弹窗广告搜索物品后进入百度回退又前进 selenium模块的基本使用 问题&#xff1a;selenium模块和爬虫之间具有怎样的关联? 1、便捷的获取网站中动态加载的数据 2、便捷实现模拟登录 什么是selenium模块&#x…

视频去水印,视频去水印软件

有时候我们在网上下载了一些喜欢的视频&#xff0c;但是却发现上面有水印&#xff0c;影响观看体验。今天我就来教大家一个轻松去除视频水印的简单的方法。 一、使用专业视频编辑软件去水印 市面上有很多专业的视频编辑软件&#xff0c;如Adobe Premiere Pro&#xff0c;它们都…

通过python代码将html文件另存为xlsx文件

通过python实现办公流程自动化&#xff0c;经常遇到从网页上下载的excel文件为html格式的表格&#xff08;或者后缀为xls/xlsx&#xff0c;实际依旧为html格式&#xff09;&#xff0c;无法通过python处理文件数据&#xff0c;比如合并excel文件&#xff0c;此时就需要将文件另…

Element-ui中Table表格无法显示

Element-ui中Table表格无法显示 在使用过程中发现样式正常显示但是table就是不显示&#xff0c;研究了一段时间后&#xff0c;发现问题是项目结构的问题 当你创建vue和安装el的时候&#xff0c;一定要注意进入到正确的项目文件夹&#xff0c;如果在外面也出现一个package.jso…

神经网络模型---LeNet-5

一、LeNet-5 1.定义LeNet-5模型 model models.Sequential([1.1添加一个二维卷积层&#xff0c;有6个过滤器&#xff0c;每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素&#xff0c;具有1个颜色通道,激活函数是relu layers.Conv2D(6, (5, 5), activationrelu, input_shape…

甘肃传统面点苦豆饼,你是否有吃过?

苦豆饼&#xff0c;作为甘肃平凉的特色美食之一&#xff0c;以其独特的制作工艺和别具一格的口味&#xff0c;成为了众多美食爱好者的心头好。食家巷苦豆饼的制作过程十分讲究。选用优质的面粉和苦豆粉&#xff0c;经过精心调制和揉面&#xff0c;使面团达到最佳的韧性和口感。…

HTML(15)——盒子模型

盒子模型组成 内容区域 -width&height内边距-padding &#xff08;出现在内容与盒子边缘之间&#xff09;边框线-border外边距-margin &#xff08;出现在盒子外面&#xff09; div { width: 200px; height: 200px; background-color: rgb(85, 226, 193); padding: 20px; …

OpenNJet应用教程

下载安装包 注意点&#xff1a;查看系统版本、服务器有没有连接外网、对应账号权限够不够 1、查看操作系统版本 cat /etc/os-release 下载完成后使用ll命令查看下载情况 因网络传输等问题&#xff0c;造成下载错误&#xff0c;再次下载后的安装包会被重命名 rpm安装 通过服…