Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASIX USB Gigabit/Fast Ethernet Linux driver (asix.o)

This is the official ASIX USB Gigabit/Fast Ethernet Linux driver source for AX88772C, AX88772B, AX88772A, AX88772 and AX88178 controllers (module name: asix.o), which is suitable for edge AI computers, Desktop/Notebook/POS, USB Ethernet dongles, docking stations, smart mobile device cradles, game consoles, smart camera/IP STB, 5G/LTE router/gateway, and smart home/office devices applications.


ASIX USB Ethernet ICs

Supported ICs

These controllers are bound by the asix.o network driver. All ASIX devices enumerate under VID 0x0B95; the exact IC is selected by the USB bcdDevice value.

IC USB VID:PID bcdDevice Interface
AX88178 0B95:1780 USB 2.0 to Gigabit Ethernet Chips
AX88772C 0B95:772b 0x0002 USB 2.0 to Fast Ethernet Chips
AX88772B 0B95:772b 0x0001 USB 2.0 to Fast Ethernet Chips
AX88772A 0B95:772a USB 2.0 to Fast Ethernet Chips
AX88772 0B95:7720 USB 2.0 to Fast Ethernet Chips

Prerequisites

Prepare to build the driver, you need the Linux kernel sources installed on the build machine, and make sure that the version of the running kernel must match the installed kernel sources. If you don't have the kernel sources, you can get it from The Linux Kernel Archives or contact to your Linux distributor. If you don't know how to do, please refer to KERNEL-HOWTO.

Note: Please make sure the kernel is built with one of the "Support for Host-side, EHCI, OHCI, or UHCI" option support.

Conditional Compilation Flag

  • AX_FORCE_BUFF_ALIGN

There are alignment issues of USB buffer in some USB host controllers. Turn on this flag if the implementation of your USB host controller cannot handle non-double word aligned buffer. When turn on this flag, driver will fixup egress packet aligned on double word boundary before deliver to USB host controller. Setting: 1 -> Enable TX buffers forced on double word alignment. 0 -> Disable TX buffers forced on double word alignment. Default: 0

Getting Start

  1. Extract the compressed driver source file to your template directory by the following command:
	$tar -xf DRIVER_SOURCE_PACKAGE.tar.bz2
  1. Now, the driver source files should be extracted under the current directory. Executing the following command to compile the driver:
	$make
  1. If the compilation is well, the asix.ko will be created under the current directory.

  2. If you want to use modprobe command to mount the driver, executing the following command to install the driver into your Linux:

	$make install

Usage

  1. If you want to load the driver manually, go to the driver directory and execute the following commands:
	$sudo insmod asix.ko
  1. If you had installed the driver during driver compilation, then you can use the following command to load the driver automatically.
	$sudo modprobe asix

If you want to unload the driver, just executing the following command:

	$sudo rmmod asix

Special define

There is a RX_SKB_COPY preprocessor define in asix.h can solve rx_throttle problem in some version of 3.4 Linux kernel. Removing the comment before the define can enable this feature.


Programmer

ASIX USB Ethernet Linux Command Line Programming Tool

Getting Start

  1. Extract the compressed driver source file to your temporary directory by the following command:
	$tar -xf DRIVER_SOURCE_PACKAGE.tar.bz2
  1. Now, the driver source files should be extracted under the current directory. Executing the following command to compile the driver:
	$make
  1. If the compilation is well, the ioctl will be created under the current directory.

Note: The default way to find the interface is to scan the ASIX device using the ethx (x: 0~255).It is defined in the file, command.h.

	(As follows)
	...
	// DEFAULT_SCAN   : scan "eth0" - "eth255"
	// INTERFACE_SCAN : scan all available network interfaces
	#define NET_INTERFACE	DEFAULT_SCAN
	#define	DEFAULT_SCAN	0x00
	#define	INTERFACE_SCAN	0x01
	...

Adjust the contents of #define NET_INTERFACE to select the method you want.

AX88772x EEPROM Programmer

  1. If you want to read out values of the EEPROM to a file, go to the driver directory and execute the following command:
	$./ioctl reeprom file_name eeprom_size
  1. If you want to write values of a file to the EEPROM, go to the driver directory and execute the following command:
	$./ioctl weeprom file_name eeprom_size
  1. If you want to change the MAC address of a dongle, go to the driver directory and execute the following command:
	$./ioctl chgmac mac_addr eeprom_size
  1. If you need more information about the instructions, go to the driver directory and execute the following commands:
	$./ioctl reeprom help

or

	$./ioctl weeprom help

About

Official ASIX USB Gigabit/Fast Ethernet Linux driver source for AX88772C, AX88772B, AX88772A, AX88772 and AX88178 controllers

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages