.\" Copyright 2008 Tilman Schmidt (tilman@imap.cc)
.\" May be distributed under the GNU General Public License version 2 or later
.TH LDATTACH 8 "14 January 2008" "Linux 2.6" "Linux Programmer's Manual"
.SH NAME
ldattach \- attach a line discipline to a serial line
.SH SYNOPSIS
.B ldattach
.RB [ \-dhV78neo12 ]
.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.

The line discipline
.I ldisc
may be specified either by name
or by number.

In order to detach the line discipline,
.BR kill (1)
the
.B ldattach
process.

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.
.SH OPTIONS
.TP
\fB-d\fP | \fB--debug\fP
Causes
.B ldattach
to stay in the foreground so that it can be interrupted or debugged,
and to print verbose messages about its progress to the standard error output.
.TP
\fB-h\fP | \fB--help\fP
Prints a usage message and exits.
.TP
\fB-V\fP | \fB--version\fP
Prints the program version.
.TP
\fB-s\fP \fIvalue\fP | \fB--speed\fP \fIvalue\fP
Set the speed of the serial line to the specified value.
.TP
\fB-7\fP | \fB--sevenbits\fP
Sets the character size of the serial line to 7 bits.
.TP
\fB-8\fP | \fB--eightbits\fP
Sets the character size of the serial line to 8 bits.
.TP
\fB-n\fP | \fB--noparity\fP
Sets the parity of the serial line to none.
.TP
\fB-e\fP | \fB--evenparity\fP
Sets the parity of the serial line to even.
.TP
\fB-o\fP | \fB--oddparity\fP
Sets the parity of the serial line to odd.
.TP
\fB-1\fP | \fB--onestopbit\fP
Sets the number of stop bits of the serial line to one.
.TP
\fB-2\fP | \fB--twostopbits\fP
Sets the number of stop bits of the serial line to two.
.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-ng package
and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
