2017-09-11 05:40:23 +00:00
|
|
|
.\" Copyright (c) 2017 by Michael Kerrisk <mtk.manpages@gmail.com>
|
|
|
|
.\"
|
|
|
|
.\" %%%LICENSE_START(VERBATIM)
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
.\"
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
|
|
|
.\"
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\" %%%LICENSE_END
|
|
|
|
.\"
|
execve.2, fallocate.2, getrlimit.2, io_submit.2, membarrier.2, mmap.2, msgget.2, open.2, ptrace.2, readv.2, semget.2, shmget.2, shutdown.2, syscall.2, wait.2, wait4.2, crypt.3, encrypt.3, fseek.3, getcwd.3, makedev.3, pthread_create.3, puts.3, tsearch.3, elf.5, filesystems.5, group.5, passwd.5, sysfs.5, mount_namespaces.7, posixoptions.7, time.7, unix.7, vdso.7, xattr.7, ld.so.8: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2018-04-30 15:41:31 +00:00
|
|
|
.TH SYSFS 5 2018-04-30 "Linux" "Linux Programmer's Manual"
|
2017-09-11 05:40:23 +00:00
|
|
|
.SH NAME
|
|
|
|
sysfs \- a filesystem for exporting kernel objects
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
|
|
|
.B sysfs
|
|
|
|
filesystem is a pseudo-filesystem which provides an interface to
|
|
|
|
kernel data structures.
|
|
|
|
(More precisely, the files and directories in
|
|
|
|
.B sysfs
|
|
|
|
provide a view of the
|
|
|
|
.IR kobject
|
|
|
|
structures defined internally within the kernel.)
|
|
|
|
The files under
|
|
|
|
.B sysfs
|
|
|
|
provide information about devices, kernel modules, filesystems,
|
|
|
|
and other kernel components.
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.B sysfs
|
|
|
|
filesystem is commonly mounted at
|
|
|
|
.IR /sys .
|
|
|
|
Typically, it is mounted automatically by the system,
|
|
|
|
but it can also be mounted manually using a command such as:
|
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
|
|
|
mount \-t sysfs sysfs /sys
|
|
|
|
.EE
|
|
|
|
.in
|
|
|
|
.PP
|
|
|
|
Many of the files in the
|
|
|
|
.B sysfs
|
|
|
|
filesystem are read-only,
|
|
|
|
but some files are writable, allowing kernel variables to be changed.
|
2017-09-11 10:14:44 +00:00
|
|
|
To avoid redundancy,
|
|
|
|
symbolic links are heavily used to connect entries across the filesystem tree.
|
2017-09-11 05:40:23 +00:00
|
|
|
.\"
|
|
|
|
.SS Files and directories
|
|
|
|
The following list describes some of the files and directories under the
|
|
|
|
.I /sys
|
|
|
|
hierarchy.
|
|
|
|
.TP
|
|
|
|
.IR /sys/block
|
2017-09-11 10:14:44 +00:00
|
|
|
This subdirectory contains one symbolic link for each block device
|
|
|
|
that has been discovered on the system.
|
|
|
|
The symbolic links point to corresponding directories under
|
|
|
|
.IR /sys/devices .
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/bus
|
2017-09-11 10:14:44 +00:00
|
|
|
This directory contains one subdirectory for each of the bus types
|
|
|
|
in the kernel.
|
|
|
|
Inside each of these directories are two subdirectories:
|
|
|
|
.RS
|
|
|
|
.TP
|
|
|
|
.IR devices
|
|
|
|
This subdirectory contains symbolic links to entries in
|
|
|
|
.IR /sys/devices
|
|
|
|
that correspond to the devices discovered on this bus.
|
|
|
|
.TP
|
|
|
|
.IR drivers
|
|
|
|
This subdirectory contains one subdirectory for each device driver
|
|
|
|
that is loaded on this bus.
|
|
|
|
.RE
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/class
|
2017-09-11 10:14:44 +00:00
|
|
|
This subdirectory contains a single layer of further subdirectories
|
|
|
|
for each of the device classes that have been registered on the system
|
|
|
|
(e.g., terminals, network devices, block devices, graphics devices,
|
|
|
|
sound devices, and so on).
|
|
|
|
Inside each of these subdirectories are symbolic links for each of the
|
|
|
|
devices in this class.
|
|
|
|
These symbolic links refer to entries in the
|
|
|
|
.IR /sys/devices
|
|
|
|
directory.
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
2017-09-22 08:08:54 +00:00
|
|
|
.IR /sys/class/net
|
|
|
|
Each of the entries in this directory is a symbolic link
|
2017-12-10 22:15:08 +00:00
|
|
|
representing one of the real or virtual networking devices
|
2017-09-22 08:08:54 +00:00
|
|
|
that are visible in the network namespace of the process
|
|
|
|
that is accessing the directory.
|
|
|
|
Each of these symbolic links refers to entries in the
|
|
|
|
.IR /sys/devices
|
|
|
|
directory.
|
|
|
|
.TP
|
2017-09-11 05:40:23 +00:00
|
|
|
.IR /sys/dev
|
2017-09-11 10:14:44 +00:00
|
|
|
This directory contains two subdirectories
|
|
|
|
.IR block /
|
|
|
|
and
|
|
|
|
.IR char/ ,
|
|
|
|
corresponding, respectively,
|
|
|
|
to the block and character devices on the system.
|
|
|
|
Inside each of these subdirectories are symbolic links with names of the form
|
2017-09-15 10:50:14 +00:00
|
|
|
.IR major-ID : minor-ID ,
|
2017-09-11 10:14:44 +00:00
|
|
|
where the ID values correspond to the major and minor ID of a specific device.
|
|
|
|
Each symbolic link points to the
|
|
|
|
.B sysfs
|
|
|
|
directory for a device.
|
|
|
|
The symbolic links inside
|
|
|
|
.IR /sys/dev
|
|
|
|
thus provide an easy way to look up the
|
|
|
|
.B sysfs
|
|
|
|
interface using the device IDs returned by a call to
|
|
|
|
.BR stat (2)
|
|
|
|
(or similar).
|
|
|
|
.IP
|
|
|
|
The following shell session shows an example from
|
|
|
|
.IR /sys/dev :
|
|
|
|
.IP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
|
|
|
$ \fBstat \-c "%t %T" /dev/null\fP
|
|
|
|
1 3
|
|
|
|
$ \fBreadlink /sys/dev/char/1\\:3\fP
|
|
|
|
\&../../devices/virtual/mem/null
|
|
|
|
$ \fBls \-Fd /sys/devices/virtual/mem/null\fP
|
|
|
|
/sys/devices/virtual/mem/null/
|
|
|
|
$ \fBls \-d1 /sys/devices/virtual/mem/null/*\fP
|
|
|
|
/sys/devices/virtual/mem/null/dev
|
|
|
|
/sys/devices/virtual/mem/null/power/
|
|
|
|
/sys/devices/virtual/mem/null/subsystem@
|
|
|
|
/sys/devices/virtual/mem/null/uevent
|
|
|
|
.EE
|
|
|
|
.in
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/devices
|
2017-09-11 10:14:44 +00:00
|
|
|
This is a directory that contains a filesystem representation of
|
|
|
|
the kernel device tree,
|
|
|
|
which is a hierarchy of
|
|
|
|
.I device
|
|
|
|
structures within the kernel.
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/firmware
|
2017-09-11 10:14:44 +00:00
|
|
|
This subdirectory contains interfaces for viewing and manipulating
|
|
|
|
firmware-specific objects and attributes.
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/fs
|
2017-09-11 10:14:44 +00:00
|
|
|
This directory contains subdirectories for some filesystems.
|
|
|
|
A filesystem will have a subdirectory here only if it chose
|
|
|
|
to explicitly create the subdirectory.
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/fs/cgroup
|
|
|
|
This directory conventionally is used as a mount point for a
|
|
|
|
.BR tmpfs (5)
|
|
|
|
filesystem containing mount points for
|
|
|
|
.BR cgroups (7)
|
|
|
|
filesystems.
|
|
|
|
.TP
|
2018-03-08 11:30:59 +00:00
|
|
|
.IR /sys/fs/smackfs
|
|
|
|
The directory contains configuration files for the SMACK LSM.
|
|
|
|
See the kernel source file
|
|
|
|
.IR Documentation/admin-guide/LSM/Smack.rst .
|
|
|
|
.TP
|
2017-09-11 05:40:23 +00:00
|
|
|
.IR /sys/hypervisor
|
2017-09-11 10:14:44 +00:00
|
|
|
[To be documented]
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/kernel
|
2017-09-21 12:38:59 +00:00
|
|
|
This subdirectory contains various files and subdirectories that provide
|
|
|
|
information about the running kernel.
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
2018-01-08 20:19:14 +00:00
|
|
|
.IR /sys/kernel/cgroup/
|
|
|
|
For information about the files in this directory, see
|
|
|
|
.BR cgroups (7).
|
|
|
|
.TP
|
2017-09-28 09:03:05 +00:00
|
|
|
.IR /sys/kernel/debug/tracing
|
|
|
|
Mount point for the
|
|
|
|
.I tracefs
|
|
|
|
filesystem used by the kernel's
|
|
|
|
.I ftrace
|
|
|
|
facility.
|
|
|
|
(For information on
|
|
|
|
.IR ftrace ,
|
|
|
|
see the kernel source file
|
|
|
|
.IR Documentation/trace/ftrace.txt .)
|
|
|
|
.TP
|
2017-09-21 12:48:48 +00:00
|
|
|
.IR /sys/kernel/mm
|
|
|
|
This subdirectory contains various files and subdirectories that provide
|
|
|
|
information about the kernel's memory management subsystem.
|
|
|
|
.TP
|
2017-09-21 12:49:03 +00:00
|
|
|
.IR /sys/kernel/mm/hugepages
|
|
|
|
This subdirectory contains one subdirectory for each of the
|
|
|
|
huge page sizes that the system supports.
|
|
|
|
The subdirectory name indicates the huge page size (e.g.,
|
|
|
|
.IR hugepages-2048kB ).
|
2017-10-03 15:45:12 +00:00
|
|
|
Within each of these subdirectories is a set of files
|
2017-09-21 12:49:03 +00:00
|
|
|
that can be used to view and (in some cases) change settings
|
|
|
|
associated with that huge page size.
|
|
|
|
For further information, see the kernel source file
|
|
|
|
.IR Documentation/vm/hugetlbpage.txt .
|
|
|
|
.TP
|
2017-09-11 05:40:23 +00:00
|
|
|
.IR /sys/module
|
2017-09-11 10:14:44 +00:00
|
|
|
This subdirectory contains one subdirectory
|
|
|
|
for each module that is loaded into the kernel.
|
|
|
|
The name of each directory is the name of the module.
|
|
|
|
In each of the subdirectories, there may be following files:
|
|
|
|
.RS
|
|
|
|
.TP
|
|
|
|
.I coresize
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I initsize
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I initstate
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I refcnt
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I srcversion
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I taint
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I uevent
|
|
|
|
[to be documented]
|
|
|
|
.TP
|
|
|
|
.I version
|
|
|
|
[to be documented]
|
|
|
|
.RE
|
|
|
|
.IP
|
|
|
|
In each of the subdirectories, there may be following subdirectories:
|
|
|
|
.RS
|
|
|
|
.TP
|
|
|
|
.I drivers
|
|
|
|
[To be documented]
|
|
|
|
.TP
|
|
|
|
.I holders
|
|
|
|
[To be documented]
|
|
|
|
.TP
|
|
|
|
.I notes
|
|
|
|
[To be documented]
|
|
|
|
.TP
|
|
|
|
.I parameters
|
|
|
|
This directory contains one file for each module parameter,
|
|
|
|
with each file containing the value of the corresponding parameter.
|
2017-09-15 10:50:14 +00:00
|
|
|
Some of these files are writable, allowing the
|
2017-09-11 10:14:44 +00:00
|
|
|
.TP
|
|
|
|
.I sections
|
|
|
|
This subdirectories contains files with information about module sections.
|
|
|
|
This information is mainly used for debugging.
|
|
|
|
.TP
|
|
|
|
.I
|
|
|
|
[To be documented]
|
|
|
|
.RE
|
2017-09-11 05:40:23 +00:00
|
|
|
.TP
|
|
|
|
.IR /sys/power
|
2017-09-11 10:14:44 +00:00
|
|
|
[To be documented]
|
2017-09-11 05:40:23 +00:00
|
|
|
.SH VERSIONS
|
|
|
|
The
|
|
|
|
.B sysfs
|
|
|
|
filesystem first appeared in Linux 2.6.0.
|
|
|
|
.SH CONFORMING TO
|
|
|
|
The
|
|
|
|
.B sysfs
|
|
|
|
filesystem is Linux-specific.
|
|
|
|
.SH NOTES
|
|
|
|
This manual page is incomplete, possibly inaccurate, and is the kind
|
|
|
|
of thing that needs to be updated very often.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.BR proc (5),
|
|
|
|
.BR udev (7)
|
|
|
|
.PP
|
2017-09-11 10:14:44 +00:00
|
|
|
P. Mochel. (2005).
|
|
|
|
.IR "The sysfs filesystem" .
|
|
|
|
Proceedings of the 2005 Ottawa Linux Symposium.
|
|
|
|
.\" https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf
|
|
|
|
.PP
|
2017-09-11 05:40:23 +00:00
|
|
|
The kernel source file
|
|
|
|
.I Documentation/filesystems/sysfs.txt
|
|
|
|
and various other files in
|
|
|
|
.IR Documentation/ABI
|
|
|
|
and
|
|
|
|
.IR Documentation/*/sysfs.txt
|