123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571 |
- # SPDX-License-Identifier: GPL-2.0
- #
- # Character device configuration
- #
- menu "Character devices"
- source "drivers/tty/Kconfig"
- config DEVMEM
- bool "/dev/mem virtual device support"
- default y
- help
- Say Y here if you want to support the /dev/mem device.
- The /dev/mem device is used to access areas of physical
- memory.
- When in doubt, say "Y".
- config DEVKMEM
- bool "/dev/kmem virtual device support"
- # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
- depends on !ARM64
- help
- Say Y here if you want to support the /dev/kmem device. The
- /dev/kmem device is rarely used, but can be used for certain
- kind of kernel debugging operations.
- When in doubt, say "N".
- config SGI_SNSC
- bool "SGI Altix system controller communication support"
- depends on (IA64_SGI_SN2 || IA64_GENERIC)
- help
- If you have an SGI Altix and you want to enable system
- controller communication from user space (you want this!),
- say Y. Otherwise, say N.
- config SGI_TIOCX
- bool "SGI TIO CX driver support"
- depends on (IA64_SGI_SN2 || IA64_GENERIC)
- help
- If you have an SGI Altix and you have fpga devices attached
- to your TIO, say Y here, otherwise say N.
- config SGI_MBCS
- tristate "SGI FPGA Core Services driver support"
- depends on SGI_TIOCX
- help
- If you have an SGI Altix with an attached SABrick
- say Y or M here, otherwise say N.
- source "drivers/tty/serial/Kconfig"
- source "drivers/tty/serdev/Kconfig"
- config TTY_PRINTK
- tristate "TTY driver to output user messages via printk"
- depends on EXPERT && TTY
- default n
- ---help---
- If you say Y here, the support for writing user messages (i.e.
- console messages) via printk is available.
- The feature is useful to inline user messages with kernel
- messages.
- In order to use this feature, you should output user messages
- to /dev/ttyprintk or redirect console to this TTY.
- If unsure, say N.
- config PRINTER
- tristate "Parallel printer support"
- depends on PARPORT
- ---help---
- If you intend to attach a printer to the parallel port of your Linux
- box (as opposed to using a serial printer; if the connector at the
- printer has 9 or 25 holes ["female"], then it's serial), say Y.
- Also read the Printing-HOWTO, available from
- <http://www.tldp.org/docs.html#howto>.
- It is possible to share one parallel port among several devices
- (e.g. printer and ZIP drive) and it is safe to compile the
- corresponding drivers into the kernel.
- To compile this driver as a module, choose M here and read
- <file:Documentation/admin-guide/parport.rst>. The module will be called lp.
- If you have several parallel ports, you can specify which ports to
- use with the "lp" kernel command line option. (Try "man bootparam"
- or see the documentation of your boot loader (lilo or loadlin) about
- how to pass options to the kernel at boot time.) The syntax of the
- "lp" command line option can be found in <file:drivers/char/lp.c>.
- If you have more than 8 printers, you need to increase the LP_NO
- macro in lp.c and the PARPORT_MAX macro in parport.h.
- config LP_CONSOLE
- bool "Support for console on line printer"
- depends on PRINTER
- ---help---
- If you want kernel messages to be printed out as they occur, you
- can have a console on the printer. This option adds support for
- doing that; to actually get it to happen you need to pass the
- option "console=lp0" to the kernel at boot time.
- If the printer is out of paper (or off, or unplugged, or too
- busy..) the kernel will stall until the printer is ready again.
- By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
- can make the kernel continue when this happens,
- but it'll lose the kernel messages.
- If unsure, say N.
- config PPDEV
- tristate "Support for user-space parallel port device drivers"
- depends on PARPORT
- ---help---
- Saying Y to this adds support for /dev/parport device nodes. This
- is needed for programs that want portable access to the parallel
- port, for instance deviceid (which displays Plug-and-Play device
- IDs).
- This is the parallel port equivalent of SCSI generic support (sg).
- It is safe to say N to this -- it is not needed for normal printing
- or parallel port CD-ROM/disk support.
- To compile this driver as a module, choose M here: the
- module will be called ppdev.
- If unsure, say N.
- source "drivers/tty/hvc/Kconfig"
- config VIRTIO_CONSOLE
- tristate "Virtio console"
- depends on VIRTIO && TTY
- select HVC_DRIVER
- help
- Virtio console for use with hypervisors.
- Also serves as a general-purpose serial device for data
- transfer between the guest and host. Character devices at
- /dev/vportNpn will be created when corresponding ports are
- found, where N is the device number and n is the port number
- within that device. If specified by the host, a sysfs
- attribute called 'name' will be populated with a name for
- the port which can be used by udev scripts to create a
- symlink to the device.
- config IBM_BSR
- tristate "IBM POWER Barrier Synchronization Register support"
- depends on PPC_PSERIES
- help
- This devices exposes a hardware mechanism for fast synchronization
- of threads across a large system which avoids bouncing a cacheline
- between several cores on a system
- config POWERNV_OP_PANEL
- tristate "IBM POWERNV Operator Panel Display support"
- depends on PPC_POWERNV
- default m
- help
- If you say Y here, a special character device node, /dev/op_panel,
- will be created which exposes the operator panel display on IBM
- Power Systems machines with FSPs.
- If you don't require access to the operator panel display from user
- space, say N.
- If unsure, say M here to build it as a module called powernv-op-panel.
- source "drivers/char/ipmi/Kconfig"
- config DS1620
- tristate "NetWinder thermometer support"
- depends on ARCH_NETWINDER
- help
- Say Y here to include support for the thermal management hardware
- found in the NetWinder. This driver allows the user to control the
- temperature set points and to read the current temperature.
- It is also possible to say M here to build it as a module (ds1620)
- It is recommended to be used on a NetWinder, but it is not a
- necessity.
- config NWBUTTON
- tristate "NetWinder Button"
- depends on ARCH_NETWINDER
- ---help---
- If you say Y here and create a character device node /dev/nwbutton
- with major and minor numbers 10 and 158 ("man mknod"), then every
- time the orange button is pressed a number of times, the number of
- times the button was pressed will be written to that device.
- This is most useful for applications, as yet unwritten, which
- perform actions based on how many times the button is pressed in a
- row.
- Do not hold the button down for too long, as the driver does not
- alter the behaviour of the hardware reset circuitry attached to the
- button; it will still execute a hard reset if the button is held
- down for longer than approximately five seconds.
- To compile this driver as a module, choose M here: the
- module will be called nwbutton.
- Most people will answer Y to this question and "Reboot Using Button"
- below to be able to initiate a system shutdown from the button.
- config NWBUTTON_REBOOT
- bool "Reboot Using Button"
- depends on NWBUTTON
- help
- If you say Y here, then you will be able to initiate a system
- shutdown and reboot by pressing the orange button a number of times.
- The number of presses to initiate the shutdown is two by default,
- but this can be altered by modifying the value of NUM_PRESSES_REBOOT
- in nwbutton.h and recompiling the driver or, if you compile the
- driver as a module, you can specify the number of presses at load
- time with "insmod button reboot_count=<something>".
- config NWFLASH
- tristate "NetWinder flash support"
- depends on ARCH_NETWINDER
- ---help---
- If you say Y here and create a character device /dev/flash with
- major 10 and minor 160 you can manipulate the flash ROM containing
- the NetWinder firmware. Be careful as accidentally overwriting the
- flash contents can render your computer unbootable. On no account
- allow random users access to this device. :-)
- To compile this driver as a module, choose M here: the
- module will be called nwflash.
- If you're not sure, say N.
- source "drivers/char/hw_random/Kconfig"
- config NVRAM
- tristate "/dev/nvram support"
- depends on ATARI || X86 || GENERIC_NVRAM
- ---help---
- If you say Y here and create a character special file /dev/nvram
- with major number 10 and minor number 144 using mknod ("man mknod"),
- you get read and write access to the extra bytes of non-volatile
- memory in the real time clock (RTC), which is contained in every PC
- and most Ataris. The actual number of bytes varies, depending on the
- nvram in the system, but is usually 114 (128-14 for the RTC).
- This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
- on Ataris. /dev/nvram may be used to view settings there, or to
- change them (with some utility). It could also be used to frequently
- save a few bits of very important data that may not be lost over
- power-off and for which writing to disk is too insecure. Note
- however that most NVRAM space in a PC belongs to the BIOS and you
- should NEVER idly tamper with it. See Ralf Brown's interrupt list
- for a guide to the use of CMOS bytes by your BIOS.
- On Atari machines, /dev/nvram is always configured and does not need
- to be selected.
- To compile this driver as a module, choose M here: the
- module will be called nvram.
- #
- # These legacy RTC drivers just cause too many conflicts with the generic
- # RTC framework ... let's not even try to coexist any more.
- #
- if RTC_LIB=n
- config RTC
- tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
- depends on ALPHA || (MIPS && MACH_LOONGSON64)
- ---help---
- If you say Y here and create a character special file /dev/rtc with
- major number 10 and minor number 135 using mknod ("man mknod"), you
- will get access to the real time clock (or hardware clock) built
- into your computer.
- Every PC has such a clock built in. It can be used to generate
- signals from as low as 1Hz up to 8192Hz, and can also be used
- as a 24 hour alarm. It reports status information via the file
- /proc/driver/rtc and its behaviour is set by various ioctls on
- /dev/rtc.
- If you run Linux on a multiprocessor machine and said Y to
- "Symmetric Multi Processing" above, you should say Y here to read
- and set the RTC in an SMP compatible fashion.
- If you think you have a use for such a device (such as periodic data
- sampling), then say Y here, and read <file:Documentation/rtc.txt>
- for details.
- To compile this driver as a module, choose M here: the
- module will be called rtc.
- config JS_RTC
- tristate "Enhanced Real Time Clock Support"
- depends on SPARC32 && PCI
- ---help---
- If you say Y here and create a character special file /dev/rtc with
- major number 10 and minor number 135 using mknod ("man mknod"), you
- will get access to the real time clock (or hardware clock) built
- into your computer.
- Every PC has such a clock built in. It can be used to generate
- signals from as low as 1Hz up to 8192Hz, and can also be used
- as a 24 hour alarm. It reports status information via the file
- /proc/driver/rtc and its behaviour is set by various ioctls on
- /dev/rtc.
- If you think you have a use for such a device (such as periodic data
- sampling), then say Y here, and read <file:Documentation/rtc.txt>
- for details.
- To compile this driver as a module, choose M here: the
- module will be called js-rtc.
- config EFI_RTC
- bool "EFI Real Time Clock Services"
- depends on IA64
- endif # RTC_LIB
- config DTLK
- tristate "Double Talk PC internal speech card support"
- depends on ISA
- help
- This driver is for the DoubleTalk PC, a speech synthesizer
- manufactured by RC Systems (<http://www.rcsys.com/>). It is also
- called the `internal DoubleTalk'.
- To compile this driver as a module, choose M here: the
- module will be called dtlk.
- config XILINX_HWICAP
- tristate "Xilinx HWICAP Support"
- depends on XILINX_VIRTEX || MICROBLAZE
- help
- This option enables support for Xilinx Internal Configuration
- Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex
- FPGA platforms to partially reconfigure the FPGA at runtime.
- If unsure, say N.
- config R3964
- tristate "Siemens R3964 line discipline"
- depends on TTY && BROKEN
- ---help---
- This driver allows synchronous communication with devices using the
- Siemens R3964 packet protocol. Unless you are dealing with special
- hardware like PLCs, you are unlikely to need this.
- To compile this driver as a module, choose M here: the
- module will be called n_r3964.
- If unsure, say N.
- config APPLICOM
- tristate "Applicom intelligent fieldbus card support"
- depends on PCI
- ---help---
- This driver provides the kernel-side support for the intelligent
- fieldbus cards made by Applicom International. More information
- about these cards can be found on the WWW at the address
- <http://www.applicom-int.com/>, or by email from David Woodhouse
- <dwmw2@infradead.org>.
- To compile this driver as a module, choose M here: the
- module will be called applicom.
- If unsure, say N.
- config SONYPI
- tristate "Sony Vaio Programmable I/O Control Device support"
- depends on X86_32 && PCI && INPUT
- ---help---
- This driver enables access to the Sony Programmable I/O Control
- Device which can be found in many (all ?) Sony Vaio laptops.
- If you have one of those laptops, read
- <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
- To compile this driver as a module, choose M here: the
- module will be called sonypi.
- config GPIO_TB0219
- tristate "TANBAC TB0219 GPIO support"
- depends on TANBAC_TB022X
- select GPIO_VR41XX
- source "drivers/char/pcmcia/Kconfig"
- config MWAVE
- tristate "ACP Modem (Mwave) support"
- depends on X86 && TTY
- select SERIAL_8250
- ---help---
- The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
- kernel driver and a user level application. Together these components
- support direct attachment to public switched telephone networks (PSTNs)
- and support selected world wide countries.
- This version of the ACP Modem driver supports the IBM Thinkpad 600E,
- 600, and 770 that include on board ACP modem hardware.
- The modem also supports the standard communications port interface
- (ttySx) and is compatible with the Hayes AT Command Set.
- The user level application needed to use this driver can be found at
- the IBM Linux Technology Center (LTC) web site:
- <http://www.ibm.com/linux/ltc/>.
- If you own one of the above IBM Thinkpads which has the Mwave chipset
- in it, say Y.
- To compile this driver as a module, choose M here: the
- module will be called mwave.
- config SCx200_GPIO
- tristate "NatSemi SCx200 GPIO Support"
- depends on SCx200
- select NSC_GPIO
- help
- Give userspace access to the GPIO pins on the National
- Semiconductor SCx200 processors.
- If compiled as a module, it will be called scx200_gpio.
- config PC8736x_GPIO
- tristate "NatSemi PC8736x GPIO Support"
- depends on X86_32 && !UML
- default SCx200_GPIO # mostly N
- select NSC_GPIO # needed for support routines
- help
- Give userspace access to the GPIO pins on the National
- Semiconductor PC-8736x (x=[03456]) SuperIO chip. The chip
- has multiple functional units, inc several managed by
- hwmon/pc87360 driver. Tested with PC-87366
- If compiled as a module, it will be called pc8736x_gpio.
- config NSC_GPIO
- tristate "NatSemi Base GPIO Support"
- depends on X86_32
- # selected by SCx200_GPIO and PC8736x_GPIO
- # what about 2 selectors differing: m != y
- help
- Common support used (and needed) by scx200_gpio and
- pc8736x_gpio drivers. If those drivers are built as
- modules, this one will be too, named nsc_gpio
- config RAW_DRIVER
- tristate "RAW driver (/dev/raw/rawN)"
- depends on BLOCK
- help
- The raw driver permits block devices to be bound to /dev/raw/rawN.
- Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
- See the raw(8) manpage for more details.
- Applications should preferably open the device (eg /dev/hda1)
- with the O_DIRECT flag.
- config MAX_RAW_DEVS
- int "Maximum number of RAW devices to support (1-65536)"
- depends on RAW_DRIVER
- range 1 65536
- default "256"
- help
- The maximum number of RAW devices that are supported.
- Default is 256. Increase this number in case you need lots of
- raw devices.
- config HPET
- bool "HPET - High Precision Event Timer" if (X86 || IA64)
- default n
- depends on ACPI
- help
- If you say Y here, you will have a miscdevice named "/dev/hpet/". Each
- open selects one of the timers supported by the HPET. The timers are
- non-periodic and/or periodic.
- config HPET_MMAP
- bool "Allow mmap of HPET"
- default y
- depends on HPET
- help
- If you say Y here, user applications will be able to mmap
- the HPET registers.
- config HPET_MMAP_DEFAULT
- bool "Enable HPET MMAP access by default"
- default y
- depends on HPET_MMAP
- help
- In some hardware implementations, the page containing HPET
- registers may also contain other things that shouldn't be
- exposed to the user. This option selects the default (if
- kernel parameter hpet_mmap is not set) user access to the
- registers for applications that require it.
- config HANGCHECK_TIMER
- tristate "Hangcheck timer"
- depends on X86 || IA64 || PPC64 || S390
- help
- The hangcheck-timer module detects when the system has gone
- out to lunch past a certain margin. It can reboot the system
- or merely print a warning.
- config UV_MMTIMER
- tristate "UV_MMTIMER Memory mapped RTC for SGI UV"
- depends on X86_UV
- default m
- help
- The uv_mmtimer device allows direct userspace access to the
- UV system timer.
- source "drivers/char/tpm/Kconfig"
- config TELCLOCK
- tristate "Telecom clock driver for ATCA SBC"
- depends on X86
- default n
- help
- The telecom clock device is specific to the MPCBL0010 and MPCBL0050
- ATCA computers and allows direct userspace access to the
- configuration of the telecom clock configuration settings. This
- device is used for hardware synchronization across the ATCA backplane
- fabric. Upon loading, the driver exports a sysfs directory,
- /sys/devices/platform/telco_clock, with a number of files for
- controlling the behavior of this hardware.
- config DEVPORT
- bool "/dev/port character device"
- depends on ISA || PCI
- default y
- help
- Say Y here if you want to support the /dev/port device. The /dev/port
- device is similar to /dev/mem, but for I/O ports.
- source "drivers/s390/char/Kconfig"
- source "drivers/char/xillybus/Kconfig"
- config ADI
- tristate "SPARC Privileged ADI driver"
- depends on SPARC64
- default m
- help
- SPARC M7 and newer processors utilize ADI (Application Data
- Integrity) to version and protect memory. This driver provides
- read/write access to the ADI versions for privileged processes.
- This feature is also known as MCD (Memory Corruption Detection)
- and SSM (Silicon Secured Memory). Intended consumers of this
- driver include crash and makedumpfile.
- endmenu
- config RANDOM_TRUST_CPU
- bool "Trust the CPU manufacturer to initialize Linux's CRNG"
- depends on X86 || S390 || PPC
- default n
- help
- Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
- RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
- for the purposes of initializing Linux's CRNG. Since this is not
- something that can be independently audited, this amounts to trusting
- that CPU manufacturer (perhaps with the insistence or mandate
- of a Nation State's intelligence or law enforcement agencies)
- has not installed a hidden back door to compromise the CPU's
- random number generation facilities. This can also be configured
- at boot with "random.trust_cpu=on/off".
|