summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2011-09-17 09:25:45 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2011-09-17 09:25:45 +0000
commitf873725884927a840d613c459fe0ff342bcfc1ed (patch)
tree347a6db584147e3e070681360ef52bb2fc14f196
parent680b9f90a2df45c87f6be8100faa097073b497b7 (diff)
downloadFreeBSD-src-f873725884927a840d613c459fe0ff342bcfc1ed.zip
FreeBSD-src-f873725884927a840d613c459fe0ff342bcfc1ed.tar.gz
Inquire about terminal type if starting from a serial console and do
not configure the host's networking if netbooted [1]. Also fix FTP installations behind some firewalls [2]. PR: bin/159583 [2] Reported by: stas [1] Approved by: re (kib)
-rwxr-xr-xrelease/rc.local28
-rwxr-xr-xusr.sbin/bsdinstall/scripts/auto10
2 files changed, 30 insertions, 8 deletions
diff --git a/release/rc.local b/release/rc.local
index d583381..1816f38 100755
--- a/release/rc.local
+++ b/release/rc.local
@@ -8,13 +8,37 @@
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}
-TERM=xterm; export TERM # XXX: serial consoles
+kbdcontrol -d >/dev/null 2>&1
+if [ $? -eq 0 ]; then
+ # Syscons: use xterm
+ TERM=xterm
+else
+ # Serial or other console
+ echo
+ echo "Welcome to FreeBSD!"
+ echo
+ echo "Please choose the appropriate terminal type for your system."
+ echo "Common console types are:"
+ echo " ansi Standard ANSI terminal"
+ echo " vt100 VT100 or compatible terminal"
+ echo " xterm xterm terminal emulator (or compatible)"
+ echo
+ echo -n "Console type [vt100]: "
+ read TERM
+ TERM=${TERM:-vt100}
+fi
+export TERM
dialog --backtitle "FreeBSD Installer" --title "Welcome" --extra-button --extra-label "Shell" --ok-label "Install" --cancel-label "Live CD" --yesno "Welcome to FreeBSD! Would you like to begin an installation or use the live CD?" 0 0
case $? in
$DIALOG_OK) # Install
- BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT
+ # If not netbooting, have the installer configure the network
+ dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+ if [ ${dlv:=0} -eq 0 -a ! -f /etc/diskless ]; then
+ BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT
+ fi
+
trap true SIGINT # Ignore cntrl-C here
bsdinstall
if [ $? -eq 0 ]; then
diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto
index 667ced4..68897dd 100755
--- a/usr.sbin/bsdinstall/scripts/auto
+++ b/usr.sbin/bsdinstall/scripts/auto
@@ -35,7 +35,7 @@ error() {
--no-label "Exit" --yes-label "Restart" --yesno \
"An installation step has been aborted. Would you like to restart the installation or exit the installer?" 0 0
if [ $? -ne 0 ]; then
- exit
+ exit 1
else
exec $0
fi
@@ -128,14 +128,12 @@ if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
if [ -d $BSDINSTALL_DISTDIR ]; then
DISTDIR_IS_UNIONFS=1
mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
- fi
-
- # Otherwise, fetch everything
- if [ $? -ne 0 ]; then
- export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
+ else
+ export DISTRIBUTIONS="MANIFEST $ALL_DISTRIBUTIONS"
export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
fi
+ export FTP_PASSIVE_MODE=YES
bsdinstall distfetch || error
export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
fi
OpenPOWER on IntegriCloud