当前位置: 首页 > news >正文

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:~$ 

http://www.dtcms.com/a/576813.html

相关文章:

  • 学校网站代码模板成都的网站建设开发公司哪家好
  • 怎么制作自己的小网站低代码前端开发平台
  • Elastic Stack 或 ELK —— 日志管理与数据分析方案
  • 手机、平板、电脑如何投屏画面到电视?ToDesk远程控制TV版教程分享
  • UEC++UNiagaraFunctionLibrary源代码
  • 小杰-大模型(twelve)——大模型部署与应用——gradipo-实现UI界面
  • Python基础入门
  • 【React Native】粘性布局StickyScrollView
  • 无人机RTMP推流平台EasyDSS:构建新一代智能交通视频监控系统
  • 从大数据角度看时序数据库选型:Apache IoTDB的实战经验分享
  • Apache Drill 连接 MySQL 或 PostgreSQL 数据库
  • React Native App 图表绘制完整实现指南
  • 做招商加盟网站怎么样济南网站优化的周期
  • 怡梦姗网站做么动漫与游戏制作专业就业方向
  • js原生、vue导出、react导出、axios ( post请求方式)跨平台导出下载四种方式的demo
  • Springboot + vue 宿舍管理系统
  • 【Python3教程】Python3高级篇之pip标准包管理工具
  • 段权限检查(Segement Privilege Check)
  • JD京东线下HR面(准备)
  • 构建高可靠 OpenEuler 运维体系:从虚拟化部署到 Systemd 自动化核心实践
  • 让医学影像跨越“域”的鸿沟:FAMNet 的频域觉知匹配新思路
  • 麒麟Server版安装EMQX
  • 数字机器人教学项目开发:基于Python的教育技术创新实践
  • 《C语言疑难点 --- C语内存函数专题》
  • 公司网站建设文章wordpress cms主题教程
  • 第十天~ARXML IPDU Group全面解析:从基础到高级批量控制策略
  • 【029】智能停车计费系统
  • 51CTO学院个人网站开发视频经典 wordpress主题下载
  • Java大厂面试真题:Spring Boot + 微服务 + 缓存架构三轮技术拷问实录
  • 患者随访管理抖音快手微信小程序看广告流量主开源