赛昉科技
直播中

杨杰

8年用户 1209经验值
私信 关注
[问答]

debian 12上无法使用aic8800芯片的网卡?怎么解决?


我有一台赛昉科技的visionfive2开发板,操作系统为debian12  for  RISCV版本,内核为6.6.20,USB无线网卡为TP-Link  TL-XDN7000H,驱动模块为
user@starfive:~/下载/initramfs$ sudo modinfo  aic8800_fdrv
filename:       /lib/modules/6.6.20-starfive/kernel/drivers/net/wireless/aic8800/aic8800_fdrv/aic8800_fdrv.ko
license:        GPL
author:         Copyright(c) 2015-2017 RivieraWaves RivieraWaves S.A.S
version:        6.4.3.0
description:    RivieraWaves 11nac driver for Linux cfg80211
firmware:       rwnx_settings.ini
import_ns:      VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver
firmware:       fmacfw.bin
firmware:       fmacfw.ihex
firmware:       ldpcram.bin
firmware:       fcuram.bin
firmware:       agcram.bin
srcversion:     76B7DF7CB1049E2E4B15C35
alias:          usb:vA69Cp88DDd[i]dcdsc[i]dpic[i]iscip[i]in
alias:          usb:vA69Cp88DCd[i]dcdsc[i]dpicFFiscFFipFFin*
alias:          usb:vA69Cp8D81d[i]dcdsc[i]dpicFFiscFFipFFin*
alias:          usb:vA69Cp8801d[i]dcdsc[i]dpicFFiscFFipFFin*
depends:        aic_load_fw
intree:         Y
name:           aic8800_fdrv
vermagic:       6.6.20-starfive SMP mod_unload modversions riscvRANDSTRUCT_32719b72561f88f8fca345f99b770f62cb4ac82689928457cdae02c26550bcbb
parm:           align_param:int
parm:           ant_div:Enable Antenna Diversity (Default: 1) (bool)
parm:           ht_on:Enable HT (Default: 1) (bool)
parm:           vht_on:Enable VHT (Default: 1) (bool)
parm:           he_on:Enable HE (Default: 1) (bool)
parm:           mcs_map:VHT MCS map value  0: MCS0_7, 1: MCS0_8, 2: MCS0_9 (Default: 2) (int)
parm:           he_mcs_map:HE MCS map value  0: MCS0_7, 1: MCS0_9, 2: MCS0_11 (Default: 2) (int)
parm:           he_ul_on:Enable HE OFDMA UL (Default: 0) (bool)
parm:           amsdu_maxnb:Maximum number of MSDUs inside an A-MSDU in TX: (Default: NX_TX_PAYLOAD_MAX) (int)
parm:           ps_on:Enable PowerSaving (Default: 1-Enabled) (bool)
parm:           tx_lft:Tx lifetime (ms) - setting it to 0 disables retries (Default: 1000) (int)
parm:           ldpc_on:Enable LDPC (Default: 1) (bool)
parm:           stbc_on:Enable STBC in RX (Default: 1) (bool)
parm:           gf_rx_on:Enable HT greenfield in reception (Default: 1) (bool)
parm:           phycfg:0 <= phycfg <= 5 : RF Channel Conf (Default: 2(C0-A1-B2)) (int)
parm:           uapsd_timeout:UAPSD Timer timeout, in ms (Default: 300). If 0, UAPSD is disabled (int)
parm:           uapsd_queues:UAPSD Queues, integer value, must be seen as a bitfield
Bit 0 = VO
Bit 1 = VI
Bit 2 = BK
Bit 3 = BE
→ uapsd_queues=7 will enable uapsd for VO, VI and BK queues (int)
parm:           ap_uapsd_on:Enable UAPSD in AP mode (Default: 1) (bool)
parm:           sgi:Advertise Short Guard Interval support (Default: 1) (bool)
parm:           sgi80:Advertise Short Guard Interval support for 80MHz (Default: 1) (bool)
parm:           use_2040:Use tweaked 20-40MHz mode (Default: 1) (bool)
parm:           use_80:Enable 80MHz (Default: 1) (bool)
parm:           custregd:Use permissive custom regulatory rules (for testing ONLY) (Default: 0) (bool)
parm:           custchan:Extend channel set to non-standard channels (for testing ONLY) (Default: 0) (bool)
parm:           nss:1 <= nss <= 2 : Supported number of Spatial Streams (Default: 1) (int)
parm:           amsdu_rx_max:0 <= amsdu_rx_max <= 2 : Maximum A-MSDU size supported in RX
0: 3895 bytes
1: 7991 bytes
2: 11454 bytes
This value might be reduced according to the FW capabilities.
Default: 2 (int)
parm:           bfmee:Enable Beamformee Capability (Default: 1-Enabled) (bool)
parm:           bfmer:Enable Beamformer Capability (Default: 0-Disabled) (bool)
parm:           mesh:Enable Meshing Capability (Default: 1-Enabled) (bool)
parm:           murx:Enable MU-MIMO RX Capability (Default: 1-Enabled) (bool)
parm:           mutx:Enable MU-MIMO TX Capability (Default: 1-Enabled) (bool)
parm:           mutx_on:Enable MU-MIMO transmissions (Default: 1-Enabled) (bool)
parm:           roc_dur_max:Maximum Remain on Channel duration (int)
parm:           listen_itv:Maximum listen interval (int)
parm:           listen_bcmc:Wait for BC/MC traffic following DTIM beacon (bool)
parm:           lp_clk_ppm:Low Power Clock accuracy of the local device (int)
parm:           tdls:Enable TDLS (Default: 1-Enabled) (bool)
parm:           uf:Enable Unsupported HT Frame Logging (Default: 0-Disabled) (bool)
parm:           auto_reply:Enable Monitor MacAddr Auto-Reply (Default: 0-Disabled) (bool)
parm:           ftl:Firmware trace level  (Default: “”) (charp)
parm:           dpsm:Enable Dynamic PowerSaving (Default: 1-Enabled) (bool)
parm:           country_code:string
parm:           ccode_channels:string
parm:           aicwf_dbg_level:int
parm:           reorder_timeout:int


