diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2011-09-17 09:25:45 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2011-09-17 09:25:45 +0000 |
commit | f873725884927a840d613c459fe0ff342bcfc1ed (patch) | |
tree | 347a6db584147e3e070681360ef52bb2fc14f196 | |
parent | 680b9f90a2df45c87f6be8100faa097073b497b7 (diff) | |
download | FreeBSD-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-x | release/rc.local | 28 | ||||
-rwxr-xr-x | usr.sbin/bsdinstall/scripts/auto | 10 |
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 |