<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[【网络专题1】Tina Wi-Fi模组移植_实践篇]]></title><description><![CDATA[<p dir="auto">大家好，我是三颗芋圆，始于LWIP,陷于TCP/IP，忠于80211。<br />
终于迎来了第一个专题：Wi-Fi模组移植，本次专题将介绍如何在Tina上移植一款Wi-Fi模组，从理论到实操移植XR829详细介绍。<br />
避免篇幅太长，分成了前导篇，理论篇，实践篇。</p>
<p dir="auto"><strong>实践篇</strong><br />
这里我将以 XR829 为例子详细介绍模组适配的全过程。</p>
<pre><code>主控：D1
无线模组：XR829
内核版本：linux-5.4
方案：d1_nezha-tina
</code></pre>
<p dir="auto">按照理论篇的5个步骤来操作<br />
<strong>1. 内核驱动适配</strong><br />
内核驱动适配分为如下四个步骤：<br />
• 获取源码。<br />
• 添加 Kconfig 和 Makefile 配置。<br />
• make kernel_menuconfig 配置。<br />
• 编译。<br />
1）获取 xr829 驱动源码，放到内核驱动路径下。客户可以从一号通账号获取。</p>
<pre><code>tina/lichee/linux-5.4/drivers/net/wireless/xr829/
├── include
├── Kconfig
├── Makefile
├── umac
└── wlan
</code></pre>
<p dir="auto">2）内核添加 Kconfig 和 Makefile 的配置。<br />
tina/lichee/linux-5.4/drivers/net/wireless/Kconfig 文件中引入 XR829 驱动的 Kconfig 配 置</p>
<pre><code>source "drivers/net/wireless/xr829/Kconfig"
</code></pre>
<p dir="auto">tina/lichee/linux-5.4/drivers/net/wireless/Makefile 文件中引入 XR829 驱动的 Makefile配置</p>
<pre><code>obj-$(CONFIG_XR829_WLAN) += xr829/
</code></pre>
<p dir="auto">3）make kernel_menuconfig 配置<br />
在 tina/lichee/linux-5.4 内核目录执行 m kernel_menuconfig<br />
<strong>a. XR829 驱动的配置</strong></p>
<pre><code>&gt; Device Drivers &gt; Network device support &gt; Wireless LAN
&lt;M&gt; XR829 WLAN support
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640940202501-4e36f67c-e21b-4d67-b61d-945031e390ed-image.png" alt="4e36f67c-e21b-4d67-b61d-945031e390ed-image.png" class=" img-responsive img-markdown" width="785" height="418" /><br />
<strong>b. sunxi-rf 的配置</strong></p>
<pre><code>&gt; Device Drivers &gt; Misc devices
&lt;*&gt; Allwinner rfkill driver
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640940251985-269357dd-0e57-4f9a-96df-d9fc38feee18-image.png" alt="269357dd-0e57-4f9a-96df-d9fc38feee18-image.png" class=" img-responsive img-markdown" width="796" height="424" /><br />
<strong>c. SDIO 的配置</strong></p>
<pre><code>&gt; Device Drivers &gt; MMC/SD/SDIO card support
&lt;*&gt; Allwinner sunxi SD/MMC Host Controller support ---&gt;
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640940292436-822f769e-9fdc-4e67-93b8-c9f77fb8b9a0-image.png" alt="822f769e-9fdc-4e67-93b8-c9f77fb8b9a0-image.png" class=" img-responsive img-markdown" width="791" height="423" /><br />
4) 编译<br />
在 tina/lichee/linux-5.4 内核目录执行 mkernel 进行编译</p>
<pre><code>tina/lichee/linux-5.4]$ mkernel
tina/lichee/linux-5.4/drivers/net/wireless/xr829/
├── include
├── Kconfig
├── Makefile
├── modules.order
├── umac
├── wlan
├── xr829.ko //正常编译出xr829.ko模块
├── xr829.mod
├── xr829.mod.c
├── xr829.mod.o
└── xr829.o
</code></pre>
<p dir="auto"><strong>2. 硬件资源适配</strong><br />
在 tina/device/config/chips/r528/configs/evb1/linux/board.dts中添加引脚配置</p>
<pre><code> wlan_pins_a:wlan@0 {
 pins = "PG11";
 function = "clk_fanout1"; //这里涉及一个特殊处理，该方案的32k采用PG11复用给出 
 };
 ... 
