Skip to content

Repository files navigation

ASIX AX88179A DKMS package for Debian

This project downloads the current reviewed ASIX Linux driver, verifies the vendor archive, applies a small downstream patch set, and builds a local Debian DKMS package named ax-usb-nic-dkms. DKMS rebuilds ax_usb_nic.ko whenever APT installs a new kernel with matching headers.

The public repository intentionally does not contain the ASIX source archive, extracted vendor source, or generated Debian packages.

Important: Linux already has a native mode

The AX88179A exposes a standards-based CDC-NCM configuration. ASIX describes Linux support through the native CDC-NCM driver, and StarTech describes the USB32000SPT as driverless on supported Linux kernels. The out-of-tree ASIX module is therefore an optional vendor-mode alternative, not the only Linux driver.

Installing this package does not switch USB configurations, blacklist native drivers, or replace a live interface. A downstream patch removes the vendor module's exported USB aliases, so it cannot autoload merely because a matching adapter is attached. Vendor mode must be selected separately and explicitly.

Reviewed upstream version

Item Value
ASIX driver 4.1.0
Release date 2026-04-24
Vendor claim kernels up to 6.14.x
Archive SHA-256 fd650b715ee41d2a871e7a1c5ab5c42e01aa5a252cc9a4b4fcdb89f1287482b6
Module ax_usb_nic.ko
CI targets Debian 12/bookworm, Debian 13/trixie, and Proxmox kernel 7.0; amd64

The source of truth is upstream/manifest.json. The download endpoint is pinned rather than discovered during package installation.

Build a local package

Run these commands on Debian 12 or Debian 13, not on the NAS network interface unless an independent management path is available:

sudo apt update
sudo apt install --yes \
  build-essential bzip2 ca-certificates curl debhelper dh-dkms dkms \
  dpkg-dev kmod linux-headers-amd64 patch python3

python3 -m unittest discover -s tests -v
bash scripts/test-build.sh
bash scripts/build-deb.sh

The downloader accepts only HTTPS URLs on asix.com.tw, verifies the pinned SHA-256 digest before extraction, rejects unsafe archive paths, and extracts into the ignored build/ directory. The package is written to dist/.

Install and verify it:

sudo apt install ./dist/ax-usb-nic-dkms_*_all.deb
dkms status
modinfo ax_usb_nic

dkms status should report ax-usb-nic/4.1.0+asix1 as installed for each kernel whose headers are installed. modinfo -F alias ax_usb_nic should produce no output; this is the deliberate opt-in safeguard.

Kernel upgrades through APT

Keep the Debian kernel and header metapackages installed:

sudo apt install linux-image-amd64 linux-headers-amd64

During apt full-upgrade/apt-get dist-upgrade, Debian's kernel hooks invoke DKMS. No ASIX download occurs at that point. Before rebooting, check that the new kernel has an installed module:

dkms status
find /lib/modules -path '*/updates/dkms/ax_usb_nic.ko*' -print
bash scripts/verify-kernels.sh

