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

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.mzph.cn/news/240295.shtml

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

相关文章

C++进阶-继承

继承 一、继承的概念及定义1.1 继承的概念1.2 继承的定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域3.1 同名成员变量3.2 同名成员函数 四、派生类的默认成员函数五、继承与友元六、继承与静态…

Leetcode—43.字符串相乘【中等】

2023每日刷题(六十八) Leetcode—43.字符串相乘 算法思想 实现代码 class Solution { public:string multiply(string num1, string num2) {int len1 num1.size(), len2 num2.size();string ans;int end1 len1 - 1, end2 len2 - 1;int arr[len1 l…

、写入Shellcode到注册表上线

其实本质就是将shellcode写入到注册表中,然后读取注册表中的shellcode,然后创建线程去执行shellcode。 如下图: 写入注册表shellcode 这里将shellcode写入到注册表中,在我们需要的时候再去读取然后执行。 这里用到如下两个Windows API函…

福FLUKE禄克8808A数字多用表

福禄克8808A,用于制造、研发、维修等应用的多功能数字表,FLUKE 8808A 5.5位数字多用表可以完成当今众多常用的测量工作。无论是功能测 展开 福禄克8808A,用于制造、研发、维修等应用的多功能数字表,FLUKE 8808A 5.5位数字多用表可…

【音视频】remb twcc原理

目录 twcc简介 WebRTC REMB 参考文档 twcc简介 TWCC全称是Transport wide Congestion Control,是webrtc的最新的拥塞控制算法。其原理是在接收端保存数据包状态,然后构造RTCP包反馈给发送端,反馈信息包括包到达时间、丢包状态等&#xff…

室内导航技术在智慧医疗的革新应用

随着科技的飞速发展,智慧医疗已经成为现代医疗服务的重要组成部分。在这个背景下,室内导航技术逐渐崭露头角,为智慧医疗建设带来了革命性的改变。本文将深入探讨室内导航技术在智慧医疗中的应用,并分析其为医疗服务带来的诸多便利…

vue:ref的作用和实例

定义:用来获取元素或子组件注册或者引用信息,父组件通过$ref获取到相应的DOM对象和子组件 1、vue中ref的作用 获取页面的DOM元素获取子组件的对象(也是一种通信方式) 2、实例 1、获取DOM,首先创建一个父页面index然…

如何自定义右键弹框并实现位置自适应?

一、问题 右键显示弹框,但是靠近浏览器边缘的部分会被隐藏,需要实现弹框位置自适应 二、 问题分析 如果想要最终弹框的宽高不超过屏幕视口,就等于屏幕视口的总宽/高减去弹框打开时的起点坐标,剩下的部分大于等于弹框的宽/高&…

商家如何进行商业模式开发,助力产品更好的销售模式?

商家如何进行商业模式开发,助力产品更好的销售模式? 随着各类电商平台的疯狂崛起,越来越多的商家对其中带来的高额回报率产生心动,毕竟对于线上的场景来说,即省去了房租、水电、仓储以及其他各种费用,用电商…

vue3 + TypeScript使用国际化

vue3 TypeScript使用国际化 本文使用了 Vite 构建工具创建的vue3项目Vite 支持使用特殊的 import.meta.glob 函数从文件系统导入多个模块Vite 官方中文文档当然如果你的vue3项目未使用vite,你也可以为你的旧项目提提速,安装vite ,安装方法在上一个博客…

【华为数据之道学习笔记】6-5数据地图的核心价值

数据供应者与消费者之间往往存在一种矛盾:供应者做了大量的数据治理工作、提供了大量的数据,但数据消费者却仍然不满意,他们始终认为在使用数据之前存在两个重大困难。 1)找数难 企业的数据分散存储在上千个数据库、上百万张物理表…

汽车行业一些知识

一、汽车术语集合 1、 轴距(mm):汽车前轴中心至后轴中心的距离。 2、转弯半径(mm):汽车转向时,汽车外侧转向轮的中心平面在车辆支撑平面上的轨迹圆半径。转向盘转到极限位置时的转弯半径为最小转弯半径。 3、最大总质量(kg):汽…

动态数组的实现

定义 1. 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识。 2. 因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。 3. 知道了数…

计算机网络-网络层

计算机网络-网络层 以下笔记整理为哔哩哔哩湖科大教书匠的《计算机网络微课堂》的教学视频。 链接:计算机网络微课堂 1. 网络层概述 1.1 网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输。 1.2 要实现网络层任务,需要解决…

【飞凌 OK113i-C 全志T113-i开发板】一些有用的常用的命令测试

一些有用的常用的命令测试 一、系统信息查询 可以查询板子的内核信息、CPU处理器信息、环境变量等 二、CPU频率 从上面的系统信息查询到,这是一颗具有两个ARMv7结构A7内核的处理器,主频最高1.2GHz 可以通过命令查看当前支持的频率以及目前所使用主频 …

Spring IoCDI

文章目录 前言什么是Spring1. 什么是 IoC 容器1.1 什么是容器1.2 什么是 IoC 2. 什么是DI IoC & DI 的使用IoC详解Bean的存储Controller注解如何获取Bean1. 根据Bean的名称获取Bean2. 根据Bean类型获取Bean3. 根据Bean名和Bean类型获取Bean Service注解Repository注解Compo…

使用Docker一键部署Uptime Kuma,并将监控服务映射至公网访问

文章目录 **主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

go语言初体验1--使用go install

当安装后go语言后。 尝试编写go程序。 当使用 go install 命令,报错。 go: go install requires a version when current directory is not in a moduleTry go install jvmgo\ch01latest to install the latest version通过查找资料。 用命令: go env …

混合精度训练(MAP)

一、介绍 使用精度低于32位浮点数的数字格式有很多好处。首先,它们需要更少的内存,可以训练和部署更大的神经网络。其次,它们需要更少的内存带宽,这加快了数据传输操作。第三,数学运算在降低精度的情况下运行得更快&a…

YOLOv5算法改进(23)— 更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv

前言:Hello大家好,我是小哥谈。本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5算法的改进!🌈 前期回顾: YOLOv5算法改进(1)— 如何去…