Jump to content

Recommended Posts

Posted

I did a apt upgrade that messed up my set up, so I have recently (as in two hours ago) reinstalled armbian on on my dragon q6a. Unlike the previous set up, I have not been able to connect to my wifi.

 

Did a bit of a dance with AI help and still failed, but it looks like the wifi module is directly not found. 

nmcli device returns 

 

```

DEVICE    TYPE         STATE            CONNECTION

enp1s0   ethernet   unmanaged    --

lo             loopback   unmanaged   --
```

lsusb returns 

Bus 001 Device 005: ID a69c:8d80 aicsemi AIC Wlan

So I guess that's the wifi hardware and AI claims my system does not have the drivers.

AI then sent me on a search for the drivers, but it was to a repo that does not exist, so kind of looking for help here now!
 

Posted

I did more of a dance with AI and eventually got it working. 

This was the real repo: https://github.com/radxa-pkg/aic8800

 

Got the AI to write a summary of the dance. 


Phase 1: Resolving the Tooling and Environment Dependencies

We started with a clean, lightweight system image missing common Linux development tools. We methodically installed the software compilation and packaging toolchain required to handle vendor drivers:

Kernel Headers: Replaced the generic linux-headers-$(uname -r) command with the specific architecture branch package (linux-headers-current-arm64) to give the driver access to the Linux kernel API blueprints.

Line Ending Conversions: Installed dos2unix to fix internal cross-platform formatting issues within the raw source files.

Packaging Toolchain: Installed devscripts, debhelper, and fakeroot to fulfill the minimum environment demands of the dpkg-buildpackage engine.

DKMS Engine Helpers: Installed dh-dkms to handle the missing modern virtual package mapping (dh-sequence-dkms).


Phase 2: Resolving Kernel Version API Incompatibilities

Because the hardware driver code was originally written for older Linux builds, trying to compile it directly against a modern 6.18 kernel threw standard compilation crashes. We bypassed the rigid Debian patch architecture and fixed the source code directly:

Signature Alignment: Modified the function argument signature for .get_tx_power in rwnx_main.c to support the newer 5-parameter layout required by the upstream kernel (struct wiphy *wiphy, struct wireless_dev *wdev, int bss_idx, unsigned int link_id, int *mbm).

Variable Alignment: Updated the interior variable name pointer within that function definition from dbm to mbm to match modern wireless power unit metrics used in current Linux network subsystems.


Phase 3: Bypassing Packaging & Direct Kernel Compilation

Rather than battling failing packaging lint tests or restrictive file verification scripts, we pivoted to an elegant, direct implementation:

Dropped straight into the target interface folder (src/USB/driver_fw/drivers/aic8800/).

Ran a direct raw build command targeting the standalone USB interface module flag: make CONFIG_AIC8800_USB=m.

Manually pushed the generated binaries directly into the system kernel storage directory tree using sudo make install and synchronized the dependency layout using depmod -a.


Phase 4: Correcting Firmware Pathing & Module Sequence

The driver successfully built and registered with the kernel, but the physical USB bus threw initialization timeouts (bus is not up=0). We fixed the underlying hardware communication pipeline:

Firmware Relocation: Traced the location of the compiled firmware folder hidden within the repository's package blueprints, and copied the raw firmware files directly into the absolute hardware search path at /lib/firmware/aic8800D80/.

Sequential Probing: Cleared out the broken module states and forced the hardware interface modules to load in their structural order—giving the hardware bus loader helper (aic_load_fw) a 2-second sleep window to awaken the USB links before initializing the operational wireless adapter engine (aic8800_fdrv).

 

 

 

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