Jump to content

Recommended Posts

Posted

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) | ^~~~~~~~~~~~~~~~~~~ '''

 

Posted (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 by Игорь Шаповалов
Posted

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.

 

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines