OnWorks favicon

dfu-util - Online in the Cloud

Run dfu-util in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command dfu-util that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



dfu-util - Device firmware update (DFU) USB programmer


dfu-util -l [-v] [-d vid:pid[,vid:pid]] [-p path] [-c configuration] [-i interface] [-a
alt-intf] [-S serial[,serial]]

dfu-util [-v] [-d vid:pid[,vid:pid]] [-p path] [-c configuration] [-i interface] [-a alt-
intf] [-S serial[,serial]] [-t size] [-Z size] [-s address] [-R] [-D|-U file]

dfu-util [-hV]


dfu-util is a program that implements the host (computer) side of the USB DFU (Universal
Serial Bus Device Firmware Upgrade) protocol.

dfu-util communicates with devices that implement the device side of the USB DFU protocol,
and is often used to upgrade the firmware of such devices.


-l, --list
List the currently attached DFU capable USB devices.

-d, --device [Run-Time VENDOR]:[Run-Time PRODUCT][,[DFU Mode VENDOR]:[DFU Mode PRODUCT]]
Specify run-time and/or DFU mode vendor and/or product IDs of the DFU device to
work with. VENDOR and PRODUCT are hexadecimal numbers (no prefix needed), "*"
(match any), or "-" (match nothing). By default, any DFU capable device in either
run-time or DFU mode will be considered.

If you only have one standards-compliant DFU device attached to your computer, this
parameter is optional. However, as soon as you have multiple DFU devices connected,
dfu-util will detect this and abort, asking you to specify which device to use.

If only run-time IDs are specified (e.g. "--device 1457:51ab"), then in addition to
the specified run-time IDs, any DFU mode devices will also be considered. This is
beneficial to allow a DFU capable device to be found again after a switch to DFU
mode, since the vendor and/or product ID of a device usually changes in DFU mode.

If only DFU mode IDs are specified (e.g. "--device ,951:26"), then all run-time
devices will be ignored, making it easy to target a specific device in DFU mode.

If both run-time and DFU mode IDs are specified (e.g. "--device 1457:51ab,:2bc"),
then unspecified DFU mode components will use the run-time value specified.


--device 1457:51ab,951:26
Work with a device in run-time mode with vendor ID 0x1457 and product ID
0x51ab, or in DFU mode with vendor ID 0x0951 and product ID 0x0026

--device 1457:51ab,:2bc
Work with a device in run-time mode with vendor ID 0x1457 and product ID
0x51ab, or in DFU mode with vendor ID 0x1457 and product ID 0x02bc

--device 1457:51ab
Work with a device in run-time mode with vendor ID 0x1457 and product ID
0x51ab, or in DFU mode with any vendor and product ID

--device ,951:26
Work with a device in DFU mode with vendor ID 0x0951 and product ID 0x0026

--device *,-
Work with any device in run-time mode, and ignore any device in DFU mode

--device ,
Ignore any device in run-time mode, and Work with any device in DFU mode

-p, --path BUS-PORT. ... .PORT
Specify the path to the DFU device.

-c, --cfg CONFIG-NR
Specify the configuration of the DFU device. Note that this is only used for
matching, the configuration is not set by dfu-util.

-i, --intf INTF-NR
Specify the DFU interface number.

-a, --alt ALT
Specify the altsetting of the DFU interface by name or by number.

-S, --serial [Run-Time SERIAL][,[DFU Mode SERIAL]]
Specify the run-time and DFU mode serial numbers used to further restrict device
matches. If multiple, identical DFU devices are simultaneously connected to a
system then vendor and product ID will be insufficient for targeting a single
device. In this situation, it may be possible to use this parameter to specify a
serial number which also must match.

If only a single serial number is specified, then the same serial number is used in
both run-time and DFU mode. An empty serial number will match any serial number in
the corresponding mode.

-t, --transfer-size SIZE
Specify the number of bytes per USB transfer. The optimal value is usually
determined automatically so this option is rarely useful. If you need to use this
option for a device, please report it as a bug.

-Z, --upload-size SIZE
Specify the expected upload size, in bytes.

-U, --upload FILE
Read firmware from device into FILE.

-D, --download FILE
Write firmware from FILE into device.

-R, --reset
Issue USB reset signalling after upload or download has finished.

-s, --dfuse-address address
Specify target address for raw binary download/upload on DfuSe devices. Do not use
this for downloading DfuSe (.dfu) files. Modifiers can be added to the address,
separated by a colon, to perform special DfuSE commands such as "leave" DFU mode,
"unprotect" and "mass-erase" flash memory.

-v, --verbose
Print more information about dfu-util's operation. A second -v will turn on verbose
logging of USB requests. Repeat this option to further increase verbosity.

-h, --help
Show a help text and exit.

-V, --version
Show version information and exit.


Using dfu-util in the OpenMoko project
(with the Neo1973 hardware)

Flashing the rootfs:
$ dfu-util -a rootfs -R -D /path/to/openmoko-devel-image.jffs2

Flashing the kernel:
$ dfu-util -a kernel -R -D /path/to/uImage

Flashing the bootloader:
$ dfu-util -a u-boot -R -D /path/to/u-boot.bin

Copying a kernel into RAM:
$ dfu-util -a 0 -R -D /path/to/uImage

Once this has finished, the kernel will be available at the default load address of
0x32000000 in Neo1973 RAM. Note: You cannot transfer more than 2MB of data into RAM using
this method.

Using dfu-util with a DfuSe device
Flashing a .dfu (special DfuSe format) file to the device:
$ dfu-util -a 0 -D /path/to/dfuse-image.dfu

Reading out 1 KB of flash starting at address 0x8000000:
$ dfu-util -a 0 -s 0x08000000:1024 -U newfile.bin

Flashing a binary file to address 0x8004000 of device memory and ask the device to leave
DFU mode:
$ dfu-util -a 0 -s 0x08004000:leave -D /path/to/image.bin

Use dfu-util online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    itop - ITSM  CMDB OpenSource
    itop - ITSM CMDB OpenSource
    IT Operations Portal: a complete open
    source, ITIL, web based service
    management tool including a fully
    customizable CMDB, a helpdesk system and
    a document man...
    Download itop - ITSM CMDB OpenSource
  • 2
    Clementine is a multi-platform music
    player and library organizer inspired by
    Amarok 1.4. It has a fast and
    easy-to-use interface, and allows you to
    search and ...
    Download Clementine
  • 3
    ATTENTION: Cumulative update 2.4.3 has
    been released!! The update works for any
    previous 2.x.x version. If upgrading
    from version v1.x.x, please download and
    Download XISMuS
  • 4
    Modular headtracking program that
    supports multiple face-trackers, filters
    and game-protocols. Among the trackers
    are the SM FaceAPI, AIC Inertial Head
    Tracker ...
    Download facetracknoir
  • 5
    Weaviate in a nutshell: Weaviate is a
    vector search engine and vector
    database. Weaviate uses machine learning
    to vectorize and store data, and to find
    Download Weaviate
  • 6
    PHP QR Code
    PHP QR Code
    PHP QR Code is open source (LGPL)
    library for generating QR Code,
    2-dimensional barcode. Based on
    libqrencode C library, provides API for
    creating QR Code barc...
    Download PHP QR Code
  • 7
    Cuckoo Sandbox
    Cuckoo Sandbox
    Cuckoo Sandbox uses components to
    monitor the behavior of malware in a
    Sandbox environment; isolated from the
    rest of the system. It offers automated
    analysis o...
    Download Cuckoo Sandbox
  • More »

Linux commands