Игорь Шаповалов Posted 21 hours ago Posted 21 hours ago The Wi-Fi isn't working. I've been trying to get it working for a week now. My hardware is a board from a TV set-top box based on the Amlogic S905X. I have six of them. Armbian OS v26.2, kernel 6.12.59-current-meson64 There are 6 adapters: noname aic8800 ax900 bt5.4 usb (Two types. Some are detected slightly differently by the system, but I want to figure out the first type first (on the left in the photo)) Photo of adapters: https://disk.yandex.ru/i/x37stQnEgEW52gра As far as I can tell, the manufacturer's website: https://www.fenvi.com/index.php/drive.html?id=1&page=2 What I've tried: https://resource.tp-link.com.cn/pc/docCenter/showDocproductId=3343&type=DRIVER&id=1744265707665927 https://www.tendacn.com/ru/material/show/105769 https://www.lulian.cn/download/135.html https://github.com/Wolfdv1/aic8800/ https://github.com/radxapkg/aic8800 https://github.com/geniuskidkanyi/aic8800 https://github.com/nbfalcon/aic8800 https://github.com/shenmintao/aic8800d80 In the related thread https://www.linux.org.ru/forum/linux-hardware/18109581?cid=18151734 , they suggested installing: https://github.com/shenmintao/aic8800d80 , but that didn't help me. What helped: 1) I tried following the instructions from https://linux.brostrend.com/ After that, the adapter worked once, but after a reboot, it didn't work again. I couldn't try again on a clean system. 2) On a clean system, the description from the first post helped once: https://forums.linuxmint.com/viewtopic.php?t=437357 ``` sudo dkms remove aic8800/1.0.8 –all sudo dpkg –remove –force-all aic8800-dkms sudo dpkg –remove –force-all aic8800-dkms sudo rm -rf /var/lib/dkms/aic8800 ``` then installed the deb packages from https://github.com/radxa-pkg/aic8800/releases/tag/4.0%2Bgit20250410.b99ca8b6-3 ``` sudo dpkg -i aic8800-firmware_4.0+git20250410.b99ca8b6-3_all.deb sudo dpkg -i aic8800-usb-dkms_4.0+git20250410.b99ca8b6-3_all.deb ``` But after two reboots, for some reason, it crashed and I can't retry. I also disable the storage on the Wi-Fi adapter: according to the instructions at https://linux.brostrend.com/advanced/usb_modeswitch/, that is, ``` sudo apt install usb-modeswitch lsusb | grep -E '(0bda|368b|a69c):(8812|b812|c811|b832|c832|1a2b|88df|8d80|8d83|5721|5723)' sudo /usr/sbin/usb_modeswitch -KQ -v a69c -p 5721 ``` When running the lsusb command, the output is: ``` Bus 001 Device 004: ID 368b:8d81 AICSemi AIC 8800D80 ``` I also tried this one because the description says it supports my adapter. They promise support for 368b:* https://github.com/xProbe/aic8800d80-wifi-driver But there are a lot of mistakes there: '''/home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:259:5: warning: no previous prototype for ‘aic_crc32’ [-Wmissing-prototypes] 259 | u32 aic_crc32(u8 p, u32 len, u32 crc) | ^~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c: In function ‘rwnx_plat_flash_bin_upload_android’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:760:15: warning: conversion from ‘long unsigned int’ to ‘u32’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow] 760 | u32 crc = ~0UL; | ^ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c: At top level: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:900:6: warning: no previous prototype for ‘get_fw_path’ [-Wmissing-prototypes] 900 | void get_fw_path(char fw_path){ | ^~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:908:6: warning: no previous prototype for ‘set_testmode’ [-Wmissing-prototypes] 908 | void set_testmode(int val){ | ^~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:912:5: warning: no previous prototype for ‘get_testmode’ [-Wmissing-prototypes] 912 | int get_testmode(void){ | ^~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:916:5: warning: no previous prototype for ‘get_hardware_info’ [-Wmissing-prototypes] 916 | int get_hardware_info(void){ | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:921:5: warning: no previous prototype for ‘get_adap_test’ [-Wmissing-prototypes] 921 | int get_adap_test(void){ | ^~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:925:5: warning: no previous prototype for ‘get_flash_bin_size’ [-Wmissing-prototypes] 925 | int get_flash_bin_size(void) | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:930:5: warning: no previous prototype for ‘get_flash_bin_crc’ [-Wmissing-prototypes] 930 | u32 get_flash_bin_crc(void) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:949:6: warning: no previous prototype for ‘get_userconfig_xtal_cap’ [-Wmissing-prototypes] 949 | void get_userconfig_xtal_cap(xtal_cap_conf_t *xtal_cap) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:962:6: warning: no previous prototype for ‘get_userconfig_txpwr_idx’ [-Wmissing-prototypes] 962 | void get_userconfig_txpwr_idx(txpwr_idx_conf_t *txpwr_idx){ | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:989:6: warning: no previous prototype for ‘get_userconfig_txpwr_ofst’ [-Wmissing-prototypes] 989 | void get_userconfig_txpwr_ofst(txpwr_ofst_conf_t *txpwr_ofst){ | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:1012:6: warning: no previous prototype for ‘rwnx_plat_userconfig_set_value’ [-Wmissing-prototypes] 1012 | void rwnx_plat_userconfig_set_value(char *command, char *value){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth.c:1060:6: warning: no previous prototype for ‘rwnx_plat_userconfig_parsing’ [-Wmissing-prototypes] 1060 | void rwnx_plat_userconfig_parsing(char *buffer, int size){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_usb.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_tx.c:174:18: warning: no previous prototype for ‘rwnx_cmd_malloc’ [-Wmissing-prototypes] 174 | struct rwnx_cmd *rwnx_cmd_malloc(void){ | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_tx.c:203:6: warning: no previous prototype for ‘rwnx_cmd_free’ [-Wmissing-prototypes] 203 | void rwnx_cmd_free(struct rwnx_cmd *cmd){ | ^~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_tx.c:213:5: warning: no previous prototype for ‘rwnx_init_cmd_array’ [-Wmissing-prototypes] 213 | int rwnx_init_cmd_array(void){ | ^~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_tx.c:228:6: warning: no previous prototype for ‘rwnx_free_cmd_array’ [-Wmissing-prototypes] 228 | void rwnx_free_cmd_array(void){ | ^~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_rx.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_txrxif.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_usb.c:1375:5: warning: no previous prototype for ‘aicfw_download_fw_8800’ [-Wmissing-prototypes] 1375 | int aicfw_download_fw_8800(struct aic_usb_dev *usb_dev){ | ^~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_usb.c:1650:5: warning: no previous prototype for ‘aicfw_download_fw’ [-Wmissing-prototypes] 1650 | int aicfw_download_fw(struct aic_usb_dev *usb_dev) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_rx.c:1655:6: warning: no previous prototype for ‘rwnx_rx_handle_msg’ [-Wmissing-prototypes] 1655 | void rwnx_rx_handle_msg(struct rwnx_hw *rwnx_hw, struct ipc_e2a_msg *msg) | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_rx.c:1667:6: warning: no previous prototype for ‘rwnx_rx_handle_print’ [-Wmissing-prototypes] 1667 | void rwnx_rx_handle_print(struct rwnx_hw *rwnx_hw, u8 *msg, u32 len) | ^~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_utils.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicbluetooth_cmds.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_cmds.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_irqs.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_utils.c:23:5: warning: no previous prototype for ‘rwnx_init_aic’ [-Wmissing-prototypes] 23 | int rwnx_init_aic(struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_cfgfile.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_cmds.c:339:6: warning: no previous prototype for ‘cmd_mgr_task_process’ [-Wmissing-prototypes] 339 | void cmd_mgr_task_process(struct work_struct *work) | ^~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.c: In function ‘aicfw_download_fw_8800d80’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.c:375:31: warning: unused variable ‘patch_info’ [-Wunused-variable] 375 | struct aicbt_patch_info_t patch_info = { | ^~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.c:374:31: warning: unused variable ‘head’ [-Wunused-variable] 374 | struct aicbt_patch_table *head = NULL; | ^~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.c: At top level: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80.c:340:12: warning: ‘aicbt_ext_patch_data_load’ defined but not used [-Wunused-function] 340 | static int aicbt_ext_patch_data_load(struct aic_usb_dev *usb_dev, struct aicbt_patch_info_t *patch_info) | ^~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_compat_8800d80x2.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_strs.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_irqs.c:21:13: warning: no previous prototype for ‘rwnx_irq_hdlr’ [-Wmissing-prototypes] 21 | irqreturn_t rwnx_irq_hdlr(int irq, void *dev_id) | ^~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_irqs.c:34:6: warning: no previous prototype for ‘rwnx_task’ [-Wmissing-prototypes] 34 | void rwnx_task(unsigned long data) | ^~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_tx.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/md5.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_txq.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_rx_prealloc.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:344:6: warning: no previous prototype for ‘rwnx_rx_data_skb_resend’ [-Wmissing-prototypes] 344 | void rwnx_rx_data_skb_resend(struct rwnx_hw *rwnx_hw, struct rwnx_vif *rwnx_vif, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1533:5: warning: no previous prototype for ‘reord_flush_tid’ [-Wmissing-prototypes] 1533 | int reord_flush_tid(struct aicwf_rx_priv *rx_priv, struct sk_buff *skb, u8 tid) | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1793:6: warning: no previous prototype for ‘reord_rxframes_process’ [-Wmissing-prototypes] 1793 | bool reord_rxframes_process(struct aicwf_rx_priv *rx_priv, struct reord_ctrl *preorder_ctrl, int bforced) | ^~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1829:6: warning: no previous prototype for ‘reord_rxframes_ind’ [-Wmissing-prototypes] 1829 | void reord_rxframes_ind(struct aicwf_rx_priv *rx_priv, | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1915:5: warning: no previous prototype for ‘reord_process_unit’ [-Wmissing-prototypes] 1915 | int reord_process_unit(struct recv_msdu *pframe, struct aicwf_rx_priv *rx_priv, struct sk_buff *skb, u16 seq_num, u8 tid, u8 forward, u8 is_amsdu) | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:2115:6: warning: no previous prototype for ‘remove_sec_hdr_mgmt_frame’ [-Wmissing-prototypes] 2115 | void remove_sec_hdr_mgmt_frame(struct hw_rxhdr *hw_rxhdr,struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:2196:6: warning: no previous prototype for ‘defrag_timeout_cb’ [-Wmissing-prototypes] 2196 | void defrag_timeout_cb(struct timer_list *t) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_tx.c:1244:5: warning: no previous prototype for ‘intf_tx’ [-Wmissing-prototypes] 1244 | int intf_tx(struct rwnx_hw *priv,struct msg_buf *msg) | ^~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.o In file included from ./include/linux/string.h:390, from ./include/linux/dma-mapping.h:7, from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:10: In function ‘fortify_memcpy_chk’, inlined from ‘rwnx_rx_add_rtap_hdr’ at /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1365:9, inlined from ‘rwnx_rx_monitor’ at /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:1405:5, inlined from ‘rwnx_rxdataind_aicwf’ at /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_rx.c:2335:13: ./include/linux/fortify-string.h:571:25: warning: call to ‘__write_overflow_field’ declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning] 571 | write_overflow_field(p_size_field, size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_txq_prealloc.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_txq.c:154:6: warning: no previous prototype for ‘rwnx_txq_flush’ [-Wmissing-prototypes] 154 | void rwnx_txq_flush(struct rwnx_hw *rwnx_hw, struct rwnx_txq *txq) | ^~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_txq_prealloc.c:13:7: warning: no previous prototype for ‘aicwf_prealloc_txq_alloc’ [-Wmissing-prototypes] 13 | void aicwf_prealloc_txq_alloc(size_t size) | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aicwf_txq_prealloc.c:50:6: warning: no previous prototype for ‘aicwf_prealloc_txq_free’ [-Wmissing-prototypes] 50 | void aicwf_prealloc_txq_free(void) | ^~~~~~~~~~~~~~~~~~~~~~~ LD [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic_load_fw/aic_load_fw.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_mod_params.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_mesh.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:552:6: warning: no previous prototype for ‘rwnx_skb_align_8bytes’ [-Wmissing-prototypes] 552 | void rwnx_skb_align_8bytes(struct sk_buff skb){ | ^~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:619:6: warning: no previous prototype for ‘rwnx_frame_parser’ [-Wmissing-prototypes] 619 | void rwnx_frame_parser(char tag, char data, unsigned long len){ | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:1157:6: warning: no previous prototype for ‘rwnx_update_mesh_power_mode’ [-Wmissing-prototypes] 1157 | void rwnx_update_mesh_power_mode(struct rwnx_vif *vif) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_defs.h:32, from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:25: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_compat.h:395:5: warning: no previous prototype for ‘rwnx_select_queue’ [-Wmissing-prototypes] 395 | rwnx_select_queue(dev, skb, sb_dev) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:1736:5: note: in expansion of macro ‘rwnx_select_queue’ 1736 | u16 rwnx_select_queue(struct net_device *dev, struct sk_buff *skb, | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:2029:6: warning: no previous prototype for ‘aicwf_p2p_alive_timeout’ [-Wmissing-prototypes] 2029 | void aicwf_p2p_alive_timeout(struct timer_list *t) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:2708:5: warning: no previous prototype for ‘rwnx_send_check_p2p’ [-Wmissing-prototypes] 2708 | int rwnx_send_check_p2p(struct cfg80211_scan_request *param){ | ^~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:3564:6: warning: no previous prototype for ‘apm_staloss_work_process’ [-Wmissing-prototypes] 3564 | void apm_staloss_work_process(struct work_struct *work) | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:3678:6: warning: no previous prototype for ‘apm_probe_sta_work_process’ [-Wmissing-prototypes] 3678 | void apm_probe_sta_work_process(struct work_struct *work) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:4216:5: warning: no previous prototype for ‘rwnx_cfg80211_set_monitor_channel’ [-Wmissing-prototypes] 4216 | int rwnx_cfg80211_set_monitor_channel(struct wiphy *wiphy, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:4228:5: warning: no previous prototype for ‘rwnx_cfg80211_probe_client’ [-Wmissing-prototypes] 4228 | int rwnx_cfg80211_probe_client(struct wiphy *wiphy, struct net_device *dev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:4265:6: warning: no previous prototype for ‘rwnx_cfg80211_mgmt_frame_register’ [-Wmissing-prototypes] 4265 | void rwnx_cfg80211_mgmt_frame_register(struct wiphy *wiphy, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:4969:5: warning: no previous prototype for ‘rwnx_cfg80211_channel_switch’ [-Wmissing-prototypes] 4969 | int rwnx_cfg80211_channel_switch(struct wiphy *wiphy, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:5311:5: warning: no previous prototype for ‘rwnx_cfg80211_change_bss’ [-Wmissing-prototypes] 5311 | int rwnx_cfg80211_change_bss(struct wiphy *wiphy, struct net_device *dev, | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:8438:5: warning: no previous prototype for ‘rwnx_ic_system_init’ [-Wmissing-prototypes] 8438 | int rwnx_ic_system_init(struct rwnx_hw *rwnx_hw){ | ^~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:8477:5: warning: no previous prototype for ‘rwnx_ic_rf_init’ [-Wmissing-prototypes] 8477 | int rwnx_ic_rf_init(struct rwnx_hw *rwnx_hw){ | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_main.c:8516:6: warning: no previous prototype for ‘aic_ipc_setting’ [-Wmissing-prototypes] 8516 | void aic_ipc_setting(struct rwnx_vif rwnx_vif){ | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_mod_params.c:270:6: warning: no previous prototype for ‘rwnx_get_countrycode_channels’ [-Wmissing-prototypes] 270 | void rwnx_get_countrycode_channels(struct wiphy wiphy, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_pci.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:762:5: warning: no previous prototype for ‘rwnx_request_firmware_common’ [-Wmissing-prototypes] 762 | int rwnx_request_firmware_common(struct rwnx_hw rwnx_hw, u32 buffer, const char filename) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:773:6: warning: no previous prototype for ‘rwnx_release_firmware_common’ [-Wmissing-prototypes] 773 | void rwnx_release_firmware_common(u32 buffer) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:790:5: warning: no previous prototype for ‘rwnx_plat_bin_fw_upload_2’ [-Wmissing-prototypes] 790 | int rwnx_plat_bin_fw_upload_2(struct rwnx_hw *rwnx_hw, u32 fw_addr, | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:1959:5: warning: no previous prototype for ‘rwnx_atoi2’ [-Wmissing-prototypes] 1959 | int rwnx_atoi2(char *value, int c_len) | ^~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:1986:5: warning: no previous prototype for ‘rwnx_atoi’ [-Wmissing-prototypes] 1986 | int rwnx_atoi(char *value) | ^~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:2334:6: warning: no previous prototype for ‘get_userconfig_xtal_cap’ [-Wmissing-prototypes] 2334 | void get_userconfig_xtal_cap(xtal_cap_conf_t *xtal_cap) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:2343:6: warning: no previous prototype for ‘rwnx_plat_nvram_set_value’ [-Wmissing-prototypes] 2343 | void rwnx_plat_nvram_set_value(char *command, char *value) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:2649:6: warning: no previous prototype for ‘rwnx_plat_nvram_set_value_8800d80x2’ [-Wmissing-prototypes] 2649 | void rwnx_plat_nvram_set_value_8800d80x2(char *command, char *value) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:2872:6: warning: no previous prototype for ‘rwnx_plat_userconfig_parsing_8800d80x2’ [-Wmissing-prototypes] 2872 | void rwnx_plat_userconfig_parsing_8800d80x2(char *buffer, int size) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_dini.o In function ‘rwnx_plat_patch_load’, inlined from ‘rwnx_platform_on’ at /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:3563:11: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:1589:9: warning: ‘sprintf’ argument 3 overlaps destination object ‘aic_fw_path’ [-Wrestrict] 1589 | sprintf(aic_fw_path, «%s/%s», aic_fw_path, «aic8800DC»); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c: In function ‘rwnx_platform_on’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_platform.c:51:13: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here 51 | extern char aic_fw_path[FW_PATH_MAX_LEN]; | ^~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_pci.c:85:5: warning: no previous prototype for ‘rwnx_pci_register_drv’ [-Wmissing-prototypes] 85 | int rwnx_pci_register_drv(void) | ^~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_pci.c:90:6: warning: no previous prototype for ‘rwnx_pci_unregister_drv’ [-Wmissing-prototypes] 90 | void rwnx_pci_unregister_drv(void) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_dini.c:105:5: warning: no previous prototype for ‘rwnx_cfpga_irq_enable’ [-Wmissing-prototypes] 105 | int rwnx_cfpga_irq_enable(struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_dini.c:129:5: warning: no previous prototype for ‘rwnx_cfpga_irq_disable’ [-Wmissing-prototypes] 129 | int rwnx_cfpga_irq_disable(struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_v7.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/ipc_host.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_tdls.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/regdb.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/md5.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_vendor.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_priv_cmd.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800dc.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_vendor.c:41:5: warning: no previous prototype for ‘aic_dev_start_mkeep_alive’ [-Wmissing-prototypes] 41 | int aic_dev_start_mkeep_alive(struct rwnx_hw *rwnx_hw, struct rwnx_vif *rwnx_vif, | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_vendor.c:69:5: warning: no previous prototype for ‘aic_dev_stop_mkeep_alive’ [-Wmissing-prototypes] 69 | int aic_dev_stop_mkeep_alive(struct rwnx_hw *rwnx_hw, struct rwnx_vif *rwnx_vif, u8 mkeep_alive_id) | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_vendor.c:1064:5: warning: no previous prototype for ‘aicwf_vendor_init’ [-Wmissing-prototypes] 1064 | int aicwf_vendor_init(struct wiphy *wiphy) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_priv_cmd.c:235:14: warning: no previous prototype for ‘command_strtoul’ [-Wmissing-prototypes] 235 | unsigned int command_strtoul(const char *cp, char **endp, unsigned int base) | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_priv_cmd.c:268:5: warning: no previous prototype for ‘str_starts’ [-Wmissing-prototypes] 268 | int str_starts(const char *str, const char *start) | ^~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_priv_cmd.c:1614:5: warning: no previous prototype for ‘handle_private_cmd’ [-Wmissing-prototypes] 1614 | int handle_private_cmd(struct net_device *net, char *command, u32 cmd_len) | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aic_priv_cmd.c:1730:6: warning: no previous prototype for ‘set_mon_chan’ [-Wmissing-prototypes] 1730 | void set_mon_chan(struct rwnx_vif *vif, char *parameter) | ^~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800dc.c:2637:5: warning: no previous prototype for ‘aicwf_patch_var_config_8800dc’ [-Wmissing-prototypes] 2637 | int aicwf_patch_var_config_8800dc(struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800dc.c:3585:5: warning: no previous prototype for ‘set_bbpll_config’ [-Wmissing-prototypes] 3585 | int set_bbpll_config(struct rwnx_hw *rwnx_hw){ | ^~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.c:19:5: warning: no previous prototype for ‘aicwf_set_rf_config_8800d80’ [-Wmissing-prototypes] 19 | int aicwf_set_rf_config_8800d80(struct rwnx_hw *rwnx_hw, struct mm_set_rf_calib_cfm *cfm) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.c:39:9: warning: no previous prototype for ‘rwnx_plat_userconfig_load_8800d80’ [-Wmissing-prototypes] 39 | int rwnx_plat_userconfig_load_8800d80(struct rwnx_hw *rwnx_hw){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.c: In function ‘rwnx_plat_userconfig_load_8800d80’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.c:57:13: warning: ‘sprintf’ argument 3 overlaps destination object ‘aic_fw_path’ [-Wrestrict] 57 | sprintf(aic_fw_path, «%s/%s», aic_fw_path, «aic8800D80»); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80.c:11:13: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here 11 | extern char aic_fw_path[200]; | ^~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_radar.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/usb_host.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.c:17:5: warning: no previous prototype for ‘aicwf_set_rf_config_8800d80x2’ [-Wmissing-prototypes] 17 | int aicwf_set_rf_config_8800d80x2(struct rwnx_hw *rwnx_hw, struct mm_set_rf_calib_cfm *cfm) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.c:37:9: warning: no previous prototype for ‘rwnx_plat_userconfig_load_8800d80x2’ [-Wmissing-prototypes] 37 | int rwnx_plat_userconfig_load_8800d80x2(struct rwnx_hw *rwnx_hw){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.c: In function ‘rwnx_plat_userconfig_load_8800d80x2’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.c:43:5: warning: ‘sprintf’ argument 3 overlaps destination object ‘aic_fw_path’ [-Wrestrict] 43 | sprintf(aic_fw_path, «%s/%s», aic_fw_path, «aic8800D80X2»); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_compat_8800d80x2.c:8:13: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here 8 | extern char aic_fw_path[200]; | ^~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_txrxif.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_radar.c:904:22: warning: no previous prototype for ‘pri_detector_init’ [-Wmissing-prototypes] 904 | struct pri_detector *pri_detector_init(struct dfs_pattern_detector *dpd, | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_radar.c:1073:6: warning: no previous prototype for ‘print_radar_detect_info’ [-Wmissing-prototypes] 1073 | void print_radar_detect_info(struct pri_detector *pde, struct pri_sequence *ps) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:17:6: warning: no previous prototype for ‘intf_tcp_drop_msg’ [-Wmissing-prototypes] 17 | void intf_tcp_drop_msg(struct rwnx_hw *priv, | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:30:6: warning: no previous prototype for ‘tcp_ack_timeout’ [-Wmissing-prototypes] 30 | void tcp_ack_timeout(struct timer_list *t) | ^~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:123:5: warning: no previous prototype for ‘tcp_check_quick_ack’ [-Wmissing-prototypes] 123 | int tcp_check_quick_ack(unsigned char *buf, | ^~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:216:5: warning: no previous prototype for ‘tcp_check_ack’ [-Wmissing-prototypes] 216 | int tcp_check_ack(unsigned char *buf, | ^~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:260:5: warning: no previous prototype for ‘tcp_ack_match’ [-Wmissing-prototypes] 260 | int tcp_ack_match(struct tcp_ack_manage *ack_m, | ^~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:288:6: warning: no previous prototype for ‘tcp_ack_update’ [-Wmissing-prototypes] 288 | void tcp_ack_update(struct tcp_ack_manage *ack_m) | ^~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:313:5: warning: no previous prototype for ‘tcp_ack_alloc_index’ [-Wmissing-prototypes] 313 | int tcp_ack_alloc_index(struct tcp_ack_manage *ack_m) | ^~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:352:5: warning: no previous prototype for ‘tcp_ack_handle’ [-Wmissing-prototypes] 352 | int tcp_ack_handle(struct msg_buf *new_msgbuf, | ^~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_tcp_ack.c:447:5: warning: no previous prototype for ‘tcp_ack_handle_new’ [-Wmissing-prototypes] 447 | int tcp_ack_handle_new(struct msg_buf *new_msgbuf, | ^~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/usb_host.c:35:30: warning: no previous prototype for ‘aicwf_usb_host_txdesc_get’ [-Wmissing-prototypes] 35 | volatile struct txdesc_host *aicwf_usb_host_txdesc_get(struct usb_host_env_tag *env, const int queue_idx) | ^~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_usb.o CC [M] /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.o /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_txrxif.c:1300:17: warning: no previous prototype for ‘rxbuff_queue_penq’ [-Wmissing-prototypes] 1300 | struct rx_buff *rxbuff_queue_penq(struct rx_frame_queue *pq, struct rx_buff *p) | ^~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_usb.c:158:6: warning: no previous prototype for ‘rwnx_stop_sta_all_queues’ [-Wmissing-prototypes] 158 | void rwnx_stop_sta_all_queues(struct rwnx_sta *sta, struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_usb.c:168:6: warning: no previous prototype for ‘rwnx_wake_sta_all_queues’ [-Wmissing-prototypes] 168 | void rwnx_wake_sta_all_queues(struct rwnx_sta *sta, struct rwnx_hw *rwnx_hw) | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c: In function ‘aicwf_get_iwe_stream_mac_addr’: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c:403:25: warning: the comparison will always evaluate as ‘true’ for the address of ‘bssid’ will never be NULL [-Waddress] 403 | if(scan_re->bss && &scan_re->bss->bssid[0]){ | ^~ In file included from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_defs.h:20, from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/rwnx_msg_tx.h:16, from /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c:10: ./include/net/cfg80211.h:2980:12: note: ‘bssid’ declared here 2980 | u8 bssid[ETH_ALEN]; | ^~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c: At top level: /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c:717:5: warning: no previous prototype for ‘aic_get_sec_ie’ [-Wmissing-prototypes] 717 | int aic_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, u8 *wpa_ie, u16 *wpa_len) | ^~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_usb.c:1964:6: warning: no previous prototype for ‘aicwf_usb_cancel_all_urbs’ [-Wmissing-prototypes] 1964 | void aicwf_usb_cancel_all_urbs(struct aic_usb_dev *usb_dev){ | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/igor/aic8800d80-wifi-driver/drivers/aic8800/aic8800_fdrv/aicwf_wext_linux.c:830:4: warning: no previous prototype for ‘aicwf_get_is_wps_ie’ [-Wmissing-prototypes] 830 | u8 aicwf_get_is_wps_ie(u8 *ie_ptr, uint *wps_ielen) | ^~~~~~~~~~~~~~~~~~~ ''' 0 Quote
SteeMan Posted 21 hours ago Posted 21 hours ago Have you installed armbian-firmware-full package? 0 Quote
Игорь Шаповалов Posted 20 hours ago Author Posted 20 hours ago (edited) 38 minutes ago, SteeMan said: Have you installed armbian-firmware-full package? I just tried it on a clean system. I didn't know about this package before. It didn't help me, even though it seemed to have the necessary drivers. But maybe they're for a different version of the adapter. https://github.com/armbian/firmware/tree/master/aic8800/USB Edited 20 hours ago by Игорь Шаповалов 0 Quote
c0rnelius Posted 14 hours ago Posted 14 hours ago If you are using the radxa-pkg github "which is the most up-to-date" know that its hardcoded to point to specific firmware. To get around this you need to create a file: This example is for an SDIO variant using the radxa dkms package cat > /etc/modprobe.d/aic8800-wireless.conf <<- EOT options aic8800_fdrv_sdio aicwf_dbg_level=0 custregd=0 ps_on=0 options aic8800_bsp_sdio aic_fw_path=/lib/firmware/aic8800_fw/SDIO/aic8800 EOT Also note that the AIC8800 firmware located in armbian-firmware is kind of old and probs not compat with the radxa builds. 0 Quote
Игорь Шаповалов Posted 9 minutes ago Author Posted 9 minutes ago I tried several options, each time on a clean system. 1) echo "deb http://apt.armbian.com bookworm main bookworm-utils" | sudo tee /etc/apt/sources.list.d/armbian.list wget -qO - https://apt.armbian.com/armbian.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/armbian.gpg sudo apt-get update sudo apt-get install make sudo apt-get install git sudo apt-get upgrade sudo reboot sudo apt install linux-headers-current-meson64 -y git clone https://github.com/xProbe/aic8800d80-wifi-driver.git sudo cp aic.rules /lib/udev/rules.d/ sudo cp -r ./fw/aic8800D80 /lib/firmware/ cd ./drivers/aic8800 make sudo make install sudo modprobe aic8800_fdrv lsmod | grep aic Вывод aic8800_fdrv 499712 0 aic_load_fw 65536 1 aic8800_fdrv cfg80211 385024 3 mac80211,rtl8xxxu,aic8800_fdrv dmesg выдаёт: [ 14.463892] Bluetooth: hci0: command 0xfc18 tx timeout [ 14.471627] Bluetooth: hci0: BCM: failed to write update baudrate (-110) [ 14.477696] Bluetooth: hci0: Failed to set baudrate [ 14.765636] wlan0: authenticate with 58:f8:5c:58:72:6c (local address=00:c6:a 2:25:44:eb) [ 14.770507] systemd[1]: Finished armbian-ramlog.service - Armbian memory supp orted logging. [ 14.772632] wlan0: send auth to 58:f8:5c:58:72:6c (try 1/3) [ 14.783084] wlan0: authenticated [ 14.791828] wlan0: associate with 58:f8:5c:58:72:6c (try 1/3) [ 14.796409] wlan0: RX AssocResp from 58:f8:5c:58:72:6c (capab=0x411 status=0 aid=4) [ 14.803902] usb 1-2: rtl8xxxu_bss_info_changed: HT supported [ 14.809513] wlan0: associated [ 14.809799] systemd[1]: Starting systemd-journald.service - Journal Service.. . [ 14.972227] systemd-journald[1340]: Collecting audit messages is disabled. [ 15.122032] systemd[1]: Started systemd-journald.service - Journal Service. [ 15.252235] systemd-journald[1340]: Received client request to flush runtime journal. [ 15.342582] systemd-journald[1340]: /var/log/journal/d44cb1f74dea4809a2af30db 6816ca18/system.journal: Realtime clock jumped backwards relative to last journa l entry, rotating. [ 15.410914] systemd-journald[1340]: Rotating system journal. [ 16.511866] Bluetooth: hci0: command 0xfc18 tx timeout [ 16.514129] Bluetooth: hci0: BCM: Reset failed (-110) [ 17.317977] systemd-journald[1340]: Received client request to relinquish /va r/log/journal/d44cb1f74dea4809a2af30db6816ca18 access. [ 950.587521] aic_load_fw: loading out-of-tree module taints kernel. [ 950.600781] aic_bluetooth_mod_init [ 950.606085] RELEASE DATE:2025_0423_71b66e7b [ 950.611193] AICWFDBG(LOGINFO) aicwf_prealloc_init enter [ 950.635622] AICWFDBG(LOGINFO) pre alloc rxbuff list len: 1000 [ 950.640969] usbcore: registered new interface driver aic_load_fw [ 950.678054] AICWFDBG(LOGINFO) rwnx v6.4.3.0 - 1a4b0054d2M (master) [ 950.680449] AICWFDBG(LOGINFO) RELEASE DATE:2025_0423_71b66e7b [ 950.686449] usbcore: registered new interface driver aic8800_fdrv 2) Quote echo "deb http://apt.armbian.com bookworm main bookworm-utils" | sudo tee /etc/apt/sources.list.d/armbian.list wget -qO - https://apt.armbian.com/armbian.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/armbian.gpg sudo apt-get update sudo apt-get install make sudo apt-get install git sudo apt-get upgrade sudo reboot sudo apt install linux-headers-current-meson64 -y git clone https://github.com/shenmintao/aic8800d80.git cd ./aic8800d80/ sudo cp aic.rules /lib/udev/rules.d/ sudo cp -r ./fw/aic8800D80 /lib/firmware/ cd ./drivers/aic8800 make ошибка : https://disk.yandex.ru/d/UOkf_HgNja7laQ sudo make install sudo modprobe aic8800_fdrv lsmod | grep aic output: aic8800_fdrv 499712 0 aic_load_fw 65536 1 aic8800_fdrv cfg80211 385024 3 mac80211,rtl8xxxu,aic8800_fdrv dmesg output: [ 13.024333] Bluetooth: hci0: command 0xfc18 tx timeout [ 13.026721] Bluetooth: hci0: BCM: failed to write update baudrate (-110) [ 13.033100] Bluetooth: hci0: Failed to set baudrate [ 13.065591] systemd[1]: Finished armbian-ramlog.service - Armbian memory supported logging. [ 13.085167] systemd[1]: Starting systemd-journald.service - Journal Service... [ 13.250843] wlan0: authenticate with 58:f8:5c:58:72:6c (local address=00:c6:a2:25:44:eb) [ 13.255251] systemd-journald[1336]: Collecting audit messages is disabled. [ 13.260274] wlan0: send auth to 58:f8:5c:58:72:6c (try 1/3) [ 13.284602] wlan0: authenticated [ 13.288292] wlan0: associate with 58:f8:5c:58:72:6c (try 1/3) [ 13.295552] wlan0: RX AssocResp from 58:f8:5c:58:72:6c (capab=0x411 status=0 aid=4) [ 13.300571] usb 1-2: rtl8xxxu_bss_info_changed: HT supported [ 13.306344] wlan0: associated [ 13.411603] systemd[1]: Started systemd-journald.service - Journal Service. [ 13.543257] systemd-journald[1336]: Received client request to flush runtime journal. [ 13.563011] systemd-journald[1336]: /var/log/journal/626609f3eb164bb983fb1df75ed6a0bf/system.journal: Realtime clock jumped backwards relative to last journal entry, rotating. [ 13.579012] systemd-journald[1336]: Rotating system journal. [ 14.612407] systemd-journald[1336]: Received client request to relinquish /var/log/journal/626609f3eb164bb983fb1df75ed6a0bf access. [ 15.040392] Bluetooth: hci0: command 0xfc18 tx timeout [ 15.040445] Bluetooth: hci0: BCM: Reset failed (-110) [ 1081.548020] aic_load_fw: loading out-of-tree module taints kernel. [ 1081.553376] aic_bluetooth_mod_init [ 1081.555235] RELEASE DATE:2025_0423_71b66e7b [ 1081.558113] AICWFDBG(LOGINFO) aicwf_prealloc_init enter [ 1081.571392] AICWFDBG(LOGINFO) pre alloc rxbuff list len: 1000 [ 1081.573352] usbcore: registered new interface driver aic_load_fw [ 1081.611455] AICWFDBG(LOGINFO) rwnx v6.4.3.0 - 1a4b0054d2M (master) [ 1081.613737] AICWFDBG(LOGINFO) RELEASE DATE:2025_0423_71b66e7b [ 1081.619768] usbcore: registered new interface driver aic8800_fdrv [ 1138.964322] systemd-journald[1336]: Received client request to flush runtime journal. [ 1139.175702] systemd-journald[1336]: Received client request to relinquish /var/log/journal/626609f3eb164bb983fb1df75ed6a0bf access. 3) Quote echo "deb http://apt.armbian.com bookworm main bookworm-utils" | sudo tee /etc/apt/sources.list.d/armbian.list wget -qO - https://apt.armbian.com/armbian.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/armbian.gpg sudo apt-get update -y sudo apt-get install make -y sudo apt-get install git -y sudo apt-get upgrade -y sudo reboot sudo apt install linux-headers-current-meson64 -y git clone https://github.com/goecho/aic8800_linux_drvier.git cd aic8800_linux_drvier make error: https://disk.yandex.ru/d/uMug5aBJ97Z-Cg sudo make install lsmod | grep aic the output is empty 4) Quote echo "deb http://apt.armbian.com bookworm main bookworm-utils" | sudo tee /etc/apt/sources.list.d/armbian.list wget -qO - https://apt.armbian.com/armbian.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/armbian.gpg sudo apt-get update -y sudo apt-get install make -y sudo apt-get install git -y sudo apt-get upgrade -y sudo reboot sudo apt install linux-headers-current-meson64 -y git clone https://github.com/goecho/aic8800_linux_drvier.git cd aic8800_linux_drvier make error: https://disk.yandex.ru/d/uMug5aBJ97Z-Cg sudo make install lsmod | grep aic The output is empty 14 hours ago, c0rnelius said: To get around this you need to create a file: I tried it, it didn't help. 5) Quote echo "deb http://apt.armbian.com bookworm main bookworm-utils" | sudo tee /etc/apt/sources.list.d/armbian.list wget -qO - https://apt.armbian.com/armbian.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/armbian.gpg sudo apt-get update -y sudo apt-get install make -y sudo apt-get install git -y sudo apt-get upgrade -y sudo reboot sudo apt install linux-headers-current-meson64 -y packege : https://github.com/radxa-pkg/aic8800/actions/runs/19564172869 sudo dpkg -i aic8800-firmware_4.0+git20250410.b99ca8b6-3_all.deb sudo dpkg -i aic8800-usb-dkms_4.0+git20250410.b99ca8b6-3_all.deb error: https://disk.yandex.ru/d/uMug5aBJ97Z-Cg sudo make install sudo modprobe aic_load_fw_usb sudo modprobe aic8800_fdrv_usb sudo modprobe aic_btusb_usb lsmod | grep aic Вывод : aic_btusb 36864 0 aic8800_fdrv 462848 0 aic_load_fw 65536 1 aic8800_fdrv bluetooth 671744 7 btrtl,aic_btusb,btqca,btintel,hci_uart,btbcm cfg80211 385024 3 mac80211,rtl8xxxu,aic8800_fdrv sudo nano /etc/modprobe.d/aic8800-wireless.conf options aic8800_fdrv_usb aicwf_dbg_level=0 custregd=0 ps_on=0 options aic8800_bsp_usb aic_fw_path=/lib/firmware/aic8800_fw/USB/aic8800 dmesg output: [ 13.983786] Bluetooth: hci0: command 0xfc18 tx timeout [ 13.990964] Bluetooth: hci0: BCM: failed to write update baudrate (-110) [ 14.001210] Bluetooth: hci0: Failed to set baudrate [ 14.174328] systemd[1]: Finished armbian-ramlog.service - Armbian memory supported logging. [ 14.200391] systemd[1]: Starting systemd-journald.service - Journal Service... [ 14.367908] systemd-journald[1340]: Collecting audit messages is disabled. [ 14.453762] wlan0: authenticate with 58:f8:5c:58:72:6c (local address=00:c6:a2:25:44:eb) [ 14.462617] wlan0: send auth to 58:f8:5c:58:72:6c (try 1/3) [ 14.470949] wlan0: authenticated [ 14.479802] wlan0: associate with 58:f8:5c:58:72:6c (try 1/3) [ 14.490171] wlan0: RX AssocResp from 58:f8:5c:58:72:6c (capab=0x411 status=0 aid=1) [ 14.499332] usb 1-2: rtl8xxxu_bss_info_changed: HT supported [ 14.506531] wlan0: associated [ 14.522634] systemd[1]: Started systemd-journald.service - Journal Service. [ 14.736569] systemd-journald[1340]: Received client request to flush runtime journal. [ 14.763186] systemd-journald[1340]: /var/log/journal/42dcedbb7179488280b357697f5f5621/system.journal: Realtime clock jumped backwards relative to last journal entry, rotating. [ 14.786195] systemd-journald[1340]: Rotating system journal. [ 15.898781] systemd-journald[1340]: Received client request to relinquish /var/log/journal/42dcedbb7179488280b357697f5f5621 access. [ 16.035850] Bluetooth: hci0: command 0xfc18 tx timeout [ 16.035962] Bluetooth: hci0: BCM: Reset failed (-110) 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.