20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV

news2025/1/21 2:54:39

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV


1、简略步骤:
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ cat Rockchip_Android10.0_SDK_Release.tar.gz0* > Rockchip_Android10.0_SDK_Release.tar.gz
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ tar zxvf Rockchip_Android10.0_SDK_Release.tar.gz
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ .repo/repo/repo sync -l
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ cd u-boot
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/u-boot$ ./make.sh rk3399
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/u-boot$ cd ..
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ cd kernel/
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/kernel$ make ARCH=arm64 rockchip_defconfig android-10.config rk3399.config -j36
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/kernel$ ll
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/kernel$ make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3399_Android10/boot.img rk3399-sapphire-excavator-edp-avb.img -j36
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10/kernel$ cd ..
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ source build/envsetup.sh 
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ lunch
     22. rk3399_Android10-userdebug
Which would you like? [aosp_arm-eng] 22
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ make -j36
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ ./mkimage.sh
rootroot@rootroot-X99-Turbo:~/3TB/3399-android10$ ./build.sh -u


AF6554D06A7C09C677BD3DB44A85A4AA  Rockchip_Android10.0_SDK_Release.tar.gz00
6670B93020F599C2E67E7954368B0A5D  Rockchip_Android10.0_SDK_Release.tar.gz01
8EA0D6462402C53554B1E225B3E387A3  Rockchip_Android10.0_SDK_Release.tar.gz02
3C67DC7007F9E70A85F69370D7931D5E  Rockchip_Android10.0_SDK_Release.tar.gz03
C901FB21C1A4417FAB187BB4ACCB569D  Rockchip_Android10.0_SDK_Release.tar.gz04
BE04E2A442636E6983B188C681A52F9F  Rockchip_Android10.0_SDK_Release.tar.gz05
D972C7CB0BF6C527EA592F34FD3396A3  Rockchip_Android10.0_SDK_Release.tar.gz06
A6279BE1EBD29C67C83288C4C1E5302E  Rockchip_Android10.0_SDK_Release.tar.gz07
D23FDBA115E14EC2F9E5D7D0821FE000  Rockchip_Android10.0_SDK_Release.tar.gz08
B883B9689636F3ED97EE1CCC5DFB634A  Rockchip_Android10.0_SDK_Release.tar.gz09


2、刷机之后,用鼠标打开WIFI开关之后,发现缺少AP6275S的固件:nvram_ap6275s.txt
【奇怪呀,开发板上的WIFI/BT模块上有激光刻印的字:AP6398SV,难道它俩是一个型号吗?】
console:/ # 
console:/ # cd /vendor/lib/modules
console:/vendor/lib/modules # 
console:/vendor/lib/modules # 
console:/vendor/lib/modules # ls -l
total 54940
-rw-r--r-- 1 root root  3448960 2023-12-20 09:49 8723cs.ko
-rw-r--r-- 1 root root  5265944 2023-12-20 09:49 8821cs.ko
-rw-r--r-- 1 root root  6720696 2023-12-20 09:49 8822bs.ko
-rw-r--r-- 1 root root 23507712 2023-12-20 09:49 bcmdhd.ko
-rw-r--r-- 1 root root 18025400 2023-12-20 09:49 mali_kbase.ko
-rw-r--r-- 1 root root      569 2023-12-20 09:49 modules.alias
-rw-r--r-- 1 root root      159 2023-12-20 09:49 modules.dep
console:/vendor/lib/modules # 
console:/vendor/lib/modules # ifconfig\
> ^C
130|console:/vendor/lib/modules # ifconfig                                     
eth0      Link encap:Ethernet  HWaddr 6e:a7:de:18:73:b4  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:27 

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

console:/vendor/lib/modules # [  171.997853] dhd_module_init: in Dongle Host Driver, version 100.10.545.9 (r826445-20200316-8)
[  171.997895] ======== dhd_wlan_init_plat_data ========
[  171.997901] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: Enter
[  171.997950] dhd_wlan_init_gpio: WL_HOST_WAKE=-1, oob_irq=89, oob_irq_flags=0x414
[  171.997955] dhd_wlan_init_gpio: WL_REG_ON=-1
[  171.997960] dhd_wifi_platform_load: Enter
[  171.997966] Power-up adapter 'DHD generic adapter'
[  171.999709] wifi_platform_set_power = 1, delay: 200 msec
[  171.999805] ======== PULL WL_REG_ON(-1) HIGH! ========
[  171.999823] [WLAN_RFKILL]: rockchip_wifi_power: 1
[  171.999832] [WLAN_RFKILL]: wifi turn on power. -1
[  172.310158] wifi_platform_bus_enumerate device present 1
[  172.310231] ======== Card detection to detect SDIO card! ========
[  172.310256] mmc0:mmc host rescan start!
[  172.330108] bcmsdh_register: register client driver
[  172.330447] bcmsdh_sdmmc_probe: Enter num=1
[  172.331219] bcmsdh_sdmmc_probe: Enter num=2
[  172.331260] bus num (host idx)=0, slot num (rca)=1
[  172.331277] found adapter info 'DHD generic adapter'
[  172.331395] sdioh_attach: set sd_f2_blocksize 256
[  172.331500] sdioh_attach: sd clock rate = 0
[  172.332047] dhdsdio_probe : no mutex held. set lock
[  172.332259] F1 signature read @0x18000000=0x1042aae8
[  172.341241] F1 signature OK, socitype:0x1 chip:0xaae8 rev:0x2 pkg:0x4
[  172.342240] DHD: dongle ram size is set to 1310720(orig 1310720) at 0x170000
[  172.342366] [dhd] dhd_conf_set_chiprev : chip=0xaae8, chiprev=2
[  172.354430] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354521] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354531] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354542] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354552] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354563] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354577] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.354613] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[  172.355589] dhd_log_dump_init: kernel log buf size = 512KB; logdump_prsrv_tailsize = 80KB; limit prsrv tail size to = 76KB
[  172.357046] dhd_attach(): thread:dhd_watchdog_thread:7ca started
[  172.357167] dhd_attach(): thread:dhd_dpc:7cb started
[  172.357313] dhd_attach(): thread:dhd_rxf:7cc started
[  172.357332] dhd_deferred_work_init: work queue initialized
[  172.357346] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -> mode 2
[  172.357423] get_mem_val_from_file: File [/data/misc/wifi/.memdump.info] doesn't exist
[  172.357447] dhd_get_memdump_info: MEMDUMP ENABLED = 3
[  172.357476] sdioh_cis_read: func_cis_ptr[0]=0x1070
[  172.369706] dhdsdio_probe_init: making DHD_BUS_DOWN
[  172.369992] Dongle Host Driver, version 100.10.545.9 (r826445-20200316-8)
[  172.383245] Register interface [wlan0]  MAC: 08:fb:ea:ea:a3:da
[  172.383245] 
[  172.383448] dhd_dbg_detach_pkt_monitor, 2100
[  172.383464] dhd_bus_devreset: == Power OFF ==
[  172.384594] dhd_bus_stop: making DHD_BUS_DOWN
[  172.384738] bcmsdh_oob_intr_unregister: Enter
[  172.384781] bcmsdh_oob_intr_unregister: irq is not registered
[  172.384806] dhd_bus_devreset: making dhdpub up FALSE
[  172.384829] dhd_txglom_enable: enable 0
[  172.384904] dhd_bus_devreset: making DHD_BUS_DOWN
[  172.384926] dhd_bus_devreset:  WLAN OFF DONE
[  172.385125] wifi_platform_set_power = 0, delay: 0 msec
[  172.385174] ======== PULL WL_REG_ON(-1) LOW! ========
[  172.385191] [WLAN_RFKILL]: rockchip_wifi_power: 0
[  172.385221] [WLAN_RFKILL]: wifi shut off power.
[  172.385258] dhdsdio_probe : the lock is released.
[  172.386321] dhd_module_init: Exit err=0
[  172.388483] init: processing action (wlan.driver.status=ok) from (/vendor/etc/init/hw/init.connectivity.rc:51)
[  172.397500] init: processing action (wlan.driver.status=ok) from (/vendor/etc/init/hw/init.connectivity.rc:51)
[  172.414944] init: Received control message 'interface_start' for 'android.hardware.wifi.supplicant@1.0::ISupplicant/default' from pid: 154 (/system/bin/hwservicemanager)
[  172.415730] init: starting service 'wpa_supplicant'...
[  172.420118] init: Created socket '/dev/socket/wpa_wlan0', mode 660, user 1010, group 1010
[  172.533451] capability: warning: `wpa_supplicant' uses 32-bit capabilities (legacy support in use)
[  172.619585] init: processing action (wlan.driver.status=ok) from (/vendor/etc/init/hw/init.connectivity.rc:51)
[  172.620650] dhd_open: Enter wlan0
[  172.620676] dhd_open : no mutex held. set lock
[  172.620687] 
[  172.620687] Dongle Host Driver, version 100.10.545.9 (r826445-20200316-8)
[  172.620707] [dhd-wlan0] wl_android_wifi_on : in g_wifi_on=0
[  172.620716] wifi_platform_set_power = 1, delay: 200 msec
[  172.620726] ======== PULL WL_REG_ON(-1) HIGH! ========
[  172.620734] [WLAN_RFKILL]: rockchip_wifi_power: 1
[  172.620741] [WLAN_RFKILL]: wifi turn on power. -1
[  172.925945] sdio_reset_comm():
[  172.941334] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[  172.958564] mmc_host mmc0: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)
[  173.025038] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[  173.031739] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[  173.038819] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[  173.050561] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[  173.067462] mmc0: queuing unknown CIS tuple 0x8e (9 bytes)
[  173.410050] mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, actual 100000000HZ div = 0)
[  173.606337] dwmmc_rockchip fe310000.dwmmc: Successfully tuned phase to 110
[  173.606435] sdioh_start: set sd_f2_blocksize 256
[  173.606677] 
[  173.606677] 
[  173.606677] dhd_bus_devreset: == Power ON ==
[  173.606779] F1 signature read @0x18000000=0x1042aae8
[  173.610545] F1 signature OK, socitype:0x1 chip:0xaae8 rev:0x2 pkg:0x4
[  173.611234] DHD: dongle ram size is set to 1310720(orig 1310720) at 0x170000
[  173.611314] dhd_bus_devreset: making DHD_BUS_DOWN
[  173.611360] dhdsdio_probe_init: making DHD_BUS_DOWN
[  173.611656] [dhd] dhd_conf_read_config : Ignore config file /vendor/etc/firmware/config.txt
[  173.611695] [dhd] dhd_conf_set_path_params : Final fw_path=/vendor/etc/firmware/fw_bcm43752a2_ag.bin
[  173.611717] [dhd] dhd_conf_set_path_params : Final nv_path=/vendor/etc/firmware/nvram_ap6275s.txt
[  173.611737] [dhd] dhd_conf_set_path_params : Final clm_path=/vendor/etc/firmware/clm_bcm43752a2_ag.blob
[  173.611757] [dhd] dhd_conf_set_path_params : Final conf_path=/vendor/etc/firmware/config.txt
[  173.612178] dhdsdio_download_code_file: Open firmware file failed /vendor/etc/firmware/fw_bcm43752a2_ag.bin
[  173.612205] _dhdsdio_download_firmware: dongle image file download failed

[  173.612251] dhd_bus_devreset Failed to download binary to the dongle
[  173.612284] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  173.612314] dhd_dbg_detach_pkt_monitor, 2100
[  173.612342] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  173.612387] wifi_platform_set_power = 0, delay: 0 msec
[  173.612415] ======== PULL WL_REG_ON(-1) LOW! ========
[  173.612437] [WLAN_RFKILL]: rockchip_wifi_power: 0
[  173.612472] [WLAN_RFKILL]: wifi shut off power.
[  173.612493] [dhd-wlan0] wl_android_wifi_on : Failed
[  173.612515] dhd_open : wl_android_wifi_on failed (-35)
[  173.612540] dhd_stop: Enter wlan0
[  173.612565] [dhd-wlan0] wl_android_wifi_off : in g_wifi_on=0, on_failure=1
[  173.612585] dhd_dbg_detach_pkt_monitor, 2100
[  173.612600] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  173.612694] sdioh_disable_func_intr: error for read SDIO_CCCR_IENx : 0xffffff92
[  173.612723] wifi_platform_set_power = 0, delay: 0 msec
[  173.612752] ======== PULL WL_REG_ON(-1) LOW! ========
[  173.612772] [WLAN_RFKILL]: rockchip_wifi_power: 0
[  173.612798] [WLAN_RFKILL]: wifi shut off power.
[  173.612819] [dhd-wlan0] wl_android_wifi_off : out
[  173.624957] dhd_stop: Exit wlan0
[  173.625254] dhd_open : the lock is released.
[  173.625318] dhd_open: Exit wlan0 ret=-1
[  173.625341] Failed to open primary dev ret -1

console:/vendor/lib/modules # 


3、将所缺少的固件通过adb push推进去了!
【如果拿不到合适的,可以使用Firefly的AIO-3568J的开发板中的固件!^_】

Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>adb remount
* daemon not running; starting now at tcp:5037
* daemon started successfully
Not running as root. Try "adb root" first.
remount failed

C:\Users\Administrator>adb root
restarting adbd as root

C:\Users\Administrator>
C:\Users\Administrator>adb remount
W DM_DEV_STATUS failed for scratch: No such device or address
E [liblp]No device named scratch
[liblp]Partition scratch will resize from 0 bytes to 905875456 bytes
[liblp]Updated logical partition table at slot 0 on device /dev/block/by-name/super
[libfs_mgr]Created logical partition scratch on device /dev/block/dm-4
[libfs_mgr]__mount(source=/dev/block/dm-4,target=/mnt/scratch,type=f2fs)=0: Success
Using overlayfs for /system
Using overlayfs for /vendor
Using overlayfs for /product
[libfs_mgr]__mount(source=overlay,target=/system,type=overlay,upperdir=/mnt/scratch/overlay/system/upper)=0
[libfs_mgr]__mount(source=overlay,target=/vendor,type=overlay,upperdir=/mnt/scratch/overlay/vendor/upper)=0
[libfs_mgr]__mount(source=overlay,target=/product,type=overlay,upperdir=/mnt/scratch/overlay/product/upper)=0
remount succeeded

C:\Users\Administrator>


Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware

C:\Users\Administrator>h:

H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>
H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware
H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>adb push fw_bcm43752a2_ag.bin /vendor/etc/firmware/
fw_bcm43752a2_ag.bin: 1 file pushed, 0 skipped. 12.3 MB/s (743607 bytes in 0.058s)

H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>adb push fw_bcm43752a2_ag_apsta.bin /vendor/etc/firmware/
fw_bcm43752a2_ag_apsta.bin: 1 file pushed, 0 skipped. 10.2 MB/s (743607 bytes in 0.070s)

H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>adb push nvram_ap6275s.txt /vendor/etc/firmware/
nvram_ap6275s.txt: 1 file pushed, 0 skipped. 0.2 MB/s (8709 bytes in 0.055s)

H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>adb push clm_bcm43752a2_ag.blob /vendor/etc/firmware/
clm_bcm43752a2_ag.blob: 1 file pushed, 0 skipped. 0.5 MB/s (28865 bytes in 0.056s)

H:\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s_20230212_1059\802确认AP6275S+3个USB接口-evb2_3usb+ap6275s_Image-rk3568_s\LOG\12e确认ap6275s-3usb_20230211_2050\vendor\rockchip\common\wifi\firmware>


4、现在就可以打开WIFI了!
2|console:/sdcard/DCIM # cd /
console:/ # 
console:/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 6e:a7:de:18:73:b4  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:27 

wlan0     Link encap:Ethernet  HWaddr 08:fb:ea:ea:a3:da  Driver bcmsdh_sdmmc
          inet addr:192.168.186.224  Bcast:192.168.186.255  Mask:255.255.255.0 
          inet6 addr: fe80::9e70:9030:3741:b73b/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2130 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:1315 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:2404115 TX bytes:111182 

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:4 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:240 TX bytes:240 

console:/ # 


5、也可以/但是建议使用WIFI6的驱动程序:【NanoPC-T4(RK3399)开发板默认使用这个驱动程序】
Z:\3TB\13rk3399-android-10\kernel\arch\arm64\configs\nanopi4_android_defconfig
Z:\3TB\Rockchip_Android10.0_SDK_Release\kernel\arch\arm64\configs\rockchip_defconfig

CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
CONFIG_AP6XXX=m

修改为:
CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y
#CONFIG_AP6XXX=m
CONFIG_AP6XXX_WIFI6=m


如果不修改这里,驱动模块会被默认编译成为bcmdhd_wifi6.ko
Z:\3TB\Rockchip_Android10.0_SDK_Release\kernel\drivers\net\wireless\rockchip_wlan\rkwifi\bcmdhd_wifi6\Makefile
# SPDX-License-Identifier: GPL-2.0
# bcmdhd

#MODULE_NAME := bcmdhd_wifi6
MODULE_NAME := bcmdhd

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

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

相关文章

PIL/Pillow

Abstract PIL(Python Imaging Library)是一个用于图像处理的 Python 库。它提供了广泛的功能,包括图像加载、保存、调整大小、裁剪、旋转、滤镜应用等。 由于 PIL 的开发停止在 2009 年,因此推荐使用其后续的维护版本 Pillow。Pillow 是一个兼容 PIL 接…

安全认证【八】

文章目录 8. 安全认证8.1 访问控制概述8.2 认证管理8.3 授权管理8.4 准入控制 8. 安全认证 8.1 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作…

Android wifi基础知识点

1、什么是 CSMA/CA ? 以太网用 CSMA/CD 进行传输控制,而 IEEE 802.11 的 WLAN 采用的是 CSMA/CA 。 CSMA/CD ,全称 Carrier Sense Multiple Access with Collision Detection ,即 载波侦听多路访问/冲突检测协议。 载波侦听(Ca…

Qt中字符串转换为JS的函数执行

简介 在 QML 中,将 JavaScript 字符串转换为函数通常涉及使用 Function 构造函数或 eval() 函数。但是,QML 的环境对 JavaScript 的支持有一定的限制,因此不是所有的 JavaScript 功能都可以在 QML 中直接使用。 以下介绍都是在Qt5.12.1…

MATLAB - 使用 YOLO 和基于 PCA 的目标检测,对 UR5e 的半结构化智能垃圾箱拣选进行 Gazebo 仿真

系列文章目录 前言 本示例展示了在 Gazebo 中使用 Universal Robots UR5e cobot 模拟智能垃圾桶拣选的详细工作流程。本示例提供的 MATLAB 项目包括初始化、数据生成、感知、运动规划和积分器模块(项目文件夹),可创建完整的垃圾桶拣选工作流…

5. 结构型模式 - 外观模式

亦称: Facade 意图 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下, 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确…

C++_运算符重载

目录 1、运算符重载的定义 2、实现‘<、的运算符重载 2.1 实现其余的比较运算符 3、实现‘’&#xff0c;‘-’&#xff0c;‘’&#xff0c;‘-’等运算符重载 4、前置、后置‘’‘--’ 5、流提取、流插入重载 6、赋值重载‘’ 结语&#xff1a; 前言&#xff1a; C中运…

SwiftUI 趣谈之:绝不可能(Never)的 View!

概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没&#xff01; 不过&#xff0c;倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码&#xff0c;就会发现里面嵌有一些奇怪 Never 类型&#xff0c…

antdesignpro实现滚动加载分页数据

原理解析&#xff1a;每滚动一次相当于翻页&#xff0c;请求后端时给的页码参数要想办法加1&#xff0c;后端才能根据页码给出相应数据 注意后端收到页码参数之后要准确计算出每页的首行数据&#xff0c;关键逻辑代码&#xff1a; # 根据前端传的页码&#xff0c;进行计算下一…

前端传输formDate格式的数据,后端不能用@RequestBody接收

写了个接口&#xff0c;跟前端对接&#xff0c;前端说怎么一直415的报错 我寻思不对啊&#xff0c;我swagger都请求成功了&#xff0c;后来发现前端一直是以formdata格式提交的数据&#xff0c;这样我其实是可以不加RequestBody的&#xff1b; 知识点&#xff1a; RequestBody…

核方法 : 多项式核函数

一、定义 多项式核函数&#xff1a; 将数据映射到高维空间&#xff0c;从而实现 低维线性不可分 到 高维线性可分 二、核心代码介绍 1、关于 PolynomialFeatures(degree3) &#xff1a; 三次多项式核函数 2、关于 svm_clf.decision_function &#xff1a; 推理 三、代码 …

Redis取最近10条记录

有时候我们有这样的需求&#xff0c;就是取最近10条数据展示&#xff0c;这些数据不需要存数据库&#xff0c;只用于暂时最近的10条&#xff0c;就没必要在用到Mysql类似的数据库&#xff0c;只需要用redis即可&#xff0c;这样既方便也快&#xff01; 具体取最近10条的方法&a…

Python深度学习029:pytorch中常用的模块或方法

PyTorch是一个广泛使用的深度学习库,提供了许多用于构建和训练神经网络的模块和方法。下面是一些PyTorch中常用的模块和方法的简要介绍: PyTorch常用模块和方法 torch 用途:PyTorch的基础模块,提供了多种数学运算功能。常用方法: torch.tensor():创建张量torch.randn():…

12.21 汇编点亮STM32MP157小灯

.text .global _start _start: 时钟使能LDR r0,0x50000A28LDR r1,[r0]ORR r1,r1,#(0x1<<4)ORR r1,r1,#(0x1<<5)ORR r1,r1,#(0x1<<1)STR r1,[r0]配置GPIO模式LDR r0,0x50006000LDR r1,[r0]BIC r1,r1,#(0x2<<20)ORR r1,r1,#(0x1<<20)BIC r1,r1,#(…

线程和进程你真的了解吗?快来看看全面的解析和线程的代码

&#xff08;本篇文章全面的释义了线程和进程&#xff1b;为了方便大家熟练的掌握&#xff0c;内容中引入了详细的代码&#xff1b;欢迎大家学习讨论和批评指正&#xff09; 进程的概念 操作系统(OS)中并发(同时)执行的多个程序任务 进程的特点 宏观并行,微观串行 在一个时…

INS的各类方程---微分方程

INS 会受到误差的扰动&#xff0c; INS 的误差方程进行推导。常用的误差模型有 PHI 角和 PSI 角误差 模型。PHI 角误差模型是基于平台坐标系与真实导航坐标系推导的&#xff0c;误差模型易于理解但形式较为复杂。PSI 角误差模型是基于平台坐标系和计算坐标系推导的&#xff0c;…

【C++】可变参数模板使用总结(简洁易懂,详细,含代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》…

TYPE C 接口知识

1、Type C 概述 Type-C口有4对TX/RX分线&#xff0c;2对USBD/D-&#xff0c;一对SBU&#xff0c;2个CC&#xff0c;另外还有4个VBUS和4个地线。 当Type-C接口仅用作传输DP信号时&#xff0c;则可利用4对TX/RX&#xff0c;从而实现4Lane传输&#xff0c;这种模式称为DPonly模式…

个性化邮件营销策略:提升销售额的有效方法

事实上&#xff0c;电子邮件营销人员一直将个性化视为让受众产生强烈参与感的最佳方式之一。对于很多营销人员来说&#xff0c;实施个性化甚至不再是一种选择&#xff0c;而是培养和吸引潜在客户和联系人的必要条件。因此&#xff0c;今天我们将一起来讨论一些成功电子邮件营销…

【LeetCode刷题笔记】动态规划(一)

376. 摆动序列 解题思路: 1. 动态规划 , 定义 up[i] 表示下标 i 的元素为 结尾 的【 最长上升摆动序列 】的 长度 , down[i] 表示下标 i 的元素为