Command line utilities to work with devices based on Allwinner SoCs: sun4i, sun5i, ... - that's why the 'x' in the package name.
.fex file (de)compiler
Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]] infmt: fex, bin (default:fex) outfmt: fex, bin (default:bin)
compatibility shortcut to call
sunxi-fexc to decompile a script.bin
blob back into
.fex format used by Allwinner's SDK to configure
compatiblity shortcut to call
sunxi-fexc to compile a
into the binary form used by the legacy 3.4 kernel ("linux-sunxi").
script interface for USB communication with the FEL handler built in to the CPU. You usually activate FEL mode by pushing the uboot / recovery button at poweron, or by having your device "fail over" to FEL when no other boot option is available. See http://linux-sunxi.org/FEL/USBBoot for a detailed usage guide.
When called with no arguments, sunxi-fel will display a short usage summary.
Note: Unless you select a specific device using the
options, the tool will access the first Allwinner device (in FEL mode) that it
finds. You can print a list of all FEL devices currently connected/detected
./sunxi-fel --list --verbose.
Simple wrapper (script) around
to allow GPIO manipulations via FEL
ARM native sdcard bootloader forcing the device into FEL mode
ARM native sdcard bootloader, which is only printing a short "hello" message to the UART0 serial console. Because it relies on runtime SoC type detection, this single image is bootable on a wide range of Allwinner devices and can be used for testing. Additionally, it may serve as a template/example for developing simple bare metal code (LED blinking and other similar GPIO related things).
Manipulate PIO registers/dumps
Tool for manipulating Allwinner NAND partition tables
Tool used to create raw NAND images (including boot0 images)
ARM native boot helper to force the SD port into JTAG and then stop, to ease debugging of bootloaders.
Dump information from Allwinner boot files (boot0 / boot1)
--type=sd include SD boot info --type=nand include NAND boot info (not implemented)
gives information about a phoenix image created by the phoenixcard utility and optionally extracts the embedded boot code & firmware file from their hidden partitions.
Tool for reading DRAM settings from registers. Compiled as a static binary for use on android and other OSes. To build this, get a toolchain and run:
make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-meminfo
A simple tool, which can be executed on a rooted Android device to dump the script.bin blob from RAM via reading /dev/mem. To build this, get a toolchain and run:
make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-script_extractor
Compilation requires the development version of libusb-1.0 (include header
and library) to be installed for
sunxi-fel. Unless you explicitly pass
LIBUSB_CFLAGS and LIBUSB_LIBS to the make utility,
pkg-config is also
needed. Development versions of zlib and libfdt are also required.
To install the dependencies on Ubuntu 20.04 using package manager:
sudo apt install libusb-1.0-0-dev libz-dev libfdt-dev
Available build targets:
make toolsbuilds tools that are useful on the host. This is what most people will want, and our default target (when simply using
make target-toolsbuilds tools that are intended for the target (Allwinner SoC), using a cross-compiler. The Makefile will try to auto-detect a suitable toolchain prefix, and falls back to
arm-none-eabi-otherwise. If needed, you may override this by explicitly setting CROSS_COMPILE.
Hint: When compiling 'natively' on the target platform you may simply use an empty toolchain prefix here (
make target-tools CROSS_COMPILE=or
make all CROSS_COMPILE=).
make allbuilds both tools and target-tools.
make install-toolsbuilds tools and then copies/installs them to a filesystem location. The destination is affected by settings for
BINDIR. For details, please refer to the Makefile. You may use
make installas a shortcut for this.
make install-target-toolsbuilds target-tools and then copies/installs them to a filesystem location selected by
make install-allbuilds and installs both tools and target-tools.
make miscbuilds miscellaneous (host) utilities that are not part of our 'standard' suite. Currently this means
make install-miscbuilds misc and installs the resulting binaries.
This software is licensed under the terms of GPLv2+ as defined by the Free Software Foundation, details can be read in the LICENSE.md file.