aoe  87
About: AoE (ATA over Ethernet) Protocol Driver (Linux kernel 4.8.x and greater are not supported).
  Fossies Dox: aoe-87.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

aoe Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies
  4. aoe-87.tar.gz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

AoE Initiator Driver for Linux


This software is an AoE (ATA over Ethernet) storage initiator for Linux kernels 2.6.18 and up.

The version number of this driver is unrelated to the version numbers of Linux kernels. Just use the latest aoe driver with your 2.6 or 3.x Linux kernel.

This driver is available on github.

Please see linux/Documentation/aoe.txt for basic information and EtherDrive-2.6-HOWTO.sgml for more.

The aoetools (available separately at are required for this aoe driver. A compatible version is currently bundled with this driver, but if you update the version that appears as "TOOLS_D" in the Makefile, you can generally use something newer.


After extracting aoetools, to build the ATA over Ethernet driver, just type make.

Then, as root, do make install to make the driver available to your system. You may have to install the kernel sources provided by your Linux distribution if you don't have them already.

The Makefile builds an aoe module for the currently-running kernel by default. The kernel sources in /lib/modules/uname -r/build are used. These sources should already be configured (e.g., with make menuconfig or make oldconfig) and ready to be used for building. The easiest way to make it ready for building is to do a make in that directory.

If you need to build a module for a different kernel, make sure those kernel sources are properly configured and ready for building. Then tell make where to find the kernel sources and where to install the aoe module.

Here's an example where I'm running, and building an aoe module for a different kernel, The make commands are each typed as one long line, without a backslash.

$ cd /tmp/aoe6-50
$ uname -r
$ make KDIR=~/kernel/linux- \
$ su -

# cd /tmp/aoe6-50
# make install KDIR=~ecashin/kernel/linux- \

If you have installed a previous version of the aoe driver, it is best to get rid of any old files that might get in the way. These two commands remove old device files and any aoe modules for the running kernel.

rm -rf /dev/etherd
find /lib/modules/`uname -r` -name aoe.ko -print0 | xargs -0 rm

If udev is detected, an aoe driver is built that uses dynamic minor device numbers in order to support the maximum number of possible AoE target addresses. What that means to you is that if you plan to use udev, it should be running when you build the aoe driver.

If udev is not detected, the makefile builds an old-fashioned aoe driver (that uses predictable minor numbers for a smaller number of AoE devices) and creates enough device files for ten EtherDrive shelves. If you want more device files, specify it on the make command line. For example, to create device files for fifteen shelves, use the following command.

make install N_DEV_SHELVES=15

If you are not running udev and you don't want the makefile to create device nodes, you can do a make install_nodev instead of a make install.

There is optional support for having only one partition per aoe device. This feature may be useful on systems that do not support large minor device numbers well, e.g., debian sarge.

Some versions of mdadm do not handle large minor device numbers well. To use this compatibility feature set the AOE_PARTITIONS variable in the Makefile to 1.

Support Information


Ed L. Cashin

Original Author:

Sam Hopkins

There is an aoetools-discuss mailing list at

Additional Information

Please see the linux/Documentation/aoe/aoe.txt and the other files in that directory.