.\" Copyright 2008 Tilman Schmidt (tilman@imap.cc)
.\" May be distributed under the GNU General Public License version 2 or later
.TH LDATTACH 8 "July 2014" "util-linux" "System Administration"
.SH NAME
ldattach \- attach a line discipline to a serial line
.SH SYNOPSIS
.B ldattach
.RB [ \-1278denoVh ]
.RB [ \-i
.IR iflag ]
.RB [ \-s
.IR speed ]
.I ldisc device
.SH DESCRIPTION
The
.B ldattach
daemon opens the specified
.I device
file
(which should refer to a serial device)
and attaches the line discipline
.I ldisc
to it for processing of the sent and/or received data.
It then goes into the background keeping the device open so that the
line discipline stays loaded.
.sp
The line discipline
.I ldisc
may be specified either by name
or by number.
.sp
In order to detach the line discipline,
.BR kill (1)
the
.B ldattach
process.
.sp
With no arguments,
.B ldattach
prints usage information.
.SH LINE DISCIPLINES
Depending on the kernel release, the following line disciplines are supported:
.TP
.BR TTY ( 0 )
The default line discipline,
providing transparent operation (raw mode)
as well as the habitual terminal line editing capabilities (cooked mode).
.TP
.BR SLIP ( 1 )
Serial Line IP (SLIP) protocol processor
for transmitting TCP/IP packets over serial lines.
.TP
.BR MOUSE ( 2 )
Device driver for RS232 connected pointing devices (serial mice).
.TP
.BR PPP ( 3 )
Point to Point Protocol (PPP) processor
for transmitting network packets over serial lines.
.TP
.BR STRIP ( 4 )
.TP
.BR AX25 ( 5 )
.TP
.BR X25 ( 6 )
Line driver for transmitting X.25 packets over asynchronous serial lines.
.TP
.BR 6PACK ( 7 )
.TP
.BR R3964 ( 9 )
Driver for Simatic R3964 module.
.TP
.BR IRDA ( 11 )
Linux IrDa (infrared data transmission) driver -
see http://irda.sourceforge.net/
.TP
.BR HDLC ( 13 )
Synchronous HDLC driver.
.TP
.BR SYNC_PPP ( 14 )
Synchronous PPP driver.
.TP
.BR HCI ( 15 )
Bluetooth HCI UART driver.
.TP
.BR GIGASET_M101 ( 16 )
Driver for Siemens Gigaset M101 serial DECT adapter.
.TP
.BR PPS ( 18 )
Driver for serial line Pulse Per Second (PPS) source.
.TP
.BR GSM0710 ( 21 )
Driver for GSM 07.10 multiplexing protocol modem (CMUX).
.SH OPTIONS
.TP
.BR \-1 , " \-\-onestopbit"
Set the number of stop bits of the serial line to one.
.TP
.BR \-2 , " \-\-twostopbits"
Set the number of stop bits of the serial line to two.
.TP
.BR \-7 , " \-\-sevenbits"
Set the character size of the serial line to 7 bits.
.TP
.BR \-8 , " \-\-eightbits"
Set the character size of the serial line to 8 bits.
.TP
.BR \-d , " \-\-debug"
Keep
.B ldattach
in the foreground so that it can be interrupted or debugged,
and to print verbose messages about its progress to standard error output.
.TP
.BR \-e , " \-\-evenparity"
Set the parity of the serial line to even.
.TP
.BR -i , " --iflag " [ \- ] \fIvalue\fR...
Set the specified bits in the c_iflag word of the serial line.
The given \fIvalue\fP may be a number or a symbolic name.
If \fIvalue\fP is prefixed by a minus sign, the specified bits are cleared
instead.  Several comma-separated values may be given in order to
set and clear multiple bits.
.TP
.BR \-n , " \-\-noparity"
Set the parity of the serial line to none.
.TP
.BR \-o , " \-\-oddparity"
Set the parity of the serial line to odd.
.TP
.BR  \-s , " \-\-speed " \fIvalue
Set the speed (the baud rate) of the serial line to the specified \fIvalue\fR.
.TP
.BR \-c , " \-\-intro\-command " \fIstring
Define an intro command that is sent through the serial line before the invocation
of ldattach. E.g. in conjunction with line discipline GSM0710, the command
\'AT+CMUX=0\\r\' is commonly suitable to switch the modem into the CMUX mode.
.TP
.BR \-p , " \-\-pause "  \fIvalue
Sleep for \fIvalue\fR seconds before the invocation of ldattach. Default is one second.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH "SEE ALSO"
.BR inputattach (1),
.BR ttys (4)
.SH AUTHOR
.nf
Tilman Schmidt (tilman@imap.cc)
.fi
.SH AVAILABILITY
The ldattach command is part of the util-linux package
and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
