firewire-request(8)
π firewire-request β bestie edition π
okay so this is firewire-request, part of the linux-firewire-utils little family of tools, and honestly? it's giving "I talk to your FireWire devices so you don't have to" β¨ she queries them, she configures them, she's the whole package π
β¨ NAME β¨
firewire-request β query and configure FireWire devices π¦
πΈ SYNOPSIS πΈ
firewire-request [options] device command [parameters]
π DESCRIPTION π
firewire-request is a utility to query and configure FireWire devices. no cap, that's the whole job and she does it flawlessly π
The device parameter specifies the device file (/dev/fw*) of the device that is to be accessed. like, which friend are we texting, be specific π«Ά
All numbers must be specified in hexadecimal notation. all of them. every single one. hex or it doesn't count, bestie π
When specifying data blocks, you can separate bytes or quadlets with spaces, but then you have to remember to quote them in the shell so that all bytes are recognized as a single parameter. yes the shell will absolutely eat your spaces if you don't wrap that in quotes β protect her π₯Ί
In the following commands, address is either a 48-bit address or a register name. cute either way π
Here are all the commands, and there's a lot, so stay with me:
π the commands
firewire-request device read address [length]β send a read request to the device, and print the value returned by the device, if successful. a little "hey what's this value" moment π
If length is not specified, it is derived from address: for a named register, the register's length is used; for a numerical address, a default length of one quadlet (4 bytes) is used. so it just knows. main character energy tbh π
firewire-request device write|broadcast address dataβ send a write request to the device βοΈ
Broadcasts are allowed only for a device that corresponds to a local controller, and are sent to all the other devices on the bus. like a group chat message to literally everyone on the bus π’ only for local-controller devices though, don't get it twisted
firewire-request device locktype address data [data2]β execute a lock transaction (an atomic change) on the device π atomic like she's doing it in one indivisible breath, slay
locktype can be any of the following:
mask_swapβ change the bits set in data to the value in data2.compare_swapβ if the register has the same value as data, set it to data2.add[_big]β increase the register by data.add_littleβ increase the little-endian register by data.bounded_add[_big]β if the register has not the the same value as data, increase it by data2. (yes the original really does say "the the", she's quirky like that π)wrap_add[_big]β if the register has not the the same value as data, increase it by data2, else set it to data2.
All transaction types exceptadd/add_big/add_littlerequire two parameters. so those three get away with one, everyone else needs data AND data2, periodt π
firewire-request will print the value returned by the device, which is the old register value at the beginning of the transaction. the before picture, if you will πΈ
firewire-request device fcp dataβ send the message data to the device's FCP command register, and print the response returned by the device to the local FCP response register. back and forth, like a proper conversation π¬firewire-request device reset|long_resetβ issue a bus reset on the bus connected to device. a full factory reset of the vibe check, everything starts over π
π OPTIONS π
-D,--dump-register-namesβ print register names that can be used as address, and exit. a little cheat sheet, iconic β¨-v,--verboseβ when used together with--dump-register-names, print the complete list of register names. the full tea, no skimping β-h,--helpβ print a summary of the command-line options and exit. she'll explain herself π«Ά-V,--versionβ print the version number offirewire-requeston the standard output and exit. just the number, on stdout, done π
π¦ NOTES π¦
Whether you can access a device depends on the permissions set for its device file. Usually, most devices require root privileges. so yeah, most of the time you're gonna need root β it's not you, it's the permissions π
π BUGS π
Report bugs to <"linux1394-devel@sourceforge.net">.
"linux-firewire-utils" home page: <"https://git.kernel.org/pub/scm/utils/ieee1394/linux-firewire-utils.git/">.
(that URL is long enough to be a whole personality trait, but keep it exactly like that, no editing the links bestie π)
β SEE ALSO β
lsfirewire(8), firewire-phy-command(8)
and that's the whole page, you ate it, go forth and hex-address responsibly πβ¨
this lil guide is from the linux-firewire-utils crew and it's dated 22 May 2011 β vintage but still serving looks ππ¦π
π¦ where this page comes from
- debian trixie: linux-firewire-utils 0.5.1-2 Β· GPL-2.0-only
- ubuntu noble: linux-firewire-utils 0.5.0-2 Β· GPL-2.0-only
- ubuntu questing: linux-firewire-utils 0.5.1-2
- ubuntu resolute: linux-firewire-utils 0.5.1-4 Β· GPL-2.0-only
- ubuntu stonking: linux-firewire-utils 0.5.1-4 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms