20251106给荣品RD-RK3588-MID开发板跑Rockchip的原厂Android13系统时适配AP6275P模块的WIFI【使用荣品的DTS】
Y:\RD-RK3588\EVB7_RD-RK3588t\device\rockchip\rk3588\BoardConfig.mk
#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig
PRODUCT_KERNEL_CONFIG += pcie_wifi.config
20251106给荣品RD-RK3588-MID开发板跑Rockchip的原厂Android13系统时适配AP6275P模块的WIFI【使用荣品的DTS】
2025/11/6 11:30
缘起:给荣品RD-RK3588-MID开发板跑Rockchip的原厂Android13系统。
但是WIFI/BT模块的AP6275P的WIFI/BT都不能打开!
一般认为是Rockchip的Android13的mk文件语法识别识别,编译内核的时候没有加载pcie_wifi.config。
结果默认配置成为AP6256了?
分开写之后就可以看,跑iperf3实测网速:55.3 Mbits/sec
Y:\EVB7_RD-RK3588t\device\rockchip\rk3588\BoardConfig.mk
PRODUCT_UBOOT_CONFIG ?= rk3588
PRODUCT_KERNEL_ARCH ?= arm64
PRODUCT_KERNEL_DTS ?= rk3588-evb1-lp4-v10
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
修改为:
PRODUCT_UBOOT_CONFIG ?= rk3588
PRODUCT_KERNEL_ARCH ?= arm64
PRODUCT_KERNEL_DTS ?= rk3588/rd-rk3588
#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig
PRODUCT_KERNEL_CONFIG += pcie_wifi.config
BOARD_PREBUILT_DTBIMAGE_DIR ?= $(PRODUCT_KERNEL_PATH)/arch/arm64/boot/dts/rockchip/rk3588
1、看内核启动,是
原厂SDK Android13:AP6256的SDIO接口
荣品RD-RK3588开发板:AP6275P的PCIE接口
[ 6.682265][ T516] rkcif-mipi-lvds4: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[ 6.682267][ T516] rkcif_scale_ch2: update sensor info failed -19
[ 6.682297][ T516] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[ 6.682299][ T516] stream_cif_mipi_id2: update sensor info failed -19
[ 6.683906][ T516] rkisp1-vir1: rkisp_enum_frameintervals Not active sensor
[ 6.683938][ T516] rkisp1-vir1: rkisp_enum_frameintervals Not active sensor
[ 6.683985][ T516] rkisp1-vir1: rkisp_enum_frameintervals Not active sensor
[ 6.684019][ T516] rkisp1-vir1: rkisp_enum_frameintervals Not active sensor
[ 6.684358][ T516] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[ 6.684361][ T516] rkcif_scale_ch1: update sensor info failed -19
[ 6.684386][ T516] rkcif-mipi-lvds4: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[ 6.684388][ T516] rkcif_scale_ch0: update sensor info failed -19
[ 6.765339][ T163] android_work: did not send uevent (0 0 0000000000000000)
[ 7.286748][ T145] Freeing drm_logo memory: 736K
[ 8.646603][ T381] [dhd] failed to power up DHD generic adapter, 0 retry left
[ 8.662673][ T381] [dhd] wifi_platform_set_power = 0, delay: 0 msec
[ 8.662680][ T381] [dhd] ======== PULL WL_REG_ON(-1) LOW! ========
[ 8.662683][ T381] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 8.662686][ T381] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 8.662689][ T381] wifi power off
[ 8.766605][ T381] [WLAN_RFKILL]: wifi shut off power [GPIO10-0]
[ 8.766619][ T381] [dhd] wifi_platform_bus_enumerate device present 0
[ 8.766623][ T381] [dhd] ======== Card detection to remove SDIO card! ========
[ 8.766626][ T381] [dhd] failed to power up DHD generic adapter, max retry reached**
[ 8.766638][ T381] [dhd] unregister wifi platform drivers
[ 8.766641][ T381] [dhd] wifi_platform_bus_enumerate device present 0
[ 8.766643][ T381] [dhd] ======== Card detection to remove SDIO card! ========
[ 8.766646][ T381] [dhd] dhd_wlan_deinit_gpio: gpio_free(WL_HOST_WAKE 0)
[ 8.766652][ T381] [dhd] _dhd_module_init: Failed to load the driver, try cnt 0
[ 8.766655][ T381] [dhd] _dhd_module_init: Failed to load driver max retry reached**
[ 8.766658][ T381] [dhd] STATIC-MSG) dhd_static_buf_exit : Enter
[ 8.766685][ T381] [dhd] _dhd_module_init: Exit err=-19
[ 9.890041][ T152] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing signal not lock, tmds_clk_ratio:0
[ 9.890053][ T152] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing mu_st:0x0, scdc_st:0x0, dma_st10:0x10
[ 10.271823][ T1] init: service 'idmap2d' requested start, but it is already running (flags: 4)
[ 10.271873][ T1] init: Control message: Processed ctl.start for 'idmap2d' from pid: 558 (system_server)
[ 10.312507][ T375] healthd: battery l=50 v=3 t=2.6 h=2 st=3 c=-1600 fc=100 chg=au

Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。
C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ # ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:175 errors:0 dropped:0 overruns:0 frame:0
TX packets:175 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78658 TX bytes:78658
dummy0 Link encap:Ethernet HWaddr 22:59:e4:91:aa:ad
inet6 addr: fe80::2059:e4ff:fe91:aaad/64 Scope: Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:350
eth0 Link encap:Ethernet HWaddr 06:85:a8:77:f7:86 Driver rk_gmac-dwmac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:102
eth1 Link encap:Ethernet HWaddr 3e:b9:e5:33:f4:91 Driver r8168
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:263 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24115 TX bytes:6418
Interrupt:191 Base address:0x3000
rk3588_t:/ #

Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。
C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ # ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:247 errors:0 dropped:0 overruns:0 frame:0
TX packets:247 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:82402 TX bytes:82402
dummy0 Link encap:Ethernet HWaddr 22:59:e4:91:aa:ad
inet6 addr: fe80::2059:e4ff:fe91:aaad/64 Scope: Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:350
eth0 Link encap:Ethernet HWaddr 06:85:a8:77:f7:86 Driver rk_gmac-dwmac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:102
ip_vti0 Link encap:UNSPEC
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
ip6_vti0 Link encap:UNSPEC
NOARP MTU:1364 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
ip6tnl0 Link encap:UNSPEC
NOARP MTU:1452 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
eth1 Link encap:Ethernet HWaddr 3e:b9:e5:33:f4:91 Driver r8168
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:263 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24115 TX bytes:6418
Interrupt:191 Base address:0x3000
rk3588_t:/ #

2、
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\.config
CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
# CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP is not set
# CONFIG_WIFI_GENERATE_RANDOM_MAC_ADDR is not set
CONFIG_BCMDHD=y
CONFIG_AP6XXX=m
CONFIG_BCMDHD_SDIO=y
# CONFIG_BCMDHD_PCIE is not set
CONFIG_BCMDHD_FW_PATH="/vendor/etc/firmware/fw_bcmdhd.bin"
CONFIG_BCMDHD_NVRAM_PATH="/vendor/etc/firmware/nvram.txt"
# CONFIG_BCMDHD_STATIC_IF is not set
# CONFIG_CYW_BCMDHD is not set
# CONFIG_INFINEON_DHD is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_VIRT_WIFI is not set
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\.config
CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
# CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP is not set
# CONFIG_WIFI_GENERATE_RANDOM_MAC_ADDR is not set
CONFIG_BCMDHD=y
CONFIG_AP6XXX=m
# CONFIG_BCMDHD_SDIO is not set
CONFIG_BCMDHD_PCIE=y
# CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION is not set
CONFIG_BCMDHD_FW_PATH="/vendor/etc/firmware/fw_bcmdhd.bin"
CONFIG_BCMDHD_NVRAM_PATH="/vendor/etc/firmware/nvram.txt"
# CONFIG_BCMDHD_STATIC_IF is not set
# CONFIG_CYW_BCMDHD is not set
# CONFIG_INFINEON_DHD is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_VIRT_WIFI is not set