If a future kernel changes its module API and the build fails, APT will retain the DKMS build log under /var/lib/dkms/ax-usb-nic/*/build/make.log. Keep the previous working kernel in the boot menu until a reviewed compatibility patch is available.

Debian 12 uses the Linux 6.1 series, while Debian 13 uses the Linux 6.12 series. Both are within ASIX's stated range for driver 4.1.0. In addition, this project compiles and installs the DKMS package against the current Proxmox 7.0 header metapackage. On 2026-08-08 the tested package was proxmox-headers-7.0.14-11-pve; direct compilation and DKMS installation both passed without an additional kernel-API patch.

That Proxmox result is a downstream build-compatibility statement, not an ASIX support claim: ASIX still documents only kernels through 6.14.x. It also is not a hardware/runtime test of the StarTech adapter. The scheduled GitHub workflow only reports a newly published ASIX version; a human must inspect its source, license notices, checksum, and patch compatibility before updating the manifest.

Optional vendor mode

Do not enable vendor mode over the only SSH/network path to the machine. Use a physical console, IPMI/iKVM, or another independent NIC. First collect a read-only report:

bash scripts/diagnose.sh | tee ax88179a-diagnostics.txt
bash scripts/configure-driver-mode.sh status

To configure the next boot for the vendor module:

sudo bash scripts/configure-driver-mode.sh vendor \
  --acknowledge-network-disruption

If an AX88179A interface currently carries the default route, the script stops. Only with confirmed fallback access may that guard be overridden:

sudo bash scripts/configure-driver-mode.sh vendor \
  --acknowledge-network-disruption \
  --allow-active-uplink

The helper writes three clearly marked files for the next boot: a USB rule that selects AX88179A configuration 1, a blacklist for the in-kernel ax88179_178a module, and a modules-load entry for ax_usb_nic. It does not unbind, reload, or trigger the live adapter.

Restore native CDC-NCM/in-kernel operation with:

sudo bash scripts/configure-driver-mode.sh native \
  --acknowledge-network-disruption
sudo reboot

The helper refuses to overwrite or remove similarly named files unless they contain its management marker.

Debian 13 and Proxmox Backup Server

Proxmox Backup Server 4 is based on Debian 13. The official upgrade guide requires updating PBS 3.4 first, verifying backups, changing both Debian and PBS repositories to trixie, running the supported checker, and completing the upgrade before rebooting. Follow that guide rather than treating this driver project as a PBS upgrade tool.

At minimum, finish the Bookworm-side update, verify proxmox-backup-server 3.4.2-1 or newer, keep at least 10 GB free on /, back up /etc/proxmox-backup, and run pbs3to4 --full. Re-run pbs3to4 as issues are corrected and after the upgrade. Use the exact repository definitions from the current Proxmox guide.

Installing only proxmox-backup-server on Debian keeps the existing Debian kernel. The broader proxmox-backup package installs the Proxmox kernel. Linux 7.0 is now the default kernel line for current Debian-Trixie-based Proxmox releases, including PBS; this repository tests the floating proxmox-headers-7.0 metapackage in CI. Keep the previous bootable kernel and an independent management path because successful compilation does not prove runtime stability on this NAS.

Updating the reviewed ASIX release

The weekly monitor can also be run manually:

bash scripts/check-upstream.sh

Exit status 0 means the manifest is current, 3 means a different version is available, and 2 means the vendor page could not be fetched or parsed. For an update:

  1. Download the new archive into a temporary directory and inspect every file.
  2. Confirm license notices and the exact vendor support statement.
  3. Update version, date, endpoint, archive name, source directory, and SHA-256 in upstream/manifest.json.
  4. Rebase the ordered patches in patches/series; never add speculative future kernel fixes.
  5. Run both Debian CI jobs and review the resulting DKMS logs.
  6. Do not commit the downloaded archive, extracted source, or generated package.

Licensing and public GitHub publication

The ASIX C and header files in driver 4.1.0 contain GPL version 2 notices with an "or later" grant, while their SPDX tags use the now-deprecated shorthand GPL-2.0. However, the ASIX website terms also say that hosted materials may not be mirrored or distributed without prior written permission, and some ancillary archive files have no per-file license header.

For that reason, the conservative public-release design is:

  • publish this repository's scripts, packaging templates, documentation, and GPL-compatible patches under GPL-2.0-or-later;
  • download the exact vendor archive directly from ASIX on the user's machine;
  • do not publish generated .deb files, because they contain ASIX source;
  • preserve every ASIX copyright and license notice in the local package; and
  • request written permission from ASIX before mirroring its archive or source.

This is a technical compliance assessment, not legal advice. See THIRD_PARTY_NOTICES.md for the evidence and remaining ambiguity.

Project commands

make fetch           download and verify the pinned vendor archive
make check-upstream  compare the reviewed version with the ASIX page
make unit            run metadata/parser policy tests
make test            run unit tests and compile against installed headers
make package         produce a local DKMS Debian package
make diagnose        print a read-only host/device report
make verify-kernels  confirm modules exist for installed header trees

Contributing and security

Read CONTRIBUTING.md before submitting changes. Security issues must be reported privately as described in SECURITY.md, never through an issue containing vulnerability details. Maintainers preparing the first public repository should follow docs/PUBLISHING.md.

Sources

About

Downloader-only Debian DKMS packaging for the ASIX AX88179A vendor driver

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages