blob: bd9d1779a181d9c73d6158c6475a0c1fe7e635e2 (plain
# Logitech Unifying firmware updater for Linux
This repository contains an experimental firmware updater for the Logitech
Wireless Rechargeable Touchpad T650. It was successfully tested on Lekensteyn's
The tool is created using reverse engineering on the [official Logitech firmware
updater] and a virtual, fake [Logitech Unifying Receiver device in QEMU].
It may therefore not work in certain edge cases although I have tried my best to
match the behavior of the firmware updater. See also the comments in
`fw-update.c`. The custom QEMU sources are based on v2.2.0, with
v2.2.0-76-g5ac86ef being the latest version which was used for REing ("unifying:
acknowledge device when entering LTx").
If the DFU (Device Firmware Updater) process is generic to all Logitech devices,
then this tool could be modified to handle other devices as well. As of now
(December 2014), it contains some hard-coded details.
Feel free to risk your device by trying this tool, it worked for me, but YMMV.
This tool depends on an experimental ltunify library. The expected directory
- ltunify: https://git.lekensteyn.nl/ltunify.git, branch refactor-lib, tested
with commit 1b3247bc573314e4b05ce5bc60cf9f14c93228a5
- ltunify/t650-dfu: this repository, tested with commit
This should produce a `fw-update` binary (tested with Clang 3.5.0).
The command is used as follows:
./fw-update /dev/hidrawX device_index flash-file
Example for my T650 device which is paired on index 2 (use `ltunify list` to
find out the index):
./fw-update /dev/hidraw1 2 RQM_041_001_00038.bin
The `RQM_041_001_00038.bin` firmware blob is from Logitech. License unknown, but
it was retrieved from USB communications between the firmware updater and the
virtual USB device.
The `fw-update.c` is authored by Peter Wu (firstname.lastname@example.org). It is released
under the terms of the GPL license version 3 (or any latter version, at your