3、【经验】PCIE接口的WIFI模块和SDIO接口的WIFI模块确认。
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\kernel\configs\pcie_wifi.config
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\kernel\configs\pcie_wifi.config
# CONFIG_BCMDHD_SDIO is not set
CONFIG_BCMDHD_PCIE=y


4、【内核比对一致】
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\bcmsdh_sdmmc.c
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\bcmsdh_sdmmc.c

Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\dhd_pcie.c
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\dhd_pcie.c

5、bcmdhd.ko
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t/kernel-5.10$ cd ..
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t$ find . -name bcmdhd.ko
./out/target/product/rk3588_t/vendor_dlkm/lib/modules/bcmdhd.ko
./out/target/product/rk3588_t/obj/PACKAGING/depmod_vendor_stripped_intermediates/bcmdhd.ko
./out/target/product/rk3588_t/obj/PACKAGING/depmod_VENDOR_intermediates/lib/modules/0.0/vendor/lib/modules/bcmdhd.ko
./external/wifi_driver/bcmdhd/bcmdhd.ko
./mkcombinedroot/vendor_ramdisk/lib/modules/bcmdhd.ko
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t$
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13$ find . -name bcmdhd.ko
./out/target/product/rk3588_t/vendor_dlkm/lib/modules/bcmdhd.ko
./out/target/product/rk3588_t/obj/PACKAGING/depmod_vendor_stripped_intermediates/bcmdhd.ko
./out/target/product/rk3588_t/obj/PACKAGING/depmod_VENDOR_intermediates/lib/modules/0.0/vendor/lib/modules/bcmdhd.ko
./external/wifi_driver/bcmdhd/bcmdhd.ko
./mkcombinedroot/vendor_ramdisk/lib/modules/bcmdhd.ko
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13$


Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\external\wifi_driver\bcmdhd\bcmsdh_sdmmc.c
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\external\wifi_driver\bcmdhd\bcmsdh_sdmmc.c
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\external\wifi_driver\bcmdhd\dhd_pcie.c
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\external\wifi_driver\bcmdhd\dhd_pcie.c

-rw-rw-r-- 1 jinhualong jinhualong 500472 11月 5 19:19 wl_iw.o
-rw-rw-r-- 1 jinhualong jinhualong 74697 11月 5 19:19 .wl_iw.o.cmd
-rwxrwxr-x 1 jinhualong jinhualong 11278 11月 3 11:25 wl_linux_mon.c*
-rw-rw-r-- 1 jinhualong jinhualong 289504 11月 5 19:19 wl_linux_mon.o
-rw-rw-r-- 1 jinhualong jinhualong 73590 11月 5 19:19 .wl_linux_mon.o.cmd
-rwxrwxr-x 1 jinhualong jinhualong 15956 11月 3 11:25 wl_roam.c*
-rw-rw-r-- 1 jinhualong jinhualong 371696 11月 5 19:19 wl_roam.o
-rw-rw-r-- 1 jinhualong jinhualong 76293 11月 5 19:19 .wl_roam.o.cmd
-rw-rw-r-- 1 jinhualong jinhualong 15284 11月 3 11:25 wl_timer.c
-rw-rw-r-- 1 jinhualong jinhualong 377 11月 3 11:25 wl_timer.h
-rw-rw-r-- 1 jinhualong jinhualong 284744 11月 5 19:19 wl_timer.o
-rw-rw-r-- 1 jinhualong jinhualong 73502 11月 5 19:19 .wl_timer.o.cmd
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/external/wifi_driver/bcmdhd$
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/external/wifi_driver/bcmdhd$ make clean
rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd *.mod \
Module.symvers modules.order .tmp_versions modules.builtin
#### build completed successfully ####
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/external/wifi_driver/bcmdhd$

【唯一的差异】
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\external\wifi_driver\bcmdhd\dhd_gpio.c
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\external\wifi_driver\bcmdhd\dhd_gpio.c
static int
dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter)
{
int gpio_wl_reg_on = adapter->gpio_wl_reg_on;
int err = 0;
if (on) {
printf("======== PULL WL_REG_ON(%d) HIGH! ========\n", gpio_wl_reg_on);
if (gpio_wl_reg_on >= 0) {
err = gpio_direction_output(gpio_wl_reg_on, 1);
if (err) {
printf("%s: WL_REG_ON didn't output high\n", __FUNCTION__);
return -EIO;
}
}
#ifdef CUSTOMER_HW_ROCKCHIP
rockchip_wifi_power(1);
#ifdef BCMPCIE
// rk_pcie_power_on_atu_fixup();
#endif
#endif
#ifdef BUS_POWER_RESTORE
#ifdef BCMPCIE
if (adapter->pci_dev) {
mdelay(100);
printf("======== pci_set_power_state PCI_D0! ========\n");
pci_set_power_state(adapter->pci_dev, PCI_D0);
if (adapter->pci_saved_state)
pci_load_and_free_saved_state(adapter->pci_dev, &adapter->pci_saved_state);
pci_restore_state(adapter->pci_dev);
err = pci_enable_device(adapter->pci_dev);
if (err < 0)
printf("%s: PCI enable device failed", __FUNCTION__);
pci_set_master(adapter->pci_dev);
}
#endif /* BCMPCIE */
#endif /* BUS_POWER_RESTORE */
/* Lets customer power to get stable */
} else {
#ifdef BUS_POWER_RESTORE
#ifdef BCMPCIE
if (adapter->pci_dev) {
printf("======== pci_set_power_state PCI_D3hot! ========\n");
pci_save_state(adapter->pci_dev);
adapter->pci_saved_state = pci_store_saved_state(adapter->pci_dev);
if (pci_is_enabled(adapter->pci_dev))
pci_disable_device(adapter->pci_dev);
pci_set_power_state(adapter->pci_dev, PCI_D3hot);
}
#endif /* BCMPCIE */
#endif /* BUS_POWER_RESTORE */
printf("======== PULL WL_REG_ON(%d) LOW! ========\n", gpio_wl_reg_on);
if (gpio_wl_reg_on >= 0) {
err = gpio_direction_output(gpio_wl_reg_on, 0);
if (err) {
printf("%s: WL_REG_ON didn't output low\n", __FUNCTION__);
return -EIO;
}
}
struct device_node *np = of_find_compatible_node(NULL, NULL, "rockchip,rk3399");
if (!np) {
// printk("rpdzkj:aaaaaaaa is 356x or 3588\n");
}else{
// printk("rpdzkj:bbbbbbbbb is 3399\n");
#ifdef CUSTOMER_HW_ROCKCHIP
rockchip_wifi_power(0);
#endif
}
}
return err;
}



6、比对:
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/device/rockchip/rk3588$
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/device/rockchip/rk3588$ grep pcie_wifi.config . -R
./BoardConfig.mk_bk:PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./BoardConfig.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./BoardConfig.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/rd-rk3588.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/rd-rk3588.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/rp-rk3588s.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/rp-rk3588s.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/rd-rk3588-ahd.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/rd-rk3588-ahd.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/rd-box-rk3588.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/rd-box-rk3588.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/rd-rk3588s-ahd.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/rd-rk3588s-ahd.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/nano-rk3588.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/nano-rk3588.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
./rp_boards/dr4-rk3588.mk:#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
./rp_boards/dr4-rk3588.mk:PRODUCT_KERNEL_CONFIG += pcie_wifi.config
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/device/rockchip/rk3588$


jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t/device/rockchip/rk3588$
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t/device/rockchip/rk3588$ grep pcie_wifi.config . -R
./BoardConfig.mk:PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
grep: ./.git/logs: 没有那个文件或目录
grep: ./.git/info: 没有那个文件或目录
grep: ./.git/rr-cache: 没有那个文件或目录
grep: ./.git/config: 没有那个文件或目录
grep: ./.git/packed-refs: 没有那个文件或目录
grep: ./.git/svn: 没有那个文件或目录
grep: ./.git/refs: 没有那个文件或目录
grep: ./.git/description: 没有那个文件或目录
grep: ./.git/hooks: 没有那个文件或目录
grep: ./.git/objects: 没有那个文件或目录
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t/device/rockchip/rk3588$



Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\device\rockchip\rk3588\BoardConfig.mk
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\device\rockchip\rk3588\BoardConfig.mk
PRODUCT_UBOOT_CONFIG ?= rk3588
PRODUCT_KERNEL_ARCH ?= arm64
PRODUCT_KERNEL_DTS ?= rk3588-evb1-lp4-v10
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
修改为:
PRODUCT_UBOOT_CONFIG ?= rk3588
PRODUCT_KERNEL_ARCH ?= arm64
PRODUCT_KERNEL_DTS ?= rk3588/rd-rk3588
#PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig
PRODUCT_KERNEL_CONFIG += pcie_wifi.config
BOARD_PREBUILT_DTBIMAGE_DIR ?= $(PRODUCT_KERNEL_PATH)/arch/arm64/boot/dts/rockchip/rk3588


7、核实编译结果
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t$ find . -name bcmdhd.ko
./kernel-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.ko
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t$ find . -name bcmdhd.ko
./kernel-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.ko
./external/wifi_driver/bcmdhd/bcmdhd.ko
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/EVB7_RD-RK3588t$ diff ./kernel-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.ko ./external/wifi_driver/bcmdhd/bcmdhd.ko
diff: ./kernel-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.ko: 没有那个文件或目录

你会发现kernel-5.10目录会有WIFI模块的bcmdhd.ko,但是很快就会找不到了。
难道是因为有external目录下的bcmdhd.ko,被覆盖/删除了?

可以确认pcie是被编译到了。
8、
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\.config
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\.config
CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
# CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP is not set
# CONFIG_WIFI_GENERATE_RANDOM_MAC_ADDR is not set
CONFIG_BCMDHD=y
CONFIG_AP6XXX=m
# CONFIG_BCMDHD_SDIO is not set
CONFIG_BCMDHD_PCIE=y
# CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION is not set
CONFIG_BCMDHD_FW_PATH="/vendor/etc/firmware/fw_bcmdhd.bin"
CONFIG_BCMDHD_NVRAM_PATH="/vendor/etc/firmware/nvram.txt"
# CONFIG_BCMDHD_STATIC_IF is not set
# CONFIG_CYW_BCMDHD is not set
# CONFIG_INFINEON_DHD is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_VIRT_WIFI is not set

Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\dhd_pcie.o
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd\dhd_pcie.o

Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\external\wifi_driver\bcmdhd\dhd_pcie.o
Y:\new_disk_4t\wyb\RD-RK3588\EVB7_RD-RK3588t\external\wifi_driver\bcmdhd\dhd_pcie.o