固件为
sudo modinfo  aic_load_fw
filename:       /lib/modules/6.6.20-starfive/kernel/drivers/net/wireless/aic8800/aic_load_fw/aic_load_fw.ko
license:        GPL
author:         Copyright(c) 2015-2020 AICSemi AICSemi
version:        1.0
description:    AIC BLUETOOTH
firmware:       fw.bin
srcversion:     F91445FE2B12AF8F44B99B6
alias:          usb:vA69Cp8D81d[i]dcdsc[i]dpic[i]iscip[i]in
alias:          usb:vA69Cp8D80d[i]dcdsc[i]dpic[i]iscip[i]in
alias:          usb:vA69Cp8801d[i]dcdsc[i]dpic[i]iscip[i]in
alias:          usb:vA69Cp8800d[i]dcdsc[i]dpic[i]iscip[i]in
depends:
intree:         Y
name:           aic_load_fw
vermagic:       6.6.20-starfive SMP mod_unload modversions riscvRANDSTRUCT_32719b72561f88f8fca345f99b770f62cb4ac82689928457cdae02c26550bcbb
parm:           aic_fw_path:string
parm:           aicwf_dbg_level:int
parm:           ble_scan_wakeup_reboot_time:int
parm:           testmode:int
parm:           adap_test:int
parm:           paringid:string
dmesg信息为
user@starfive:~/下载/initramfs$ dmesg
[316794.809258] usb 1-1.1: USB disconnect, device number 11
[316794.814816] aicwf_usb_disconnect enter
[316820.460952] usb 1-1.1: new high-speed USB device number 12 using xhci_hcd
[316820.593893] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[316820.600981] scsi host0: usb-storage 1-1.1:1.0
[316821.611768] scsi 0:0:0:0: Direct-Access     AIC      flash            1.0  PQ: 0 ANSI: 4
[316821.624856] sd 0:0:0:0: [sda] 7904 512-byte logical blocks: (4.05 MB/3.86 MiB)
[316821.633107] sd 0:0:0:0: [sda] Write Protect is on
[316821.638015] sd 0:0:0:0: [sda] Mode Sense: 03 00 80 00
[316821.639433] sd 0:0:0:0: [sda] No Caching mode page found
[316821.644933] sd 0:0:0:0: [sda] Assuming drive cache: write through
[316821.658015]  sda: sda1
[316821.664726] sd 0:0:0:0: [sda] Attached SCSI removable disk
[316822.502284] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s
[316822.512046] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x1b 1b 00 00 00 02 00
[316822.519437] usb 1-1.1: USB disconnect, device number 12
[316823.190813] usb 1-1.1: new high-speed USB device number 13 using xhci_hcd
[316823.325133] AICWFDBG(LOGINFO)        aicwf_usb_probe vid:0xA69C pid:0x8D80 icl:0x0 isc:0x0 ipr:0x0
[316823.333851] AICWFDBG(LOGINFO)        aicloadfw_chipmatch USE AIC8800D80
[316823.340443] Aic high speed USB device detected
[316823.347790] chip_id=7
[316823.350185] aic_load_firmware :firmware path = /lib/firmware/aic8800/fw_adid_8800d80_u02.bin
[316823.359202] file md5:f546881a81b960d89a672578eb45a809
[316823.364528] ### Upload fw_adid_8800d80_u02.bin firmware, @ = 201940  size=1708
[316823.372359] fw download complete


[316823.377281] aic_load_firmware :firmware path = /lib/firmware/aic8800/fw_patch_8800d80_u02.bin
[316823.386828] file md5:a253bc880de32539b6c29435ed66e895
[316823.392146] ### Upload fw_patch_8800d80_u02.bin firmware, @ = 20b43c  size=25300
[316825.450726] cmd timed-out
[316825.453468] tkn[21]  flags:0012  result: -4  cmd:1035 - reqcfm(1036)
[316825.459986] cmd queue crashed
[316825.463131] bin upload fail: 21003c, err:-32
[316825.467766] fw download complete


[316825.472781] aicwf_bus_deinit
[316825.973197] usb_err:: bus is not up=0
[316825.983097] usb_err:: bus is not up=0
[316825.989928] usb_err:: bus is not up=0
[316825.998252] usb_err:: bus is not up=0
[316826.005098] usb_err:: bus is not up=0
[316826.011863] usb_err:: bus is not up=0
[316826.018671] usb_err:: bus is not up=0
[316826.025491] usb_err:: bus is not up=0
[316826.032343] usb_err:: bus is not up=0
[316826.039140] usb_err:: bus is not up=0
[316826.046025] usb_err:: bus is not up=0
[316826.052896] usb_err:: bus is not up=0
[316826.059667] usb bustx thread will to stop
[316826.063834] usb bustx thread stop
[316826.067300] exit aicwf_bus_deinit
[316826.070857] usb_err:: failed with errno 0
[327294.155205] starfive-dwmac 16030000.ethernet eth0: Link is Down
[327298.315412] starfive-dwmac 16030000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[327312.874058] starfive-dwmac 16030000.ethernet eth0: Link is Down
[327337.834407] starfive-dwmac 16030000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx

回帖(2)

陈杰

2025-6-23 17:15:18

在Debian 12上解决AIC8800芯片的USB无线网卡(TP-Link TL-XDN7000H)问题,请按以下步骤操作:




1. 确认驱动加载情况


   # 检查驱动是否加载
   lsmod | grep aic8800

   # 若未加载,手动加载驱动
   sudo modprobe aic8800_fdrv


  • 若提示 Module not found,说明驱动未正确安装(见步骤2)。

  • 若加载成功但仍无法使用,检查固件(步骤3)。




2. 安装/更新驱动


驱动路径 /lib/modules/6.6.20-starfive/kernel/drivers/net/wireless/aic8800/aic8800_fdrv/aic8800_fdrv.ko 存在,但可能不兼容当前内核。建议重新编译驱动:


   # 安装编译依赖
   sudo apt update
   sudo apt install build-essential linux-headers-$(uname -r) git

   # 下载AIC8800驱动源码(示例仓库,实际需确认)
   git clone https://github.com/openfw/aic8800-fdrv.git
   cd aic8800-fdrv

   # 编译并安装
   make -j$(nproc)
   sudo make install
   sudo depmod -a
   sudo modprobe aic8800_fdrv



3. 检查固件文件


驱动需要固件文件(如 aic8800_fw.bin):


   # 查看所需固件
   modinfo aic8800_fdrv | grep firmware
   # 示例输出:firmware: aic8800_fw.bin

   # 检查固件是否存在于 /lib/firmware/
   ls /lib/firmware/aic8800_fw*

   # 若缺失,手动下载并放入:
   sudo wget -P /lib/firmware/ https://github.com/openfw/aic8800-firmware/raw/main/aic8800_fw.bin
   sudo update-initramfs -u



4. 检查USB设备识别


   # 查看USB设备是否被检测到
   lsusb | grep -i "aic8800|TP-Link"
   # 正常输出应包含类似:2357:0125(TP-Link ID)

   # 检查内核日志
   dmesg | grep -i "aic|usb|firmware"


  • 若出现 firmware: failed to load aic8800_fw.bin:固件路径错误或文件损坏。

  • 若出现 usb 1-1: device descriptor read/64, error -110:供电不足,尝试更换USB接口或使用带电源的USB Hub。




5. 配置网络接口


   # 检查无线接口名称(通常为 wlan0)
   ip a

   # 启用接口
   sudo ip link set wlan0 up

   # 使用 NetworkManager 或 wpa_supplicant 连接WiFi
   sudo nmtui  # 图形化网络配置工具



6. 处理依赖性问题(RISC-V专属)


RISC-V架构可能存在兼容性问题:





总结步骤



  1. 重新编译驱动(关键!预编译驱动可能不兼容RISC-V)。

  2. 确保固件/lib/firmware 中。

  3. 检查 USB识别和供电

  4. 使用 nmtui 配置网络。


若仍无效,尝试更新内核(需VisionFive2支持):


sudo apt install linux-image-starfive  # 检查是否有更新内核

请优先参考RISC-V社区的支持资源,部分驱动在非x86架构下可能需要额外适配。

举报

sun

2025-9-12 10:29:31
https://github.com/openfw/ 仓库404 还有其他的替代仓库吗
举报

更多回帖

发帖
×
20
完善资料,
赚取积分