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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SUSE Linux服务器使用zypper安装nginx

SUSE Linux 的云服务器用户,不能yum,安装软件,可通过 zypper 快速安装软件。 使用 root 账号登录 openSUSE 操作系统的云服务器。 执行 zypper service-list 或 zypper sl 命令 列出软件源 安装软件包 执行 zypper search 或 zypper se 命令&#…

扫码展示多视频怎么做?视频的活码制作技巧

现在扫码看视频的应用场景越来越多,用这种方式不仅能够简单有效的低成本完成视频传播,而且也符合用户的习惯。那么当需要将视频制作二维码来展示内容时,多个视频文件生成二维码的制作方法是怎么操作的呢?下面教大家使用视频二维码…

运用ETL快速拉取吉客云平台订单信息

吉客云介绍 吉客云是一家中国的云计算服务提供商。它提供了包括云服务器、云数据库、云存储、云网络等各种云计算产品和解决方案,帮助企业和个人搭建高效、可靠、安全的云计算环境。 吉客云特点和优势: 大规模分布式架构:吉客云基于自主研发…

安装nodejs,配置环境变量并将npm设置淘宝镜像源

安装nodejs并将npm设置淘宝镜像源 1. 下载nodejs 个人不喜欢安装包,所以是下载zip包的方式。这里我下载的node 14解压包版本 下载地址如下:https://nodejs.org/dist/v14.15.1/node-v14.15.1-win-x64.zip 想要其他版本的小伙伴去https://nodejs.org/di…

【【迭代16次的CORDIC算法-verilog实现】】

迭代16次的CORDIC算法-verilog实现 -32位迭代16次verilog代码实现 CORDIC.v module cordic32#(parameter DATA_WIDTH 8d32 , // we set data widthparameter PIPELINE 5d16 // Optimize waveform)(input …

opencv入门到精通——改变颜色空间

目录 目标 改变颜色空间 对象追踪 如何找到要追踪的HSV值? 目标 在本教程中,你将学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等 除此之外,我们还将创建一个应用程序,以提取视频中的…

Mapmost Alpha上新啦!新增移动端的丝滑且强大功能!

本文目录 一、Mapmost Alpha 介绍1.1 Maopmost 数字孪生平台1.2 Mapmost 产品能力1.3 Mapmost Alpha 产品优势 二、移动端功能介绍三、Mapmost Alpha 总结 一、Mapmost Alpha 介绍 Hello,各位铁铁,今天给大家推荐一款好用的三维城市场景创建工具。 这款…

k8s部署elastic+kibana

1.软件版本说明 1.1软件版本说明 软件版本kubernetes1.23.17elasticsearch7.17.3kibana7.17.3 1.2硬件环境说明 宿主机使用windows10安装vmware17.5.0,虚拟机安装linux系统(centos7.9) 说明: elasticserch和kibana的版本尽量…

NTFS权限与文件系统:深入解析与实践指南

在当今的信息时代,数据安全和管理成为了每个组织和个人的重要议题。NTFS权限作为Windows操作系统中的一个核心功能,为文件和文件夹的安全管理提供了强大的支持。本文将深入解析NTFS权限的基本概念,并通过实际操作指导如何有效地利用这些权限来…

MySQL的hash索引

MySQL有BTree 索引及Hash索引等索引类型,BTree索引类型是MySQL采用最多的索引类型。Hash索引使用场景比较有限,文章将从Hash索引的底层结构出发,来分析Hash索引的利与弊。 1 hash数据结构 hash数据结构由键、哈希函数及哈希表组成。 键&am…

【3D生成与重建】SSDNeRF:单阶段Diffusion NeRF的三维生成和重建

系列文章目录 题目:Single-Stage Diffusion NeRF: A Unified Approach to 3D Generation and Reconstruction 论文:https://arxiv.org/pdf/2304.06714.pdf 任务:无条件3D生成(如从噪音中,生成不同的车等)、…

提前预测刚体移动轨迹 预测运动轨迹

提前预测刚体移动轨迹 预测运动轨迹 一、效果二、介绍三、脚本RigidbodyExtension.cs 计算工具类DrawLine.cs 画线工具类 四、资源分享 一、效果 二、介绍 通过计算Unity物理系统的运动方位来判断下一步移动的位置,主要用于物体运动的提前预测,通常使用…

比 Eslint 快 100 倍!新一代 JS Linter 发布!

比 Eslint 快 100 倍!新一代 JS Linter 发布! Oxc 是用 Rust 编写的 JavaScript 语言的高性能工具集合。他们的目标是构建 JavaScript 的基本编译器工具:解析器、linter、格式化程序、转译器、压缩器和解析器等等,这次他们发布了一…

3.18 Linux 防火墙

1、iptables 概述 a. 概念介绍 自Centos7.X开始,系统自带的防火墙是filewalld,但是也同样支持iptables, 我们仍然可以用iptables来作为防火墙。 netfilter/iptables:IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。 netfilter 组件…

Nginx 安装(源码编译安装)

Nginx服务器提供了Windows和Linux版本,本文为Linux环境下Nginx服务器的详细安装步骤。 安装环境: Linux服务器操作系统:CentOs 8.1.1911 Nginx版本:1.21.4(Linux) 安装步骤: 1、安装GCC、aut…

过度加大SSD内部并发何尝不是一种伤害-part1

之前存储随笔有发布过一篇关于如何通过IO并发度提升性能相关的文章: 扩展阅读:SSD基础架构与NAND IO并发问题探讨 SSD整体优化策略就是要低延迟,高带宽,增加NAND的并发度。 本文,我们从另外一个角度来做一些讨论。现…

MySQL代码笔记

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻表的增删查改创建表格&…

TLC2543(12位A/D转换器)实现将输入的模拟电压显示到数码管上

代码&#xff1a; #include <reg51.h> #define uchar unsigned char #define uint unsigned int// 数码管0-9 unsigned char seg[] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; sbit SDO P1^0; sbit SDI P1^1; sbit CS P1^2; sbit CLK P1^3; s…

Linux(一)Linux理论

文章目录 一、Linux概述1.1 体系结构1.1.1 Linux内核1.1.2 用户态与内核态1.1.3 交换空间1.1.4 CLI和GUI 1.2 开机启动过程1.3 系统运行级别1.4 Linux进程1.4.1 Linux进程通信的方法1.4.2 Linux进程状态 二、文件2.1 Linux文件系统2.2 目录结构2.3 绝对路径和相对路径2.4 日志文…

增量式旋转编码器在STM32平台上的应用

背景 旋钮是仪器仪表上一种常见的输入设备&#xff0c;它的内部是一个旋转编码器&#xff0c;知乎上的这篇科普文章对其工作原理做了深入浅出的介绍。 我们公司的功率分析仪的前面板也用到了该类设备&#xff0c;最近前面板的MCU从MSP430切换成了STM32&#xff0c;因此我要将…