9、iperf3实测值:
Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。
C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ # ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:21843 errors:0 dropped:0 overruns:0 frame:0
TX packets:21843 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4119403 TX bytes:4119403
dummy0 Link encap:Ethernet HWaddr 16:ee:a7:be:48:ec
inet6 addr: fe80::14ee:a7ff:febe:48ec/64 Scope: Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:490
eth0 Link encap:Ethernet HWaddr 8e:24:9d:0c:2d:49 Driver rk_gmac-dwmac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:102
eth1 Link encap:Ethernet HWaddr 66:1e:2c:45:18:94 Driver r8168
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:191 Base address:0x3000
wlan0 Link encap:Ethernet HWaddr c0:f5:35:4f:8d:5e
inet addr:192.168.3.130 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::a8a2:ae54:7aba:5ba9/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:251 errors:0 dropped:0 overruns:0 frame:0
TX packets:101 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:68668 TX bytes:10201
rk3588_t:/ #
rk3588_t:/ # iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.3.97, port 42148
[ 5] local 192.168.3.130 port 5201 connected to 192.168.3.97 port 52524
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 5.11 MBytes 42.8 Mbits/sec
[ 5] 1.00-2.00 sec 805 KBytes 6.59 Mbits/sec
[ 5] 2.00-3.00 sec 18.7 MBytes 157 Mbits/sec
[ 5] 3.00-4.00 sec 19.7 MBytes 165 Mbits/sec
[ 5] 4.00-5.00 sec 10.1 MBytes 84.8 Mbits/sec
[ 5] 5.00-6.00 sec 10.9 MBytes 91.8 Mbits/sec
[ 5] 3595.00-3596.00 sec 6.05 MBytes 50.8 Mbits/sec
[ 5] 3596.00-3597.00 sec 2.07 MBytes 17.4 Mbits/sec
[ 5] 3597.00-3598.00 sec 2.54 MBytes 21.3 Mbits/sec
[ 5] 3598.00-3599.00 sec 6.58 MBytes 55.2 Mbits/sec
[ 5] 3599.00-3600.00 sec 8.12 MBytes 68.1 Mbits/sec
[ 5] 3600.00-3600.10 sec 1.01 MBytes 87.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-3600.10 sec 23.2 GBytes 55.3 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
^Ciperf3: interrupt - the server has terminated
1|rk3588_t:/ #
rootroot@rootroot-X99-Turbo:~$ iperf3 -c 192.168.3.130 -i 1 -t 3600
Connecting to host 192.168.3.130, port 5201
[ 5] local 192.168.3.97 port 52524 connected to 192.168.3.130 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 8.08 MBytes 67.8 Mbits/sec 211 710 KBytes
[ 5] 1.00-2.00 sec 1.25 MBytes 10.5 Mbits/sec 18 45.2 KBytes
[ 5] 2.00-3.00 sec 22.5 MBytes 189 Mbits/sec 28 549 KBytes
[ 5] 3.00-4.00 sec 16.2 MBytes 136 Mbits/sec 10 225 KBytes
[ 5] 4.00-5.00 sec 11.2 MBytes 94.4 Mbits/sec 0 260 KBytes
[ 5] 5.00-6.00 sec 10.0 MBytes 83.9 Mbits/sec 1 215 KBytes
[ 5] 3595.00-3596.00 sec 5.00 MBytes 41.9 Mbits/sec 2 115 KBytes
[ 5] 3596.00-3597.00 sec 2.50 MBytes 21.0 Mbits/sec 0 127 KBytes
[ 5] 3597.00-3598.00 sec 2.50 MBytes 21.0 Mbits/sec 0 140 KBytes
[ 5] 3598.00-3599.00 sec 6.25 MBytes 52.4 Mbits/sec 0 175 KBytes
[ 5] 3599.00-3600.00 sec 8.75 MBytes 73.4 Mbits/sec 0 209 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-3600.00 sec 23.2 GBytes 55.3 Mbits/sec 53206 sender
[ 5] 0.00-3600.10 sec 23.2 GBytes 55.3 Mbits/sec receiver
iperf Done.
rootroot@rootroot-X99-Turbo:~$

