Linux FireWire subsystem¶
2024/04/06 Takashi Sakamoto
Introduction¶
IEEE 1394 as known as FireWire is the technology established between the late of 1980’s and the beginning of 1990’s. The specification is firstly published in 1995, then commercialized. Many consumer equipments were produced until around 2010, then the market was shrank and disappeared. As of 2023, IEEE 1394 is legacy technology.
Linux kernel has a subsystem for the technology. This document includes helpful information about the subsystem. If interested in the subsystem itself, About the subsystem is a good entrance. If requiring update history of the documentation, About documentation will a good help.
Communication channel¶
linux1394-devel is dedicated for upstream development
linux1394-user is dedicated for user support
Before using the channels, please take a look at Code of Conduct in Linux kernel development community.
Support and expected Contribution¶
As of 2023, few developers work to use the subsystem. We appreciate any type of help for it. For example, below items are welcome.
Donate configuration ROM image of your device
Provide information about PHY hardware <phy> of your device compliant to IEEE 1394a or later
Distribution packaging for maintained libraries and tools
Bug fixes for libraries
Bug reports to kernel drivers
Due to the limited human resources you may not receive enough support in an user level, especially applications in user space for which the original developer is already inactive. You could receive less help for items below.
How to use an application?
Why my device is not available?
Provided documents¶
-
The overview of subsystem is available.
-
The database of PHY device embedded in 1394 OHCI hardware.
Migration from old driver stack
Linux kernel 2.6.37 or before includes old generation of stack. The guide provides the way to migrate to the current generation of stack.
-
The subsystem is based on specifications relevant to IEEE 1394. The document provides their list.
Repositories¶
In the subsystem, kernel stack is mainly maintained. Some library, utility, resource are available in below repositories as well.
Kernel stack
Libraries
-
Operate OHCI 1394 hardware for asynchronous communication with GObject Introspection support
-
Operate OHCI 1394 hardware for isochronous communication with GObject Introspection support
hinawa-rs
Provides FFI sys crate hinawa-sys and user API crate hinawa for libhinawa as Rust language bindings
hinoko-rs
Provides FFI sys crate hinoko-sys and user API crate hinoko for libhinoko as Rust language bindings
-
https://git.kernel.org/pub/scm/libs/ieee1394/libraw1394.git/
The latest release is v2.1.2 (v2.1.2 signature)
-
https://git.kernel.org/pub/scm/libs/ieee1394/libiec61883.git/
The latest release is v1.2.0 (v1.2.0 signature)
-
Utilities
linux-firewire-utils
https://git.kernel.org/pub/scm/utils/ieee1394/linux-firewire-utils.git/
Linux FireWire bus inspection and configuration tools.
Fork https://github.com/cladisch/linux-firewire-utils to replace
crpp
Python 2 script.
Resources
(T.B.D)
Maintenance schedule¶
As you know, IEEE 1394 is enough legacy. Sooner or later, users would leave. This subsystem has a time table to close the project.
2023, 2024, 2025, 2026
Done
: Replace the subsystem maintainerSet up repositories in https://git.kernel.org/
Done
: Refresh web site and update informationGet any help from Linux Foundation to place documents for specification defined by 1394 Trade Association
If no problems, upload the documents to the web site
Fix issues of subsystem
Pull requests to Linus
Take over the administration of communication channels
Adding the list archive of linux1394-devel to lore.kernel.org
Invite repositories of external librararies (
libavc1394
,libdc1394
)Announcement to distribution package maintainers about the upstream shift
2027, 2028
2029
Close the project
Close the communication channels
Resign the subsystem maintainer
After closing the project, the libraries, utilities, and resources are never updated, while software archives are available in kernel.org. The kernel stack has no maintainer, and would be possiblely removed from Linux operating system any day.
About documentation¶
The source of document is hosted in https://git.kernel.org/pub/scm/docs/docsko/ieee1394.git/.
You can see the update history as well.
The documentation is published at https://readthedocs.org/
The kernel.org subdomain URL is http://ieee1394.docs.kernel.org/.
The shared domain URL is https://linux1394.readthedocs.io/en/latest/.
The host system provides hook script service.
Some document is converted from old archive.