rfkill: rfkill@0 {
 compatible = "allwinner,sunxi-rfkill";
 chip_en;
 power_en;
 pinctrl-0 = &lt;&amp;wlan_pins_a&gt;;
 pinctrl-names = "default";
 status = "okay";
 wlan: wlan@0 {
 compatible = "allwinner,sunxi-wlan";
 clock-names = "32k-fanout1";
 clocks = &lt;&amp;ccu CLK_FANOUT1_OUT&gt;; wlan_busnum = &lt;0x1&gt;; 
 wlan_regon = &lt;&amp;pio PE 17 GPIO_ACTIVE_HIGH&gt;;
 wlan_hostwake = &lt;&amp;pio PG 10 GPIO_ACTIVE_HIGH&gt;;
 /*wlan_power = "VCC-3V3";*/
 /*wlan_power_vol = &lt;3300000&gt;;*/ 
 /*interrupt-parent = &lt;&amp;pio&gt;;*/
 /*interrupts = &lt; PG 10 IRQ_TYPE_LEVEL_HIGH&gt;;*/
 wakeup-source; 
 };
 ... 
 };
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640940588464-bd2f9a49-23df-4682-9a2d-a6c81f455b79-image.png" alt="bd2f9a49-23df-4682-9a2d-a6c81f455b79-image.png" class=" img-responsive img-markdown" width="646" height="509" /><br />
注意：以上所有项必须参看原理图进行配置，配置与原理图实际使用的资源保持一致；最好是和硬件同事一起确认，比如有些设计供电可能是没有 axp 的，硬件直接供电了，所以不需要配置，特别注意的就是 sdio 的配置。<br />
<img src="/assets/uploads/files/1640940627894-99b0ec49-e833-45d2-8c0a-cc0dfbc2360f-image.png" alt="99b0ec49-e833-45d2-8c0a-cc0dfbc2360f-image.png" class=" img-responsive img-markdown" width="613" height="312" /><br />
<strong>3. 方案 module 适配</strong><br />
在 tina/target/allwinner/r528-common/modules.mk 中添加模块配置</p>
<pre><code>define KernelPackage/net-xr829-40M
SUBMENU:=$(WIRELESS_MENU)
TITLE:=xr829 support (staging)
DEPENDS:= +xr829-firmware +@IPV6 +@XR829_USE_40M_SDD +@USES_XRADIO +@PACKAGE_xr829-rftest
KCONFIG:=\
CONFIG_XR829_WLAN=m \
CONFIG_PM=y\
CONFIG_BT=y \
CONFIG_BT_BREDR=y \
CONFIG_BT_RFCOMM=y \
CONFIG_BT_RFCOMM_TTY=y \
CONFIG_BT_DEBUGFS=y \
CONFIG_XR_BT_LPM=y \
CONFIG_XR_BT_FDI=y \
CONFIG_BT_HCIUART=y \
CONFIG_BT_HCIUART_H4=y \
CONFIG_HFP_OVER_PCM=y \
CONFIG_RFKILL=y \
CONFIG_RFKILL_PM=y \
CONFIG_RFKILL_GPIO=y
#FILES:=$(LINUX_DIR)/drivers/net/wireless/xr829/wlan/xradio_core.ko
#FILES+=$(LINUX_DIR)/drivers/net/wireless/xr829/wlan/xradio_wlan.ko
#FILES+=$(LINUX_DIR)/drivers/net/wireless/xr829/umac/xradio_mac.ko
#AUTOLOAD:=$(call AutoProbe, xradio_mac xradio_core xradio_wlan)
FILES:=$(LINUX_DIR)/drivers/net/wireless/xr829/xr829.ko
AUTOLOAD:=$(call AutoProbe, xr829)
endef
define KernelPackage/net-xr829-40M/description
Kernel modules for xr829 support
endef
$(eval $(call KernelPackage,net-xr829-40M))
</code></pre>
<p dir="auto">几点说明：<br />
DEPENDS：Tina包依赖配置<br />
KCONFIG：内核依赖配置<br />
FILES：内核模块路径<br />
一般不需要用户自己适配，可以自己从已经适配过的方案的modules.mk中拷贝过来就好，也可以直接拷贝这段代码。<br />
注意：XR829分为40M和24M晶振，如果是24M晶振建议用下面的配置做区分。</p>
<pre><code>define KernelPackage/net-xr829
SUBMENU:=$(WIRELESS_MENU)
TITLE:=xr829 support (staging)
DEPENDS:= +xr829-firmware +@IPV6 +@USES_XRADIO +@PACKAGE_xr829-rftest +@PACKAGE_xr829-
rftest
KCONFIG:=\
CONFIG_XR829_WLAN=m \
CONFIG_PM=y\
CONFIG_BT=y \
CONFIG_BT_BREDR=y \
CONFIG_BT_RFCOMM=y \
CONFIG_BT_RFCOMM_TTY=y \
CONFIG_BT_DEBUGFS=y \
CONFIG_XR_BT_LPM=y \
CONFIG_XR_BT_FDI=y \
CONFIG_BT_HCIUART=y \
CONFIG_BT_HCIUART_H4=y \
CONFIG_HFP_OVER_PCM=y \
CONFIG_RFKILL=y \
CONFIG_RFKILL_PM=y \
CONFIG_RFKILL_GPIO=y
#FILES:=$(LINUX_DIR)/drivers/net/wireless/xr829/wlan/xradio_core.ko
#FILES+=$(LINUX_DIR)/drivers/net/wireless/xr829/wlan/xradio_wlan.ko
#FILES+=$(LINUX_DIR)/drivers/net/wireless/xr829/umac/xradio_mac.ko
#AUTOLOAD:=$(call AutoProbe, xradio_mac xradio_core xradio_wlan)
FILES+=$(LINUX_DIR)/drivers/net/wireless/xr829/xr829.ko
AUTOLOAD:=$(call AutoProbe, xr829)
endef
define KernelPackage/net-xr829/description
Kernel modules for xr829 support
endef
$(eval $(call KernelPackage,net-xr829))
</code></pre>
<p dir="auto">接着在 tina 根目录执行 m menuconfig 就可以看到新添加的模组</p>
<pre><code>make menuconfig
&gt; Kernel modules &gt; Wireless Drivers
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640940762933-c49be49f-5115-4a1b-9c1a-cf5c52c6001e-image.png" alt="c49be49f-5115-4a1b-9c1a-cf5c52c6001e-image.png" class=" img-responsive img-markdown" width="607" height="323" /></p>
<p dir="auto"><strong>4. 添加 Firmware</strong><br />
在 tina/package/firmware/linux-firmware/添加 xr829 需要的 firmware</p>
<pre><code>tina/package/firmware/linux-firmwarexr829/
├── boot_xr829.bin //启动相关bin
├── etf_xr829.bin //etf测试工具相关bin
├── fw_xr829_40M.bin //wifi固件40M晶振需要的bin
├── fw_xr829.bin //wifi固件24M晶振需要的bin
├── fw_xr829_bt_40M.bin //bt固件40M晶振需要的bin
├── fw_xr829_bt.bin //bt固件24M晶振需要的bin
├── sdd_xr829_40M.bin //功率配置40M晶振的bin
├── sdd_xr829.bin //功率配置24M晶振的bin
└── xr829.mk //Makefile文件
</code></pre>
<p dir="auto">说明：功能调试阶段 wifi 只需要关注 boot_xr829.bin，fw_xr829.bin,sdd_xr829.bin。这些文件的获取一般伴随 xr829 产品包一起释放。<br />
注意：一定要区分 24M 晶振和 40M 晶振</p>
<pre><code>Package/xr829-firmware = $(call Package/firmware-default,Xradio xr829 firmware)
PKG_CONFIG_DEPENDS +=CONFIG_XR829_USE_40M_SDD
define Package/xr829-firmware/install
$(INSTALL_DIR) $(1)/$(FIRMWARE_PATH)
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/boot_xr829.bin $(1)
/$(FIRMWARE_PATH)/boot_xr829.bin
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/etf_xr829.bin $(1)/
$(FIRMWARE_PATH)/etf_xr829.bin
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/fw_xr829.bin $(1)/$
(FIRMWARE_PATH)/fw_xr829.bin
ifeq ($(CONFIG_XR829_USE_40M_SDD), y)
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/sdd_xr829_40M.bin
$(1)/$(FIRMWARE_PATH)/sdd_xr829.bin
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/fw_xr829_bt_40M.bin
$(1)/$(FIRMWARE_PATH)/fw_xr829_bt.bin
else
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/sdd_xr829.bin $(1)/
$(FIRMWARE_PATH)/sdd_xr829.bin
$(INSTALL_DATA) $(TOPDIR)/package/firmware/linux-firmware/xr829/fw_xr829_bt.bin
$(1)/$(FIRMWARE_PATH)/fw_xr829_bt.bin
endif
endef
$(eval $(call BuildPackage,xr829-firmware))
</code></pre>
<p dir="auto">说明：可以看到整个 Makefile 文件就只是做了简单的拷贝动作。<br />
注意：一般 firmware 的路径是：系统的/lib/firmware/, 如果更改请确保是否和驱动中定义的保持一致，最新版驱动已经自适应寻找路径了, 早期的驱动版本一定要留意。<br />
驱动中定义 firmware 文件为：xr829/wlan/etf.h</p>
<pre><code>#ifdef USE_VFS_FIRMWARE
#define XR829_ETF_FIRMWARE ("/system/vendor/etc/firmware/etf_xr829.bin")
#else
#define XR829_ETF_FIRMWARE ("etf_xr829.bin")
#endif
xr829/wlan/fwio.h
#ifdef USE_VFS_FIRMWARE
#define XR829_BOOTLOADER ("/system/vendor/etc/firmware/boot_xr829.bin")
#define XR829_FIRMWARE ("/system/vendor/etc/firmware/fw_xr829.bin")
#define XR829_SDD_FILE ("/system/vendor/etc/firmware/sdd_xr829.bin")
#else
#define XR829_BOOTLOADER ("boot_xr829.bin")
#define XR829_FIRMWARE ("fw_xr829.bin")
#define XR829_SDD_FILE ("sdd_xr829.bin")
#endif
</code></pre>
<p dir="auto">接着在 tina 根目录执行 m menuconfig 就可以看到新添加的 firmware 配置</p>
<pre><code>&gt; Firmware
-*- xr829-firmware..................................... Xradio xr829 firmware
(/lib/firmware/) Firmware's directory //如想临时配置修改也可以改这里的路径
-*- xr829 with 40M sdd
</code></pre>
<p dir="auto">(注意：晶振 24M 和 40M 的区分，根据实际硬件选择)<br />
<img src="/assets/uploads/files/1640940989017-38bff7c8-f597-48c5-9ce9-c6b16b1a87d6-image.png" alt="38bff7c8-f597-48c5-9ce9-c6b16b1a87d6-image.png" class=" img-responsive img-markdown" width="610" height="324" /><br />
<strong>5. 应用工具适配</strong><br />
1）wifimanager 配置</p>
<pre><code>make menuconfig
&gt; Allwinner &gt; wifimanager
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941032709-6115849d-b115-4837-b21a-6a30a968fd68-image.png" alt="6115849d-b115-4837-b21a-6a30a968fd68-image.png" class=" img-responsive img-markdown" width="613" height="115" /><br />
2）smartlinkd 配网配置</p>
<pre><code>make menuconfig
&gt; Allwinner &gt; smartlinkd
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941065935-ac527c11-15ac-4cb9-b609-d2f414d18f25-image.png" alt="ac527c11-15ac-4cb9-b609-d2f414d18f25-image.png" class=" img-responsive img-markdown" width="614" height="99" /><br />
3）softap 配置</p>
<pre><code>make menuconfig
&gt; Allwinner &gt; softap
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941098251-eaeb873c-616c-46ec-851c-f2116c4efba0-image.png" alt="eaeb873c-616c-46ec-851c-f2116c4efba0-image.png" class=" img-responsive img-markdown" width="608" height="102" /><br />
4）rf 工具配置<br />
在 tina/package/utils/rftest 目录下添加 xr829 的 RF 测试工具（一般都会随产品包释放）</p>
<pre><code>tina/package/utils/rftest/xr829/
└── etf
├── btetf_1.4.0
├── btetf_riscv_1.0.5
├── etf
├── etf_riscv_1.4.0
└── xrbt_testmode_1.4.0
</code></pre>
<p dir="auto">在 tina/package/utils/rftest/Makefile 中添加</p>
<pre><code>define Package/xr829-rftest
$(Package/$(PKG_NAME)/Default)
TITLE:=xr829 rf test tools
endef
define Package/xr829-rftest/description
$(call Package/$(PKG_NAME)/description/Default)
endef
define Package/xr829-rftest/install
$(INSTALL_DIR) /$(1)/usr/bin
ifeq ($(TARGET_ARCH), riscv)
$(INSTALL_BIN) ./xr829/etf/etf_riscv_1.4.0 /$(1)/usr/bin/etf
$(INSTALL_BIN) ./xr829/etf/btetf_riscv_1.0.5 /$(1)/usr/bin/btetf
else
$(INSTALL_BIN) ./xr829/etf/btetf_1.4.0 /$(1)/usr/bin/btetf
$(INSTALL_BIN) ./xr829/etf/etf /$(1)/usr/bin/etf
$(INSTALL_BIN) ./xr829/etf/xrbt_testmode_1.4.0 /$(1)/usr/bin/xrbt_testmode
endif
endef
$(eval $(call BuildPackage,xr829-rftest))
</code></pre>
<pre><code>make menuconfig
&gt; Utilities &gt; rf test tool
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941157629-44117c8e-accd-4c40-82b6-aeaf414622aa-image.png" alt="44117c8e-accd-4c40-82b6-aeaf414622aa-image.png" class=" img-responsive img-markdown" width="607" height="105" /><br />
5）iperf 工具配置</p>
<pre><code>make menuconfig
&gt; Network
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941194596-37d834c3-b1dd-41b4-96d9-83260d8322d4-image.png" alt="37d834c3-b1dd-41b4-96d9-83260d8322d4-image.png" class=" img-responsive img-markdown" width="612" height="166" /><br />
6）wpa 工具配置<br />
wpa 工具包括 wpa-supplicant 服务的和 wpa-cli 客户端</p>
<pre><code>make menuconfig
&gt; Network
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1640941227797-1d8facb1-a8d1-4ae3-88e4-c5bbde0c4d7b-image.png" alt="1d8facb1-a8d1-4ae3-88e4-c5bbde0c4d7b-image.png" class=" img-responsive img-markdown" width="613" height="274" /></p>
<p dir="auto"><strong>6. 测试验证</strong><br />
wifi 的基础功能可以通过下面的步骤进行验证:<br />
• 加载 wifi 驱动，启动 wpa_supplicant<br />
• 扫描测试<br />
• 联网测试<br />
• 查看 ip 地址<br />
• ping 百度测试</p>
<p dir="auto"><strong>6.1 加载 wifi 驱动，启动 wpa_supplicant</strong><br />
1). 系统上电后使用 insmod 命令加载驱动，使用 lsmod 查看驱动是否已经加载成功。部分系统已经使用自动化脚本自动加载不需手动加载。</p>
<p dir="auto">2). 确保 wpa_supplicant 是否起来，使用 ps 命令查看wpa_supplicant 是否起来，大部分系统由自动化脚本启动，没有启动的可以手动启动。</p>
<p dir="auto">3). 使用 wifimanager 进行测试，Tina 系统提供了一套测试 wifi 用的测试 demo(wifimanager)，wifimanager 是封装了 wpa_cli 的一套接口但使用更简单。用户可以使用这套测试 demo 来进行测试，下面只介绍 2 个 demo 其他 demo 可以参考 wifimanager 的使用说明文档。</p>
<p dir="auto"><strong>6.2 扫描测试</strong><br />
wifi_scan_results_test 是 wifimanager 用于扫描 AP 用的，在控制台中输入该命令后有以下类似打印说明扫描功能正常。</p>
<pre><code>fa:8c:21:2f:2d:98 5240 -64 [WPA2-PSK-CCMP][WPA2-PSK-CCMP][ESS] NNN
f2:c5:d3:02:df:97 5180 -65 [WPA2-PSK-CCMP][ESS] nnn
7c:b5:9b:3b:2b:45 5765 -57 [WPA2-PSK-CCMP][ESS] XXX
fa:8c:21:2f:2d:96 2417 -58 [WPA2-PSK-CCMP][ESS] xxx
</code></pre>
<p dir="auto"><strong>6.3 联网测试</strong><br />
使用命令 wifi_connect_ap_test 命令可以进行联网测试。该命令是 wifimanager 用于连接 AP用的，使用方法如下：</p>
<pre><code>wifi_connect_ap_test ssid passwd (例如：wifi_connect_ap_test AWTest 1qaz@WSX)
连接成功会有 connect success 的 log 出现。
</code></pre>
<p dir="auto"><strong>6.4 查看 ip 地址</strong><br />
使用 ifconfig 命令可以查看到获取到的 ip 值，该命令是标准命令，更详细说明请百度。</p>
<p dir="auto"><strong>6.5 ping 百度测试</strong><br />
即使获取到了 ip 地址也不能说明基本功能已通，一般使用 ping 命令去进行测试 (前提 AP 是能连外网的)ping 百度测试：</p>
<pre><code>ping www.baidu.com
</code></pre>
<p dir="auto">如果出现下面类似的 log，说明网络基本功能已通</p>
<pre><code>PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=56 time=10.5 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=56 time=11.8 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=3 ttl=56 time=10.7 ms
</code></pre>
<p dir="auto">至此【网络专题1】就分享完了，希望对大家有一定的帮助。</p>
<p dir="auto">今天是2021最后一天，辞旧迎新，祝大家新年快乐，身体健康，阖家幸福！</p>
]]></description><link>https://bbs.aw-ol.com/topic/895/网络专题1-tina-wi-fi模组移植_实践篇</link><generator>RSS for Node</generator><lastBuildDate>Mon, 11 May 2026 06:02:58 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/895.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Dec 2021 09:16:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 【网络专题1】Tina Wi-Fi模组移植_实践篇 on Wed, 15 Jun 2022 10:30:24 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://bbs.aw-ol.com/uid/83">@rcfly</a> 能否分享下你的XR829驱动呢，目前我移植的老是发现cmd53接收不到东西</p>
]]></description><link>https://bbs.aw-ol.com/post/7834</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/7834</guid><dc:creator><![CDATA[Jacky502]]></dc:creator><pubDate>Wed, 15 Jun 2022 10:30:24 GMT</pubDate></item></channel></rss>