mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-11 17:04:19 +01:00
4722ceb7d5
9600 was a standard baud rate decades ago, but 115200 is now more common so choose defaults that are useful to the largest number of users. Note that boot0sio does not support rates above 9600 so it remains unchanged. Reviewed by: bz, imp, manu Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D36295
168 lines
5.0 KiB
Bash
Executable File
168 lines
5.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 1996 Andrey A. Chernov
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
# SUCH DAMAGE.
|
|
#
|
|
#
|
|
|
|
# PROVIDE: serial
|
|
# REQUIRE: root
|
|
# KEYWORD: nojail
|
|
|
|
# Change some defaults for serial devices.
|
|
# Standard defaults are:
|
|
# dtrwait 300 drainwait `sysctl -n kern.drainwait`
|
|
# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl
|
|
# initial iflag, lflag and oflag all 0
|
|
# speed 115200
|
|
# special chars from <sys/ttydefaults.h>
|
|
# nothing locked
|
|
# except for serial consoles the initial iflag, lflag and oflag are from
|
|
# <sys/ttydefaults.h> and clocal is locked on.
|
|
|
|
default() {
|
|
# Reset everything changed by the other functions to initial defaults.
|
|
|
|
dc=$1; shift # device name character
|
|
drainwait=`sysctl -n kern.drainwait`
|
|
|
|
for i in $*
|
|
do
|
|
comcontrol /dev/tty${dc}${i} dtrwait 300 drainwait $drainwait
|
|
stty < /dev/tty${dc}${i}.init -clocal crtscts hupcl 115200 reprint ^R
|
|
stty < /dev/tty${dc}${i}.lock -clocal -crtscts -hupcl 0
|
|
stty < /dev/cua${dc}${i}.init -clocal crtscts hupcl 115200 reprint ^R
|
|
stty < /dev/cua${dc}${i}.lock -clocal -crtscts -hupcl 0
|
|
done
|
|
}
|
|
|
|
maybe() {
|
|
# Special settings.
|
|
|
|
dc=$1; shift
|
|
|
|
for i in $*
|
|
do
|
|
# Don't use ^R; it breaks bash's ^R when typed ahead.
|
|
stty < /dev/tty${dc}${i}.init reprint undef
|
|
stty < /dev/cua${dc}${i}.init reprint undef
|
|
# Lock clocal off on dialin device for security.
|
|
stty < /dev/tty${dc}${i}.lock clocal
|
|
# Lock the speeds to use old binaries that don't support them.
|
|
# Any legal speed works to lock the initial speed.
|
|
stty < /dev/tty${dc}${i}.lock 300
|
|
stty < /dev/cua${dc}${i}.lock 300
|
|
done
|
|
}
|
|
|
|
modem() {
|
|
# Modem that supports CTS and perhaps RTS handshaking.
|
|
|
|
dc=$1; shift
|
|
|
|
for i in $*
|
|
do
|
|
# may depend on modem
|
|
comcontrol /dev/tty${dc}${i} dtrwait 100 drainwait 180
|
|
# Lock crtscts on.
|
|
# Speed reasonable for V42bis.
|
|
stty < /dev/tty${dc}${i}.init crtscts 115200
|
|
stty < /dev/tty${dc}${i}.lock crtscts
|
|
stty < /dev/cua${dc}${i}.init crtscts 115200
|
|
stty < /dev/cua${dc}${i}.lock crtscts
|
|
done
|
|
}
|
|
|
|
mouse() {
|
|
# Mouse on either callin or callout port.
|
|
|
|
dc=$1; shift
|
|
|
|
for i in $*
|
|
do
|
|
# Lock clocal on, hupcl off.
|
|
# Standard speed for Microsoft mouse.
|
|
stty < /dev/tty${dc}${i}.init clocal -hupcl 1200
|
|
stty < /dev/tty${dc}${i}.lock clocal hupcl
|
|
stty < /dev/cua${dc}${i}.init clocal -hupcl 1200
|
|
stty < /dev/cua${dc}${i}.lock clocal hupcl
|
|
done
|
|
}
|
|
|
|
terminal() {
|
|
# Terminal that supports CTS and perhaps RTS handshaking
|
|
# with the cable or terminal arranged so that DCD is on
|
|
# at least while the terminal is on.
|
|
# Also works for bidirectional communications to another pc
|
|
# provided at most one side runs getty.
|
|
# Same as modem() except we want a faster speed and no dtrwait.
|
|
|
|
dc=$1; shift
|
|
|
|
modem ${dc} $*
|
|
for i in $*
|
|
do
|
|
comcontrol /dev/tty${dc}${i} dtrwait 0
|
|
stty < /dev/tty${dc}${i}.init 115200
|
|
stty < /dev/cua${dc}${i}.init 115200
|
|
done
|
|
}
|
|
|
|
3wire() {
|
|
# 3-wire serial terminals. These don't supply carrier, so
|
|
# clocal needs to be set, and crtscts needs to be unset.
|
|
|
|
dc=$1; shift
|
|
|
|
terminal ${dc} $*
|
|
for i in $*
|
|
do
|
|
stty < /dev/tty${dc}${i}.init clocal -crtscts
|
|
stty < /dev/cua${dc}${i}.init clocal -crtscts
|
|
done
|
|
}
|
|
|
|
# Don't use anything from this file unless you have some buggy programs
|
|
# that require it.
|
|
|
|
# Edit the functions and the examples to suit your system.
|
|
# $1 is the device identifier, and the remainder of the line
|
|
# lists the device numbers.
|
|
|
|
# Initialize assorted 8250-16550 (uart) ports.
|
|
# maybe u 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v
|
|
# mouse u 2
|
|
# modem u 1
|
|
# terminal u 0
|
|
# 3wire u 0
|
|
|
|
# Initialize all ports on a Cyclades-8yo.
|
|
# modem c 00 01 02 03 04 05 06 07
|
|
|
|
# Initialize all ports on a Cyclades-16ye.
|
|
# modem c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
|
|
|
|
# Initialize all ports on a Digiboard 8.
|
|
# modem D 00 01 02 03 04 05 06 07
|