Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

The noname aic8800 ax900 bt5.4 usb WiFi module fails to start.

Featured Replies

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

 

  • Author
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 Игорь Шаповалов

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.

 

  • Author

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)

 

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

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.