This mega-commit brings in Jordan's latest sysinstall version..

This looks like it was developed offline, and is being spammed over the
top of the existing.  "That's fine by me!  I dont really care how you do
it, just get it in there..." said Jordan in a conversation a short while
ago...
This commit is contained in:
peter 1995-09-18 16:53:06 +00:00
parent 9a7230539b
commit 1ce8793de0
73 changed files with 5442 additions and 1953 deletions

View File

@ -5,7 +5,7 @@ CLEANFILES= makedevs.c rtermcap
.PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum
SRCS= attr.c cdrom.c command.c config.c decode.c devices.c disks.c dist.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c lang.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c \
main.c makedevs.c media.c menus.c misc.c msg.c network.c nfs.c system.c tape.c \
tcpip.c termcap.c ufs.c variable.c wizard.c
@ -22,12 +22,6 @@ LDADD+= -L${.CURDIR}/../libdisk -ldisk
DPADD= ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO} ${LIBUTIL}
.if exists(${.CURDIR}/../../share/syscons/scrnmaps/obj)
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/obj/koi8-r2cp866.mk
.else
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/koi8-r2cp866.mk
.endif
makedevs.c: Makefile rtermcap
rm -f makedevs.tmp
echo '#include <sys/types.h>' > makedevs.tmp
@ -52,22 +46,6 @@ makedevs.c: Makefile rtermcap
./rtermcap vt100 | \
file2c 'const char termcap_vt100[] = {' ',0};' \
>> makedevs.tmp
uudecode < ${.CURDIR}/../../share/syscons/fonts/iso-8x16.fnt \
&& file2c 'const u_char font_iso_8x16[] = {' '};' \
< iso-8x16 >> makedevs.tmp
rm iso-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp850-8x16.fnt \
&& file2c 'const u_char font_cp850_8x16[] = {' '};' \
< cp850-8x16 >> makedevs.tmp
rm cp850-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp866-8x16.fnt \
&& file2c 'const u_char font_cp866_8x16[] = {' '};' \
< cp866-8x16 >> makedevs.tmp
rm cp866-8x16
${MKSCRNMAP} koi8-r2cp866 \
&& file2c 'const u_char koi8_r2cp866[] = {' '};' \
< koi8-r2cp866 >> makedevs.tmp
rm koi8-r2cp866
mv makedevs.tmp makedevs.c
rtermcap: ${.CURDIR}/rtermcap.c

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: cdrom.c,v 1.6.2.3 1995/06/05 12:03:44 jkh Exp $
* $Id: cdrom.c,v 1.7.2.2 1995/07/21 11:45:32 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -66,7 +66,7 @@ mediaInitCDROM(Device *dev)
struct iso_args args;
struct stat sb;
if (cdromMounted)
if (!RunningAsInit || cdromMounted)
return TRUE;
if (Mkdir("/cdrom", NULL))
@ -88,7 +88,7 @@ mediaInitCDROM(Device *dev)
*/
if (stat("/cdrom/dists", &sb)) {
if (errno == ENOENT) {
msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a 2.0.5 CDROM?\n");
msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a FreeBSD CDROM?\n");
return FALSE;
}
else {
@ -115,7 +115,7 @@ mediaGetCDROM(Device *dev, char *file, Attribs *dist_attrs)
void
mediaShutdownCDROM(Device *dev)
{
if (!cdromMounted)
if (!RunningAsInit || !cdromMounted)
return;
msgDebug("Unmounting /cdrom\n");
if (unmount("/cdrom", MNT_FORCE) != 0)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: command.c,v 1.10 1995/05/29 11:01:05 jkh Exp $
* $Id: command.c,v 1.11.4.1 1995/07/21 11:45:35 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -72,47 +72,8 @@ command_clear(void)
numCommands = 0;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
int i;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
/* First, look for the key already present and add a command to it */
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_SHELL;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = NULL;
++(commandStack[i]->ncmds);
return;
}
}
if (numCommands == MAX_CMDS)
msgFatal("More than %d commands accumulated??", MAX_CMDS);
/* If we fell to here, it's a new key */
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_SHELL;
commandStack[numCommands]->cmds[0].ptr = (void *)cmd;
commandStack[numCommands++]->cmds[0].data = NULL;
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
static void
addit(char *key, int type, void *cmd, void *data)
{
int i;
@ -120,10 +81,9 @@ command_func_add(char *key, commandFunc func, void *data)
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_FUNCTION;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)func;
msgFatal("More than %d commands stacked up behind %s??", MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = type;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = data;
++(commandStack[i]->ncmds);
return;
@ -136,11 +96,33 @@ command_func_add(char *key, commandFunc func, void *data)
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_FUNCTION;
commandStack[numCommands]->cmds[0].ptr = (void *)func;
commandStack[numCommands]->cmds[0].type = type;
commandStack[numCommands]->cmds[0].ptr = cmd;
commandStack[numCommands++]->cmds[0].data = data;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
addit(key, CMD_SHELL, cmd, NULL);
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
{
addit(key, CMD_FUNCTION, func, data);
}
/* arg to sort */
static int
sort_compare(const void *p1, const void *p2)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.15.2.28 1995/06/10 08:24:28 jkh Exp $
* $Id: config.c,v 1.16.2.2 1995/07/21 11:45:36 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -114,7 +114,7 @@ fstype_short(Chunk *c1)
return "sw";
}
else if (c1->type == fat)
return "rw";
return "ro";
return "bog";
}
@ -362,12 +362,8 @@ configRoutedFlags(char *str)
int
configPackages(char *str)
{
int i, pstat;
pid_t pid;
Boolean onCD;
msgConfirm("Warning: This utility (pkg_manage) is still somewhat experimental\nand may not function for all packages. If it fails to load the\npackages you want, try running it directly once the system is up or use the\npkg_add, pkg_info and pkg_delete utilities directly.");
i = -1;
/* If we're running as init, we know that a CD in the drive is probably ours */
onCD = file_readable("/cdrom/packages");
if (!onCD && RunningAsInit) {
@ -376,19 +372,7 @@ configPackages(char *str)
onCD = TRUE;
}
}
if (!(pid = fork())) {
if (onCD && chdir("/cdrom/packages/All"))
exit(1);
execl("/usr/sbin/pkg_manage", "/usr/sbin/pkg_manage", (char *)NULL);
exit(1);
}
else {
pid = waitpid(pid, (int *)&pstat, 0);
i = (pid == -1) ? -1 : WEXITSTATUS(pstat);
}
if (i != 0 && isDebug())
msgDebug("pkg_manage returns status of %d\n", i);
/* XXX Construct some sort of menu here using an INDEX file from /cdrom/packages XXX */
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: disks.c,v 1.30.2.7 1995/06/08 09:48:31 jkh Exp $
* $Id: disks.c,v 1.31.2.2 1995/07/21 11:45:38 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -112,7 +112,7 @@ print_command_summary()
mvprintw(14, 0, "The following commands are supported (in upper or lower case):");
mvprintw(16, 0, "A = Use Entire Disk B = Bad Block Scan C = Create Partition");
mvprintw(17, 0, "D = Delete Partition G = Set BIOS Geometry S = Set Bootable");
mvprintw(18, 0, "U = Undo All Changes Q = Finish");
mvprintw(18, 0, "U = Undo All Changes Q = Finish W = Write Changes");
mvprintw(20, 0, "The currently selected partition is displayed in ");
attrset(A_REVERSE); addstr("reverse"); attrset(A_NORMAL); addstr(" video.");
mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to move.");
@ -206,12 +206,8 @@ diskPartition(Disk *d)
if (val && (size = strtol(val, &cp, 0)) > 0) {
if (*cp && toupper(*cp) == 'M')
size *= 2048;
Create_Chunk(d, chunk_info[current_chunk]->offset,
size,
freebsd,
3,
(chunk_info[current_chunk]->flags &
CHUNK_ALIGN));
Create_Chunk(d, chunk_info[current_chunk]->offset, size, freebsd, 3,
(chunk_info[current_chunk]->flags & CHUNK_ALIGN));
record_chunks(d);
}
}
@ -229,8 +225,7 @@ diskPartition(Disk *d)
case 'G': {
char *val, geometry[80];
snprintf(geometry, 80, "%lu/%lu/%lu",
d->bios_cyl, d->bios_hd, d->bios_sect);
snprintf(geometry, 80, "%lu/%lu/%lu", d->bios_cyl, d->bios_hd, d->bios_sect);
val = msgGetInput(geometry,
"Please specify the new geometry in cyl/hd/sect format.\nDon't forget to use the two slash (/) separator characters!\nIt's not possible to parse the field without them.");
if (val) {
@ -255,6 +250,11 @@ diskPartition(Disk *d)
break;
case 'W':
if (!msgYesNo("Are you sure you want to write this now? You do also\nhave the option of not modifying the disk until *all*\nconfiguration information has been entered, at which\npoint you can do it all at once. If you're unsure, then\nchoose No at this dialog."))
diskPartitionWrite(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\nNo seat belts whatsoever are provided!")) {
dialog_clear();
end_dialog();
@ -349,3 +349,75 @@ diskPartitionEditor(char *str)
}
return 0;
}
static u_char *
getBootMgr(void)
{
extern u_char mbr[], bteasy17[];
/* Figure out what kind of MBR the user wants */
if (dmenuOpenSimple(&MenuMBRType)) {
switch (BootMgr) {
case 0:
return bteasy17;
case 1:
return mbr;
case 2:
default:
break;
}
}
return NULL;
}
int
diskPartitionWrite(char *str)
{
extern u_char boot1[], boot2[];
u_char *mbrContents;
Device **devs;
int i;
mbrContents = getBootMgr();
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
if (!devs) {
msgConfirm("Unable to find any disks to write to??");
return 0;
}
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
if (!devs[i]->enabled)
continue;
/* Do it once so that it only goes on the first drive */
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: dist.c,v 1.35.2.35 1995/06/10 14:20:10 jkh Exp $
* $Id: dist.c,v 1.36.2.1 1995/07/21 10:53:48 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -104,6 +104,7 @@ static Distribution SrcDistTable[] = {
{ "slibexec", "/usr/src", &SrcDists, DIST_SRC_LIBEXEC, NULL },
{ "slkm", "/usr/src", &SrcDists, DIST_SRC_LKM, NULL },
{ "srelease", "/usr/src", &SrcDists, DIST_SRC_RELEASE, NULL },
{ "sbin", "/usr/src", &SrcDists, DIST_SRC_BIN, NULL },
{ "ssbin", "/usr/src", &SrcDists, DIST_SRC_SBIN, NULL },
{ "sshare", "/usr/src", &SrcDists, DIST_SRC_SHARE, NULL },
{ "ssys", "/usr/src", &SrcDists, DIST_SRC_SYS, NULL },
@ -414,14 +415,14 @@ distExtract(char *parent, Distribution *me)
return status;
}
void
distExtractAll(void)
int
distExtractAll(char *unused)
{
int retries = 0;
/* First try to initialize the state of things */
if (!(*mediaDevice->init)(mediaDevice))
return;
return 0;
/* Try for 3 times around the loop, then give up. */
while (Dists && ++retries < 3)
@ -433,4 +434,5 @@ distExtractAll(void)
/* Close up shop and go home */
(*mediaDevice->shutdown)(mediaDevice);
return 0;
}

View File

@ -46,6 +46,7 @@
#define DIST_SRC_SYS 0x0800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_BIN 0x4000
#define DIST_SRC_ALL 0xFFFF
/* Subtypes for XFree86 distribution */

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: dos.c,v 1.5.2.4 1995/06/05 16:59:03 jkh Exp $
* $Id: dos.c,v 1.6.2.1 1995/07/21 10:53:52 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -63,7 +63,7 @@ mediaInitDOS(Device *dev)
{
struct msdosfs_args args;
if (DOSMounted)
if (!RunningAsInit || DOSMounted)
return TRUE;
if (Mkdir("/dos", NULL))
@ -97,7 +97,7 @@ mediaGetDOS(Device *dev, char *file, Attribs *dist_attrs)
void
mediaShutdownDOS(Device *dev)
{
if (!DOSMounted)
if (!RunningAsInit || !DOSMounted)
return;
msgDebug("Unmounting /dos\n");
if (unmount("/dos", MNT_FORCE) != 0)

View File

@ -0,0 +1,500 @@
README for XFree86 3.1.1u1 on FreeBSD 2.0.5
Rich Murphey, David Dawes
20 January 1995
1. What and Where is XFree86?
------------------------------
XFree86 is a port of X11R6 that supports several versions of Intel-
based Unix. It is derived from X386 1.2, which was the X server
distributed with X11R5. This release consists of many new features
and performance improvements as well as many bug fixes. The release
is available as source patches against the X Consortium X11R6 code, as
well as binary distributions for many architectures.
See the Copyright Notice (COPYRIGHT.html).
The sources for XFree86 are available as part of the FreeBSD 2.0.5
distribution, or by anonymous ftp from:
ftp.XFree86.org:/pub/XFree86/current
(ftp://ftp.XFree86.org/pub/XFree86/current)
Binaries for XFree86 on FreeBSD are also available as part of
2.0.5 or from:
ftp.XFree86.org:/pub/XFree86/current/binaries/FreeBSD-2.0
(ftp://ftp.XFree86.org/pub/XFree86/current/binaries/FreeBSD-2.0)
XFree86.cdrom.com:/pub/XFree86/current/binaries/FreeBSD-2.0
(ftp://XFree86.cdrom.com/pub/XFree86/current/binaries/FreeBSD-2.0)
Send email to Rich-Murphey@Rice.edu or XFree86@XFree86.org if you have
comments or suggestions about this file and we'll revise it.
2. Installing the Binaries
---------------------------
In the FreeBSD 2.0.5 distribution, XFree86 comes in 3 major sections:
"basic" distributions, fonts and servers. At the minimum, you will
need the binaries and libraries from the basic distribution, the
"misc" fonts collection and at least one server. The smallest usable
distribution is around 9MB.
If you can't decide what to pick and you have 52Mb of disk
space, it's safe to unpack everything.
What follows is a description of the various distribution files
comprising XFree86. If you are installing this as part of FreeBSD
2.0.5 then there's no need to use these files directly: You may
simply check the desired components off the installation menus
provided for that purpose. If you're installing this manually,
then the following information should prove useful:
Required (6.7Mb):
X311bin.tgz
all the executable X client applications and shared libs
X311fnts.tgz
the misc and 75 dpi fonts
X311lib.tgz
data files needed at runtime
Required unless you have already customized your configuration
files:
X311xicf.tgz
customizable xinit runtime configuration file
X311xdcf.tgz
customizable xdm runtime configuration file
Choose at least one server ( 2.3Mb):
X3118514.tgz
8-bit color for IBM 8514 and true compatibles.
X311AGX.tgz
8-bit color for AGX boards.
X311Mch3.tgz
8 and 16-bit color for ATI Mach32 boards.
X311Mch8.tgz
8-bit color for ATI Mach8 boards.
X311Mono.tgz
1-bit monochrome for VGA, Super-VGA, Hercules, and others.
X311P9K.tgz
8, 16, and 24-bit color for Weitek P9000 boards (Diamond
Viper).
X311S3.tgz
8, 16 and 24-bit color for S3 boards (#9 GXE, Actix GE32,
SPEA Mercury, STB Pegasus)
X311SVGA.tgz
8-bit color for Super-VGA cards.
X311VG16.tgz
4-bit color for VGA and Super-VGA cards
X311W32.tgz
8-bit Color for ET4000/W32, /W32i and /W32p cards.
X311nest.tgz
A nested server running as a client window on another
display.
Optional:
X311doc.tgz
(.5Mb) READMEs and XFree86 specific man pages
X311man.tgz
(1.7Mb) man pages except XFree86 specific ones in etc archive
X311f100.tgz
(1.8Mb) 100dpi fonts
X311fscl.tgz
(1.6Mb) Speedo and Type1 fonts
X311fnon.tgz
(3.3Mb) Japanese, Chinese and other non-English fonts
X311fsrv.tgz
(.3Mb) the font server and it's man page
X311prog.tgz
(3.9Mb) config, lib*.a and *.h files needed only for
compiling
X311link.tgz
(7.8Mb) X server reconfiguration kit
X311pex.tgz
(.5Mb) PEX fonts and shared libs needed by PEX applications.
X311lbx.tgz
(.2Mb) low bandwidth X proxy server and libraries.
Note that there is no longer a separate xdm archive. FreeBSD 2.0
and later handles this in shared libraries now, so that the xdm
binary does not itself contain des and there is no more need for
us to provide separate tar balls.
2.1. Full Install:
-------------------
[ Note: Unless you're installing XFree86 3.1.1u1 manually, that is
to say not as part of the FreeBSD 2.0.5 installation, you may skip
to section 2.3 ]
1. You must be logged in as root to unpack the archives because
several executables are set-user-id. Otherwise the server may
abort if you unpack it as an ordinary user. You must also use a
``umask'' value of 022 because the X server requires special
permissions.
% su
# umask 022
2. If you have 52Mb free in the /usr partition ``cd /usr'' and skip
to no. 3. Otherwise, create a directory on another partition
and sym link it into /usr:
# cd /usr/local
# mkdir X11R6
# ln -s /usr/local/X11R6 /usr/X11R6
3. Unpack everything:
If you are using sh (as root usually does):
# for i in X311*.tgz; do
# tar -xzf $i
# done
Else, if you are using csh:
% foreach i (X311*.tgz)
% tar -xzf $i
% end
4. Create a symbolic link ``X'' that points to the server that
matches your video card. The XF86_* man pages list which vga
chip sets are supported by each server. For example, if you
have an ET4000 based card you will use the XF86_SVGA server:
# cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
2.2. Minimal Install:
----------------------
First do numbers 1 and 2 above. Then unpack the required archives:
# for i in bin fnts lib xicf; do
# tar -xzf X311$i.tgz
# done
Then unpack a server archive corresponding to your vga card. The
server man pages, X11R6/man/man1/XF86_*, list the vga chip sets
supported by each server. For example, if you have an ET4000 based
card you will use the XF86_SVGA server:
# tar -xzf X311SVGA.tgz
# cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
2.3. After either Full or Minimal Install above:
-------------------------------------------------
Add /usr/X11R6/bin to the default path for sh in /etc/profile and for
csh in /etc/csh.login if they are not already there:
# echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login
# echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile
Or make sure all who use X put /usr/X11R6/bin in their shell's
``path'' variable.
Next either reboot or invoke ldconfig as root to put the shared
libraries in ld.so's cache:
# ldconfig /usr/lib /usr/local/lib /usr/X11R6/lib
If you had already configured X11R6/lib/X11/xinit/xinitrc or
X11R6/lib/X11/xdm/* omit the xinit-config or xdm-config archive or
unpack it separately and merge in your customizations.
The fscl and f100 archives are optional and can be omitted if you are
short on space. The optional link archive allows you to reconfigure
and customize a X server binary. The optional prog archive is needed
only for writing or compiling X applications. The optional pex
archive contains pex clients and libraries for building 3D graphics
applications.
NOTE: You don't need to uncompress the font files, but if
you uncompress them anyway you must run mkfontdir in the
corresponding font directory; otherwise your server will
abort with the message ``could not open default font
'fixed'''.
3. Installing The Display Manager (xdm)
----------------------------------------
The display manager makes your PC look like an X terminal. That is,
it presents you with a login screen that runs under X.
The easiest way to automatically start the display manager on boot is
to add a line in /etc/ttys to start it on one of the unoccupied
virtual terminals:
ttyv4 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
You should also make sure that /usr/X11R6/bin/X is a symbolic link to
the Xserver that matches your video card or edit the file Xservers in
/usr/X11R6/lib/X11/xdm to specify the pathname of the X server.
The change to /etc/ttys won't take effect until you either reboot or
``kill -HUP 1'' to force initd to reread /etc/ttys. You can also test
the display manager manually by loging in as root on the console and
typing ``xdm -nodaemon''.
4. Configuring X for Your Hardware
-----------------------------------
The XF86Config file tells the X server what kind of monitor, video
card and mouse you have. You must create it to tell the server what
specific hardware you have.
XFree86 3.1 uses a new configuration file format. Consult the
XF86Config man page and the general INSTALL (INSTALL.html) file for
instructions.
If you have a Xconfig file for XFree86 2.x, use reconfig to translate
part of it into the new format:
# reconfig <Xconfig >XF86Config
and complete the rest according to the XF86Config man page and the
XF86Config.sample file as a template.
In order to protect your hardware from damage, the server no longer
will read XF86Config files from a user's home directory, but requires
that it be in /etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname
or /usr/X11R6/lib/X11/XF86Config.
You'll need info on your hardware:
o Your mouse type, baud rate and it's /dev entry.
o The video card's chipset (e.g. ET4000, S3, etc).
o Your monitor's sync frequencies.
The easiest way to find which device your mouse is plugged into is to
use ``cat'' or ``kermit'' to look at the output of the mouse. Connect
to it and just make sure that it generates output when the mouse is
moved or clicked:
% cat < /dev/cuaa0
If you can't find the right mouse device then use ``dmesg|grep sio''
to get a list of devices that were detected upon booting:
% dmesg|grep sio
sio0 at 0x3f8-0x3ff irq 4 on isa
Then double check the /dev entries corresponding to these devices.
Use the script /dev/MAKEDEV to create entries if they don't already
exist:
% cd /dev
% sh MAKEDEV cuaa0
If you plan to fine tune the screen size or position on your monitor
you'll need the specs for sync frequencies from your monitor's manual.
5. Running X
-------------
8mb of memory is a recommended minimum for running X. The server,
window manager, display manager and an xterm take about 8Mb of virtual
memory themselves. Even if their resident set size is smaller, on a
8Mb system that leaves very space for other applications such as gcc
that expect a few meg free. The R6 X servers may work with 4Mb of
memory, but in practice compilation while running X can take 5 or 10
times as long due to constant paging.
The easiest way for new users to start X windows is to type ``startx
>& startx.log''. Error messages are lost unless you redirect them
because the server takes over the screen.
To get out of X windows, type: ``exit'' in the console xterm. You can
customize your X by creating .xinitrc, .xserverrc, and .twmrc files in
your home directory as described in the xinit and startx man pages.
6. Rebuilding Kernels for X
----------------------------
The GENERIC FreeBSD 2.0 kernel supports XFree86 without any
modifications required. You do not need to make any changes to the
GENERIC kernel or any kernel configuration which is a superset.
For a general description of BSD kernel configuration get
smm.02.config.ps.Z
(ftp://gatekeeper.dec.com/pub/BSD/manuals/smm.02.config.ps.Z). It is
a ready-to-print postscript copy of the kernel configuration chapter
from the system maintainers manual.
If you do decide to reduce your kernel configuration file, do not
remove the two lines below (in /sys/arch/i386/conf). They are both
required for X support:
options XSERVER #Xserver
options UCONSOLE #X Console support
The generic FreeBSD 2.0 kernel is configured by default with the
syscons driver. To configure your kernel similarly it should have a
line like this in /usr/src/sys/i386/conf/GENERIC:
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
The maximum number of virtual consoles can be set using the MAXCONS
option:
options "MAXCONS=4" #4 virtual consoles
Otherwise, the default without a line like this is 12. You must have
more VTs than gettys as described in the end of section 3, and 4 is a
reasonable minimum.
The server supports several console drivers: pccons, syscons and pcvt.
The syscons driver is the default in FreeBSD 1.1.5 and higher. They
are detected at runtime and no configuration of the server itself is
required.
The pcvt console driver is bundled into FreeBSD and may be enabled
by changing the `sc0' line in your kernel configuration file to
`vt0'. See /sys/i386/conf/LINT for more details.
The XFree86 servers include support for the MIT-SHM extension. The
GENERIC kernel does not support this, so if you want to make use of
this, you will need a kernel configured with SYSV shared memory
support. To do this, add the following line to your kernel config
file:
options SYSVSHM # System V shared memory
options SYSVSEM # System V semaphores
options SYSVMSG # System V message queues
If you are using a SoundBlaster 16 on IRQ 2 (9), then you need a patch
for sb16_dsp.c. Otherwise a kernel configured with the SoundBlaster
driver will claim interrupt 9 doesn't exist and X server will lock up.
S3 cards and serial port COM 4 cannot be installed together on a
system because the I/O port addresses overlap.
7. Rebuilding XFree86
----------------------
The server link kit allows you to build an X server using a minimum
amount of disk space. Just unpack it, make the appropriate changes to
site.def, type ``./mkmf' and ``make'' to link the server. See
README.LinkKit (LinkKit.html) for more info.
The source tree takes about 114Mb before compiling and an additional
100Mb after ``make World''. You should configure the distribution by
editing xf86site.def and site.def in xc/config/cf before compiling.
By default, the config files are set up to build shared libraries. If
you are running a version of FreeBSD that doesn't include shared
library support, add the following line to site.def:
#define BuildBsdSharedLibs NO
If your system doesn't have support or SYSV shared memory (for
example, if you don't have the <sys/shm.h> header), you should disable
the MIT-SHM extension by adding the following line to site.def:
#define HasShm NO
To compile the sources on FreeBSD 1.1 and later, type:
make World
8. Building Other X Clients
----------------------------
The easiest way to build a new client (X application) is to use xmkmf
if an Imakefile is included with it. Type ``xmkmf -a'' to create the
Makefiles, then type ``make''. Whenever you install additional man
pages you should update whatis.db by running ``makewhatis
/usr/X11R6/man''.
Note: Starting with XFree86 2.1 and FreeBSD 1.1, the symbol __386BSD__
no longer gets defined either by the compiler or via the X config
files for FreeBSD systems. When porting clients to BSD systems, make
use of the symbol BSD for code which is truly BSD-specific. The value
of the symbol can be used to distinguish different BSD releases. For
example, code specific to the Net-2 and later releases can use:
#if (BSD >= 199103)
To ensure that this symbol is correctly defined, include <sys/param.h>
in the source that requires it. Note that the symbol CSRG_BASED is
defined for *BSD systems in XFree86 3.1.1 and later. This should be
used to protect the inclusion of <sys/param.h>.
For code that really is specific to a particular i386 BSD port, use
__FreeBSD__ for FreeBSD, __NetBSD__ for NetBSD, __386BSD__ for 386BSD,
and __bsdi__ for BSD/386.
9. Thanks
----------
Many thanks to:
o Pace Willison for providing initial *BSD support.
o Amancio Hasty for 386BSD kernel and S3 chipset support.
o David Greenman, Nate Williams, Jordan Hubbard for FreeBSD kernel
support.
o Rod Grimes, Jordan Hubbard and Jack Velte for the use of Walnut
Creek Cdrom's hardware.
o Orest Zborowski, Simon Cooper and Dirk Hohndel for ideas from
the Linux distribution.
$XConsortium: FreeBSD.sgml,v 1.3 95/01/23 15:34:41 kaleb Exp $
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/FreeBSD.sgml,v 3.10 1995/01/28 16:01:28 dawes Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/doc/READ.FreeBSD,v 3.12 1995/01/28 16:19:37 dawes Exp $

View File

@ -0,0 +1,14 @@
This menu allows you to configure your system after the installation
process is complete. At the minimum, you should probably set the
system manager's password and the system time zone.
For extra goodies like bash, emacs, pascal, etc., you should look at
the Packages item in this menu. Currently, the Packages option is
only useful if you have a CDROM or an existing packages collection
somewhere in the file system hierarchy where the package management
tool can locate it. The automatic transfer of packages via FTP is not
yet supported!
For setting the timezone after the system is installed, type
``tzsetup''. For more information on the general system
configuration, see the ``/etc/sysconfig'' file.

View File

@ -0,0 +1,88 @@
An ``X-'' prefixed before a distribution set means that the XFree86
3.1.1u1 base distribution, libraries, manual pages, SVGA server and a
set of default fonts will be selected in addition to the set itself.
If you select such a set, you will also be presented with a set of
menus for customizing the selections to your desired X Window System
setup.
N.B. All references in this document to `complete source' mean the
complete source tree minus any legally encumbered cryptography code.
The current "canned" installations are as follows:
Developer: Base ("bin") distribution, man pages, dictionary
files, profiling libraries and the complete source tree.
Kern-Developer: As above, but with only kernel sources instead of
the complete source tree.
User: The base distribution, man pages, dictionary files and
the FreeBSD 1.x and 2.0 compatibility sets.
Minimal: Only the base distribution.
Everything: The base distribution, man pages, dictionary files,
profiling libraries, the FreeBSD 1.x and the FreeBSD 2.0
compatibility libraries, the complete source tree,
games and your choice of XFree86 distribution components.
N.B. Still no cryptocraphy source code!
Custom: Allows you to modify or create your distribution set on
a piece-by-piece basis.
Reset: Clear all currently selected distributions.
---
When using Custom, most of the sub-distribution choices are fairly
obvious, though two possible exceptions may be the "commerce" and
"xperimnt" distributions:
* The "commerce" directory, as its name implies, is devoted to
commercial offerings. This includes commercial products released
under special arrangement, limited functionality demos, shareware
products (you like it, you buy it), etc.
At the time of this writing, there are unfortunately not enough
commercial offerings to justify a fully split distribution set,
so each product is available both as a subdirectory and as part
of one large archive file. If you select "commerce" from the
distributions submenus then you'll get the big file containing
the entire collection copied to your hard disk. Don't do this
unless you've got at least 10MB to devote to it!
* The "xperimnt" directory contains, not surprisingly, experimental
offerings. Unfinished (or work-in-progress) features, special
purpose drivers and packages, strange proof-of-concept stuff,
it's a mixed bag! Select this item on a distribution menu and
you'll get the whole collection (between 10 and 30MB).
If you're installing from CDROM then all of the commercial and
"experimental" offerings are also easily available in their
individual subdirectories and can be copied to hard disk at
any time.
You may also notice that certain distributions, like "des" and "krb",
are marked "NOT FOR EXPORT!" This is because it's illegal to
export them from the United States (or any other country which
considers encryption technology to be on its restricted export
list). Since breaking this law only gets the _originating_ site
(US!) in trouble, please do not load these distributions from U.S.
servers!
A number of "foreign" servers do exist for the benefit of
non-U.S. sites, one of which is "skeleton.mikom.csir.co.za".
Please get all such export restricted software from there
if you are outside the U.S., thanks!

View File

@ -0,0 +1,29 @@
If you are going to actually install some portion of FreeBSD on a
drive then PLEASE BE VERY CERTAIN that the Geometry reported in the
Partition Editor (see Installation Menu) is the correct one for your
drive and controller combination!
IDE drives often have a certain geometry set during the PC BIOS setup,
or (in the case of larger IDE drives) have their geometry "remapped"
by either the IDE controller or a special boot-sector translation
utility such as that by OnTrack Systems. In these cases, knowing the
correct geometry gets even more complicated as it's not something you
can easily tell by looking at the drive or the PC BIOS setup. The
best way of verifying that your geometry is being correctly calculated
in such situations is to boot DOS (from the hard disk, not a floppy!)
and run the ``pfdisk'' utility provided in the tools/ subdirectory of
the FreeBSD CDROM or FTP site. It will report the geometry that DOS
sees, which is generally the correct one.
If you have no DOS partition sharing the disk at all, then you may
find that you have better luck with Geometry detection if you create a
very small DOS partition first, before installing FreeBSD. Once
FreeBSD is installed you can always delete it again if you need the
space.
It's actually not a bad idea (believe it or not) to have a small bootable
DOS partition on your FreeBSD machine anyway: Should the machine become
unstable or exhibit strange behavior at some point in the future (which
is not uncommon behavior for PC hardware!) you can then at least use
DOS for installing and running one of the commercially available system
diagnostic utilities.

View File

@ -0,0 +1,390 @@
Hardware Documentation Guide: $Id: hardware.hlp,v 1.12.2.1 1995/08/14 10:49:29 rgrimes Exp $
Table of Contents
-----------------
0. Document Conventions
1. Using UserConfig to change FreeBSD kernel settings
2. Default Configuration (GENERIC kernel)
3. LINT - other possible configurations.
4. Known Hardware Problems.
=========================================================================
0. Document Conventions
-- --------------------
We have `underlined' text which represents user input with `-'
symbols throughout this document to differentiate it from
the machine output.
1. Using UserConfig to change FreeBSD kernel settings
-- --------------------------------------------------
The UserConfig utility allows you to override various settings of
the FreeBSD kernel before the system has booted. This allows you to
make minor adjustments to the various drivers in the system without
necessarily having to recompile the kernel.
UserConfig is activated by specifying the `-c' flag at the initial
boot prompt. For example:
>> FreeBSD BOOT @ 0x10000: 640/7168 k of memory
Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.
Usage: [[wd(0,a)]/kernel][-abcCdhrsv]
Use ? for file list or press Enter for defaults
Boot: -c
--
This command causes the system to boot the default kernel ("/kernel") and
the UserConfig utility to be started once the kernel is loaded into memory.
The `-c' flag follows any of the other parameters you may need to provide
for the system to boot properly. For example, to boot off the second of
two SCSI drives installed and run UserConfig, you would type:
Boot: sd(1,a)/kernel -c
-----------------
As always, the kernel will report some information on your processor
and how much memory your system has. Then UserConfig will be invoked
and you will see the prompt:
config>
To see the list of commands that UserConfig accepts, you may type '?' and
press [ENTER]. The help message looks something like this:
Command Description
------- -----------
attach <devname> Return results of device attach
ls List currently configured devices
port <devname> <addr> Set device port (i/o address)
irq <devname> <number> Set device irq
drq <devname> <number> Set device drq (DMA Request)
iomem <devname> <addr> Set device maddr (memory address)
iosize <devname> <size> Set device memory size
flags <devname> <mask> Set device flags
enable <devname> Enable device
probe <devname> Return results of device probe
disable <devname> Disable device (will not be probed)
quit Exit this configuration utility
help This message
You may alter nearly all of the default settings present in the FreeBSD
generic kernel. This includes reassigning IRQs, disabling troublesome
devices (or drivers that conflict with the hardware your system has),
setting special device flags, etc.
The most common use of UserConfig is to adjust or disable a driver
which is causing trouble. The "ls" command displays the current
settings for all the drivers present in the booted kernel, and
once you have located an entry of interest you may use the displayed
device name to change its settings or even disable the driver completely.
For example, to change the memory address of network adapter 'ed0' to
the address 0xd4000, you would type
config> iomem ed0 0xd4000
-----------------
To entirely disable a device driver you are not using, use the
"disable" command. In this example, you would disable device
`ie0' by typing:
config> disable ie0
-----------
You can use the "ls" command to verify your changes and correct
any other problems before continuing the boot process.
Once you are happy with a given configuration you may type: "quit"
This will cause the kernel to boot with the new settings you
have chosen.
Once you have a fully installed system (e.g. the `bin' distribution
has been successfully extracted), any changes you make in UserConfig
are permanently stored in the `/kernel' file on the root filesystem.
This action is performed by the `dset' utility, which will ensure that
these settings remain in effect until you replace the kernel with
a new one. If you do not want your changes to be permanently
stored like this, remove `dset' from the /etc/rc file before you
make any changes.
If you accidentally change a setting for a device that you did not mean
to change, the safest thing to do is to reset the computer and start
over. Do not allow the boot to proceed (e.g. do not type "quit") with
bad settings as these may be permanently stored by dset and
leave your system in a state where it will no longer run properly.
We suggest as a general rule that you disable any drivers that are not
used by your particular hardware configuration. There are known problems
with certain device drivers (see section 4.0) that can cause conflicts
with other devices if they're also not disabled. You should move or
disable any device that resides at the same port or IRQ as a device
you actually have!
You can also remove drivers that are not needed by building yourself a
custom kernel that contains only the device drivers which your system
really needs (see section 6.0 of the FreeBSD.FAQ). If your system has
sufficient free disk space to store and compile the kernel sources,
this is the option we most highly recommend.
2. Default (GENERIC) Configuration
-- -------------------------------
The following table contains a list of all of the devices that are present
in the GENERIC kernel, which is the kernel (the operating system) that was
placed on your computer during the FreeBSD installation process.
(A compressed version of the GENERIC kernel is also used on the
installation floppy diskettes.)
The table describes the various parameters used by the driver to communicate
with the hardware in your system. There are four parameters in the
table, but not all are used by each device. They are:
Port the starting I/O port used by the device, shown in hexadecimal.
IOMem the lowest (or starting) memory address used by the device,
also shown in hexadecimal.
IRQ the interrupt the device uses to alert the driver to an event,
given in decimal.
DRQ the DMA (direct memory access) channel the device uses to move
data to and from main memory, also given in decimal.
If an entry in the table has `n/a' for the value, it means that the
parameter does not apply to that device. A value of `dyn' means that the
correct value should be determined automatically by the kernel when the
system boots.
FreeBSD GENERIC kernel:
Port IRQ DRQ IOMem Description
---- --- --- ----- ---------------------------------
fdc0 3f0 6 2 n/a Floppy disk controller
wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller
wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller
ncr0 n/a n/a n/a n/a NCR PCI SCSI controller
ahc0 n/a n/a n/a n/a Adaptec 294x PCI SCSI controller
bt0 330 dyn dyn dyn Buslogic SCSI controller
uha0 330 dyn 6 dyn Ultrastore 14f
ahc1 dyn dyn dyn dyn Adaptec 274x/284x SCSI controller
ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
controller
nca0 1f88 10 dyn dyn ProAudioSpectrum cards
nca1 350 5 dyn dyn ProAudioSpectrum cards
sea0 dyn 5 dyn c8000 Seagate ST01/02 8 bit controller
wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36
mcd0 300 10 n/a n/a Mitsumi CD-ROM
mcd1 340 11 n/a n/a Mitsumi CD-ROM
matcd0 dyn n/a n/a n/a Matsushita/Panasonic CD-ROM
scd0 230 n/a n/a n/a Sony CD-ROM
sio0 3f8 4 n/a n/a Serial Port 0 (COM1)
sio1 2f8 3 n/a n/a Serial Port 1 (COM2)
sio2 3e8 5 n/a n/a Serial Port 2 (COM3)
sio3 2e8 9 n/a n/a Serial Port 3 (COM4)
lpt0 dyn 7 n/a n/a Printer Port 0
lpt1 dyn dyn n/a n/a Printer Port 1
lpt2 dyn dyn n/a n/a Printer Port 2
de0 DEC DC21x40 PCI based cards
(including 21140 100bT cards)
ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
NE2000; 3Com 3C503
ed1 300 5 dyn d8000 Same as ed0
eg0 310 5 dyn dyn 3Com 3C505
ep0 300 10 dyn dyn 3Com 3C509
ie0 360 7 dyn d0000 AT&T StarLAN 10 and EN100;
3Com 3C507; NI5210
ix0 300 10 dyn d0000 Intel EtherExpress cards
le0 300 5 dyn d0000 Digital Equipment EtherWorks
2 and EtherWorks 3
lnc0 280 10 n/a dyn Lance/PCnet cards
(Isolan, Novell NE2100, NE32-VL)
lnc1 300 10 n/a dyn See lnc0
ze0 300 5 dyn d8000 IBM/National Semiconductor
PCMCIA Ethernet Controller
zp0 300 10 dyn d8000 3Com PCMCIA Etherlink III
Ethernet Controller
--- End of table ---
If the hardware in your computer is not set to the same settings as
those shown in this table and the item is not marked 'dyn', you will
have to either reconfigure your hardware, or use UserConfig ('-c' boot
option) to reconfigure the kernel to match the way your hardware is
currently set (see section 1.0).
If the settings do not match, the kernel may be unable to locate
or reliably access the devices in your system.
3. LINT - other possible configurations
-- ------------------------------------
The following drivers are not in the GENERIC kernel but remain
available to those who do not mind compiling a custom kernel (see
section 6 of FreeBSD.FAQ). The LINT configuration file
(/sys/i386/conf/LINT) also contains prototype entries for just about
every device supported by FreeBSD and is a good general reference.
The device names and a short description of each are listed below. The port
numbers, etc, are not meaningful here since you will need to compile a
custom kernel to gain access to these devices anyway and can thus
adjust the addresses to match the hardware in your computer in the process.
The LINT file contains prototype entries for all of the below which you
can easily cut-and-paste into your own file (or simply copy LINT and edit
it to taste):
apm: Laptop Advanced Power Management (experimental)
ctx: Cortex-I frame grabber
cx: Cronyx/Sigma multiport sync/async
cy: Cyclades high-speed serial driver
el: 3Com 3C501
fe: Fujitsu MB86960A/MB86965A Ethernet cards
fea: DEV DEFEA EISA FDDI adater
fpa: DEC DEFPA PCI FDDI adapter
gp: National Instruments AT-GPIB and AT-GPIB/TNT board
gsc: Genius GS-4500 hand scanner
gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
gusmax: Gravis Ultrasound MAX (currently broken)
gusxvi: Gravis Ultrasound 16-bit PCM
joy: Joystick
labpc: National Instrument's Lab-PC and Lab-PC+
mpu: Roland MPU-401 stand-alone card
mse: Logitech & ATI InPort bus mouse ports
mss: Microsoft Sound System
nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
pas: ProAudioSpectrum PCM and MIDI
pca: PCM audio ("/dev/audio") through your PC speaker
psm: PS/2 mouse port
rc: RISCom/8 multiport card
sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
sbmidi: SoundBlaster 16 MIDI interface
sbxvi: SoundBlaster 16
spigot: Create Labs Video Spigot video-acquisition board
uart: Stand-alone 6850 UART for MIDI
wds: Western Digital WD7000 IDE
--- end of list ---
4. Known Hardware Problems, Q & A:
-- -------------------------------
Q: mcd0 keeps thinking that it has found a device and this stops my Intel
EtherExpress card from working.
A: Use the UserConfig utility (see section 1.0) and disable the probing of
the mcd0 and mcd1 devices. Generally speaking, you should only leave
the devices that you will be using enabled in your kernel.
Q: The system finds my ed network card, but I keep getting device
timeout errors.
A: Your card is probably on a different IRQ from what is specified in the
kernel configuration. The ed driver will no longer use the `soft'
configuration by default (values entered using EZSETUP in DOS), but it
will use the software configuration if you specify `?' in the IRQ field
of your kernel config file. The reason for the change is because the
ed driver used to read and try to use the soft configuration information
even when the card was jumpered to use a hard configuration, and this
caused problems.
Either move the jumper on the card to a hard configuration setting
(altering the kernel settings if necessary), or specify the IRQ as
`-1' in UserConfig or `?' in your kernel config file. This will
tell the kernel to use the soft configuration.
Another possibility is that your card is at IRQ 9, which is shared
by IRQ 2 and frequently a cause of problems (especially when you
have a VGA card using 2! :). You should not use IRQ 2 or 9 if at
all possible.
Q: I go to boot from the hard disk for the first time after installing
FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu
each time but the boot won't go any further.
A: The hard disk geometry was set incorrectly in the Partition editor when
you installed FreeBSD. Go back into the partition editor and specify
the actual geometry of your hard disk. You must reinstall FreeBSD
again from the beginning with the correct geometry.
If you are failing entirely in figuring out the correct geometry for
your machine, here's a tip: Install a small DOS partition at the
beginning of the disk and install FreeBSD after that. The install
program will see the DOS partition and try to infer the correct
geometry from it, which usually works.
Q: I have a Matsushita/Panasonic CD-ROM drive but it isn't recognized
by the system, even if I use UserConfig to change the Port address to
630, which is what my card uses.
A: Not all of the companies that sell the Matsushita/Panasonic CR-562
and CR-563 drives use the same I/O ports and interface that the
matcd driver in FreeBSD expects. The only adapters that are supported
at this time are those that are 100% compatible with the Creative
Labs (SoundBlaster) host interface. See matcd.4 documentation for a
list of host adapters that are known to work.
Q: I'm trying to install from a tape drive but all I get is something like:
st0(aha0:1:0) NOT READY csi 40,0,0,0
on the screen. Help!
A: There's a limitation in the current sysinstall that the tape MUST
be in the drive while sysinstall is started or it won't be detected.
Try again with the tape in the drive the whole time.
Q: I've installed FreeBSD onto my system, but it hangs when booting from
the hard drive with the message: ``Changing root to /dev/sd0a''.
A: This problem may occur in a system with a 3com 3c509 ethernet adaptor.
The ep0 device driver appears to be sensitive to probes for other
devices that also use address 0x300. Boot your FreeBSD system by power
cycling the machine (turn off and on). At the ``Boot:'' prompt specify
the ``-c''. This will invoke UserConfig (see Section 1. above). Use
the ``disable'' command to disable the device probes for all devices
at address 0x300 except the ep0 driver. On exit, your machine should
successfully boot FreeBSD.
Q: My system hangs during boot, right after the "fd0: [my floppy drive]"
line.
A: This is not actually a hang, simply a very LONG "wdc0" probe that
often takes a long time to complete on certain systems (where there
usually _isn't_ a WD controller). Be patient, your system will boot!
To eliminate the problem, boot with the -c flag and eliminate the wdc0
device, or compile a custom kernel.
Q: My sytem can not find an Intel EtherExpress 16 card.
A: You must set your Intel EtherExpress 16 card to be memory mapped at
address 0xD0000, and set the amount of mapped memory to 32K using
the Intel supplied softset.exe program.
[ Please add more hardware tips to this Q&A section! ]

View File

@ -0,0 +1,447 @@
INSTALLATION GUIDE FOR FreeBSD 2.0.5
This manual documents the process of installing FreeBSD on your
machine. Please also see the Hardware Guide for hardware-specific
installation instructions (how to configure your hardware, what sorts
of things to watch out for, etc) before starting a new installation.
Table of Contents:
==================
1.0 DOS User's Q&A section.
1.1 How do I make space for FreeBSD?
1.2 Can I use compressed DOS filesystems from FreeBSD?
1.3 Can I use DOS extended partitions?
1.4 Can I run DOS executables under FreeBSD?
2.0 Preparing for the installation.
2.1 Before installing from CDROM
2.2 Before installing from Floppy
2.3 Before installing from a DOS partition
2.4 Before installing from QIC/SCSI tape
2.5 Before installing over a network
2.5.1 Preparing for NFS Installation
2.5.2 Preparing for FTP Installation
3.0 Installing FreeBSD.
1.0 DOS user's Question and Answer section
=== ======================================
1.1 Help! I have no space! Do I need to delete everything first?
If your machine is already running DOS and has little or no free space
available for FreeBSD's installation, all is not lost! You may find
the "FIPS" utility, provided in the tools/ subdirectory on the FreeBSD
CDROM or on the various FreeBSD ftp sites, to be quite useful.
FIPS allows you to split an existing DOS partition into two pieces,
preserving the original partition and allowing you to install onto the
second free piece. You first "defrag" your DOS partition, using the
DOS 6.xx "DEFRAG" utility or the Norton Disk tools, then run FIPS. It
will prompt you for the rest of the information it needs. Afterwards,
you can reboot and install FreeBSD on the new free slice. See the
Distributions menu for an estimation of how much free space you'll
need for the kind of installation you want.
1.2 Can I use compressed DOS filesystems from FreeBSD?
No. If you are using a utility such as Stacker(tm) or DoubleSpace(tm),
FreeBSD will only be able to use whatever portion of the filesystem
you leave uncompressed. The rest of the filesystem will show up as
one large file (the stacked/dblspaced file!). DO NOT REMOVE THAT
FILE! You will probably regret it greatly!
It is probably better to create another uncompressed DOS primary
partition and use this for communications between DOS and FreeBSD.
1.3 Can I mount my DOS extended partitions?
This feature isn't in FreeBSD 2.0.5 but should be in 2.1. We've laid
all the groundwork for making this happen, now we just need to do the
last 1% of the work involved.
1.4 Can I run DOS binaries under FreeBSD?
Not yet! We'd like to add support for this someday, but are still
lacking anyone to actually do the work. Ongoing work with Linux's
DOSEMU utility may bring this much closer to being a reality sometime
soon. Send mail to hackers@freebsd.org if you're interested in
joining this effort!
However, there is a neat utility called "pcemu" in the ports collection
which emulates an 8088 and enough BIOS services to run DOS text mode
applications. It requires the X Window System (provided as
XFree86 3.1.1u1).
2.0 Preparing for the installation
=== ==============================
2.1 Before installing from CDROM:
If your CDROM is of an unsupported type, such as an IDE CDROM, then
please skip to section 2.3: Before installing from a DOS partition.
There is not a lot of preparatory work that needs to be done to
successfully install from one of Walnut Creek's FreeBSD CDROMs (other
CDROM distributions may work as well, we simply cannot say as we
have no hand or say in their creation). You can either boot into the
CD installation directly from DOS using Walnut Creek's supplied
``install.bat'' batch file or you can make a boot floppy with
the ``makeflp.bat'' command.
For the easiest interface of all (from DOS), type "go". This
will bring up a DOS menu utility that leads you through all
the available options.
If you're creating the boot floppy from a UNIX machine, you may find
that ``dd if=floppies/boot.flp of=/dev/rfd0'' or
``dd if=floppies/boot.flp of=/dev/floppy'' works well, depending on
your hardware and operating system environment.
Once you've booted from DOS or floppy, you should then be able to select
CDROM as the media type in the Media menu and load the entire
distribution from CDROM. No other types of installation media should
be required.
After your system is fully installed and you have rebooted from the
hard disk, you should find the CD mounted on the directory /cdrom. A
utility called `lndir' comes with the XFree86 distribution which you
may also find useful: It allows you to create "link tree" directories
to things on Read-Only media like CDROM. One example might be
something like this:
mkdir /usr/ports
lndir /cdrom/ports /usr/ports
Which would allow you to then "cd /usr/ports; make" and get all the
sources from the CD, but yet create all the intermediate files in
/usr/ports, which is presumably on a more writable media! :-)
SPECIAL NOTE: Before invoking the installation, be sure that the
CDROM is in the drive so that the "probe" can find it!
This is also true if you wish the CDROM to be added to the default
system configuration automatically during the install (whether or
not you actually use it as the installation media). This will be
fixed for 2.1, but for now this simple work-around will ensure that
your CDROM is detected properly.
Finally, if you would like people to be able to FTP install
FreeBSD directly from the CDROM in your machine, you'll find
it quite easy. After the machine is fully installed, you simply
need to add the following line to the password file (using
the vipw command):
ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
No further work is necessary. The other installers will now be able
to chose a Media type of FTP and type in: ftp://<your machine>
after picking "Other" in the ftp sites menu!
2.2 Before installing from Floppy:
If you must install from floppy disks, either due to unsupported
hardware or just because you enjoy doing things the hard way, you must
first prepare some floppies for the install.
The first floppy you'll need is ``floppies/root.flp'', which is
somewhat special in that it's not a DOS filesystem floppy at all, but
rather an "image" floppy (it's actually a gzip'd cpio file). You can
use the rawrite.exe program to do this under DOS, or ``dd'' to do it
on a UNIX Workstation (see notes in section 2.1 concerning the
``floppies/boot.flp'' image). Once this floppy is made, go on
to make the distribution set floppies:
You will need, at minimum, as many 1.44MB or 1.2MB floppies as it takes
to hold all files in the bin (binary distribution) directory. THESE
floppies *must* be formatted using MS-DOS, using the FORMAT command in
MS-DOS or the File Manager format command in Microsoft Windows(tm).
Don't trust Factory Preformatted floppies! Format them again yourself,
just to make sure!
Many problems reported by our users in the past have resulted from the
use of improperly formatted media, so we simply take special care to
mention it here!
After you've DOS formatted the floppies, you'll need to copy the files
onto them. The distribution files are split into chunks conveniently
sized so that 5 of them will fit on a conventional 1.44MB floppy. Go
through all your floppies, packing as many files as will fit on each
one, until you've got all the distributions you want packed up in this
fashion. Each distribution should go into a subdirectory on the
floppy, e.g.: a:\bin\bin.aa, a:\bin\bin.ab, ...
Once you come to the Media screen of the install, select
"Floppy" and you'll be prompted for the rest.
2.3 Before installing from a DOS partition:
To prepare for installation from an MS-DOS partition you should
simply copy the files from the distribution into a directory called
"FREEBSD". For example, to do a minimal installation of FreeBSD from
DOS using files copied from the CDROM, you might do something like
this:
C> MD C:\FREEBSD
C> XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN
C> XCOPY /S E:\FLOPPIES C:\FREEBSD\FLOPPIES
Asssuming that `C:' was where you had free space and `E:' was where
your CD was mounted. Note that you need the FLOPPIES directory
because the `root.flp' image is automatically looked for there when
you're doing a DOS installation.
For as many `DISTS' as you wish to install from DOS (and you have free
space for), install each one in a directory under `C:\FREEBSD' - the
BIN dist is only the minimal requirement.
2.4 Before installing from QIC/SCSI Tape:
Installing from tape is probably the easiest method, short of an
on-line install using FTP or a CDROM install. The installation program
expects the files to be simply tar'ed onto the tape, so after getting
all of the files for distribution you're interested in, simply tar
them onto the tape with a command like:
cd /freebsd/distdir
tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
Make sure that the `floppies/' directory is one of the "dists" given
above, since the installation will look for `floppies/root.flp' on
the tape.
When you go to do the installation, you should also make sure that you
leave enough room in some temporary directory (which you'll be allowed
to choose) to accommodate the FULL contents of the tape you've
created. Due to the non-random access nature of tapes, this method of
installation requires quite a bit of temporary storage! You should
expect to require as much temporary storage as you have stuff written
on tape.
SPECIAL NOTE: When going to do the installation, the tape must be in
the drive *before* booting from the boot floppy. The installation
"probe" may otherwise fail to find it.
2.5 Before installing over a network:
You can do network installations over 3 types of communications links:
Serial port: SLIP / PPP
Parallel port: PLIP (laplink cable)
Ethernet: A standard ethernet controller (includes some PCMCIA).
SLIP support is rather primitive, and limited primarily to hard-wired
links, such as a serial cable running between a laptop computer and
another computer. The link should be hard-wired as the SLIP
installation doesn't currently offer a dialing capability; that
facility is provided with the PPP utility, which should be used in
preference to SLIP whenever possible.
If you're using a modem, then PPP is almost certainly your only
choice. Make sure that you have your service provider's information
handy as you'll need to know it fairly soon in the installation
process. You will need to know, at the minimum, your service
provider's IP address and possibly your own (though you can also leave
it blank and allow PPP to negotiate it with your ISP). You also need
to know how to use the various "AT commands" to dial the ISP with your
particular modem as the PPP dialer provides only a very simple
terminal emulator.
If a hard-wired connection to another FreeBSD (2.0R or later) machine
is available, you might also consider installing over a "laplink"
parallel port cable. The data rate over the parallel port is much
higher than what is typically possible over a serial line (up to
50k/sec), thus resulting in a quicker installation.
Finally, for the fastest possible network installation, an ethernet
adaptor is always a good choice! FreeBSD supports most common PC
ethernet cards, a table of supported cards (and their required
settings) is provided as part of the FreeBSD Hardware Guide - see the
Documentation menu on the boot floppy. If you are using one of the
supported PCMCIA ethernet cards, also be sure that it's plugged in
_before_ the laptop is powered on! FreeBSD does not, unfortunately,
currently support "hot insertion" of PCMCIA cards.
You will also need to know your IP address on the network, the
"netmask" value for your address class, and the name of your machine.
Your system administrator can tell you which values to use for your
particular network setup. If you will be referring to other hosts by
name rather than IP address, you'll also need a name server and
possibly the address of a gateway (if you're using PPP, it's your
provider's IP address) to use in talking to it. If you do not know
the answers to all or most of these questions, then you should
really probably talk to your system administrator _first_ before
trying this type of installation!
Once you have a network link of some sort working, the installation
can continue over NFS or FTP.
2.5.1 Preparing for NFS installation:
NFS installation is fairly straight-forward: Simply copy the
FreeBSD distribution files you want onto a server somewhere
and then point the NFS media selection at it.
If this server supports only "privileged port" access (as is
generally the default for Sun workstations), you will need to set
this option in the Options menu before installation can proceed.
If you have a poor quality ethernet card which suffers from very
slow transfer rates, you may also wish to toggle the appropriate
Options flag.
In order for NFS installation to work, the server must support
"subdir mounts"; e.g., if your FreeBSD 2.0.5 distribution directory
lives on: ziggy:/usr/archive/stuff/FreeBSD
Then ziggy will have to allow the direct mounting of
/usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff.
In FreeBSD's /etc/exports file, this is controlled by the
``-alldirs'' option. Other NFS servers may have different
conventions. If you are getting `Permission Denied' messages
from the server then it's likely that you don't have this
enabled properly!
2.5.2 Preparing for FTP Installation
FTP installation may be done from any mirror site containing a
reasonably up-to-date version of FreeBSD 2.0.5. A full menu of
reasonable choices from almost anywhere in the world is provided
by the FTP site menu.
If you are installing from some other FTP site not listed in this
menu, or you are having troubles getting your name server configured
properly, you can also specify your own URL by selecting the ``Other''
choice in that menu. A URL can also be a direct IP address, so
the following would work in the absence of a name server:
ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
[Substitute "ALPHA" for "RELEASE" during the ALPHA test period!]
If you are installing through a firewall then you should probably
select ``Passive mode'' ftp, which is the default. If you are
talking to a server which does not support passive mode for some
reason, see the Options menu to select Active mode transfers.
3. Installing FreeBSD
-- ------------------
Once you've taken note of the appropriate preinstallation steps, you
should be able to install FreeBSD without any further trouble.
Should this not be true, then you may wish to go back and re-read the
relevant preparation section (section 2.x) for the installation media
type you're trying to use - perhaps there's a helpful hint there that
you missed the first time? If you're having hardware trouble, or
FreeBSD refuses to boot at all, read the Hardware Guide provided on
the boot floppy for a list of possible solutions.
The FreeBSD boot floppy contains all the on-line documentation you
should need to be able to navigate through an installation and if it
doesn't then I'd like to know what you found most confusing! It is
the objective of the FreeBSD installation program (sysinstall) to be
self-documenting enough that painful "step-by-step" guides are no
longer necessary. It may take us a little while to reach that
objective, but that's the objective!
Meanwhile, you may also find the following "typical installation sequence"
to be helpful:
o Boot the boot floppy. After a boot sequence which can take
anywhere from from 30 seconds to 3 minutes, depending on your
hardware, you should be presented with a menu of initial
choices. If the floppy doesn't boot at all, or the boot
hangs at some stage, go read the Q&A section of the Hardware
Guide for possible causes.
o Press F1. You should see some basic usage instructions on
the menu system and general navigation. If you haven't used this
menu system before then PLEASE read this thoroughly!
o If English is not your native language, you may wish to proceed
directly to the Language option and set your preferred language.
This will bring up some of the documentation in that language
instead of english.
o Select the Options item and set any special preferences you
may have.
o Select Proceed, bringing you to the Installation Menu.
Installation Menu:
o You can do anything you like in this menu without altering
your system _except_ for "Commit", which will perform any
requests to alter your system you may have made.
If you're confused at any point, the F1 key usually pulls
up the right information for the screen you're in.
o The first step is generally `Partition', which allows
you to chose how your drives will be used for FreeBSD.
o Next, with the `Label' editor, you can specify how the space
in any allocated FreeBSD partitions should be used by FreeBSD,
or where to mount a non-FreeBSD partition (such as DOS).
o Next, the `Distributions' menu allows you to specify which
parts of FreeBSD you wish to load. A good choice is
"User" for a small system or "Developer" for someone
wanting a bit more out of FreeBSD. If none of the existing
collections sound applicable, select Custom.
o Next, the `Media' menu allows you to specify what kind of
media you wish to install from. If a desired media choice is
found and configured automatically then this menu will simply
return, otherwise you'll be asked for additional details on
the media device type.
o Finally, the Commit command will actually perform all the
actions at once (nothing has been written to your disk
so far, nor will it until you give the final confirmation).
All new or changed partition information will be written
out, file systems will be created and/or non-destructively
labelled (depending on how you set their newfs flags in the
Label editor) and all selected distributions will be
extracted.
o The Configure menu choice allows you to furthur configure your
FreeBSD installation by giving you menu-driven access to
various system defaults. Some items, like networking, may
be especially important if you did a CDROM/Tape/Floppy
installation and have not yet configured your network
interfaces (assuming you have some). Properly configuring
your network here will allow FreeBSD to come up on the network
when you first reboot from the hard disk.
o Exit returns you to the top menu.
At this point, you're generally done with the sysinstall utility and
can select the final `Quit'. If you're running it as an installer
(e.g., before the system is all the way up) then the system will now
reboot. If you selected the boot manager option, you will see a small
boot menu with an `F?' prompt. Press the function key for BSD (it
will be shown) and you should boot up into FreeBSD off the hard disk.
If this fails to happen for some reason, see the Q & A section
of the Hardware Guide for possible clues!
Jordan
---- End of Installation Guide ---

View File

@ -0,0 +1,29 @@
You can install from the following types of media:
CDROM - requires one of the following supported CDROM drives:
Sony CDU 31/33A
Matushita/Panasonic "Sound Blaster" CDROM.
Mitsumi FX-001{A-D} (older non-IDE drives).
SCSI - Any standard SCSI CDROM drive hooked to
a supported controller (see Hardware Guide).
DOS - A DOS primary partition with the required FreeBSD
distribution files copied onto it (e.g. C:\FREEBSD\)
FS - Assuming a disk or partition with an existing
FreeBSD file system and distribution set on it,
get the distribution files from there.
Floppy - Get distribution files from one or more DOS formatted
floppies.
FTP - Get the distribution files from an anonymous ftp server
(you will be presented with a list).
NFS - Get the distribution files from an NFS server somewhere
(make sure that permissions on the server allow this!)
Tape - Extract distribution files from tape into a temporary
directory and install from there.

View File

@ -0,0 +1,54 @@
You can do network installations over 3 types of communications links:
Serial port: SLIP / PPP
Parallel port: PLIP (laplink cable)
Ethernet: A standard ethernet controller (includes some PCMCIA).
SLIP support is rather primitive and limited primarily to hard-wired
links, such as a serial cable running between a laptop computer and
another PC. The link must be hard-wired as the SLIP installation
doesn't currently offer a dialing capability; that facility is provided
with the PPP utility, which should be used in preference to SLIP
whenever possible. When you choose a serial port device, you'll
be given the option later to edit the slattach command before it's
run on the serial line. It is expected that you'll run slattach
(or some equivalent) on the other end of the link at this time and
bring up the line. FreeBSD will then install itself over the link
at speeds of up to 115.2K/baud (the recommended speed for a hardwired
cable).
If you're using a modem then PPP is almost certainly your only
choice. Make sure that you have your service provider's information
handy as you'll need to know it fairly early in the installation
process. You will need to know, at the minimum, your service
provider's IP address and possibly your own (though you can also leave
it blank and allow PPP to negotiate it with your ISP). You will also
need to know how to use the various "AT commands" to dial the ISP with
your particular brand of modem as the PPP dialer provides only a very
simple terminal emulator and has no "modem capabilities database".
If a hard-wired connection to another FreeBSD (2.0R or later) machine
is available, you might also consider installing over a "laplink"
parallel port cable. The data rate over the parallel port is much
higher than what is typically possible over a serial line with
speeds of up to 50k/sec.
Finally, for the fastest possible network installation, an ethernet
adaptor is always a good choice! FreeBSD supports most common PC
ethernet cards, a table of which is provided in the FreeBSD
Hardware Guide (see the Documentation menu on the boot floppy).
If you are using one of the supported PCMCIA ethernet cards, also be
sure that it's plugged in _before_ the laptop is powered on! FreeBSD
does not, unfortunately, currently support "hot insertion" of PCMCIA
cards.
You will also need to know your IP address on the network, the "netmask"
value for your address class, and the name of your machine.
Your system administrator can tell you which values to use for your
particular network setup. If you will be referring to other hosts by
name rather than IP address, you'll also need a name server and
possibly the address of a gateway (if you're using PPP, it's your
provider's IP address) to use in talking to it. If you do not know
the answers to all or most of these questions, then you should
really probably talk to your system administrator _first_ before
trying this type of installation!

View File

@ -0,0 +1,95 @@
The following options may be set from this screen:
NFS Secure: NFS server talks only on a secure port
This is most commonly used when talking to Sun workstations, which
will not talk NFS over "non priviledged" ports.
NFS Slow: User is using a slow PC or ethernet card
Use this option if you have a slow PC (386) or an ethernet card
with poor performance being "fed" by NFS on a higher-performance
workstation. This will throttle the workstation back to prevent
the PC from becoming swamped with data.
FTP Abort: On transfer failure, abort
This is pretty self-explanatory. If you're transfering from a
host that drops the connection or cannot provide a file, abort
the installation of that piece.
FTP Reselect: On transfer failure, ask for another host
This is more useful to someone doing an interactive installation.
If the current host stops working, ask for a new ftp server to
resume the installation from. The install will attempt to pick
up from where it left off on the other server, if at all possible.
FTP Active: Use "active mode" for standard FTP
For all FTP transfers, use "Active" mode. This will not work
through firewalls, but will often work with older ftp servers
that do not support passive mode. If your connection hangs
with passive mode (the default), try active!
FTP Passive: Use "passive mode" for firewalled FTP
For all FTP transfers, use "Passive" mode. This allows the user
to pass through firewalls that do not allow incoming connections
on random port addresses.
NOTE: ACTIVE AND PASSIVE MODES ARE NOT THE SAME AS A `PROXY'
CONNECTION, WHERE A PROXY FTP SERVER IS LISTENING ON A DIFFERENT
PORT!
In such situations, you should specify the URL as something like:
ftp://foo.bar.com:1234/pub/FreeBSD
Where "1234" is the port number of the proxy ftp server.
Debugging: Turn on the extra debugging flag
This turns on a lot of extra noise over on the second screen
(ALT-F2 to see it, ALT-F1 to switch back). If your installation
should fail for any reason, PLEASE turn this flag on when
attempting to reproduce the problem. It will provide a lot of
extra debugging at the failure point and may be very helpful to
the developers in tracking such problems down!
Yes To All: Assume "Yes" answers to all non-critical dialogs
This flag should be used with caution. It will essentially
decide NOT to ask the user about any "boundry" conditions that
might not constitute actual errors but may be warnings indicative
of other problems.
FTP userpass: Specify username and password instead of anonymous.
By default, the installation attempts to log in as the
anonymous user. If you wish to log in as someone else,
specify the username and password with this option.
Clear: Clear All Option Flags
Reset all option flags back to their default values.
----
Some of these items, like "FTP Active" or "FTP Passive", are actually
mutually-exclusive even though you can turn all of them on or off at
once. This is a limitation of the menuing system, and is compensated
for by checks that ensure that the various flags are not in conflict.
If you re-enter the Options menu again after leaving it, you'll see
the settings it's actually using after checking for any possible
conflicts.

View File

@ -0,0 +1,122 @@
This is the FreeBSD DiskLabel Editor.
You should use this editor to create at least the following
filesystems:
Name Purpose Min Size? Optional?
---- ------- --------- ---------
/ Root filesystem 20MB No
swap Swap space 2 * MEM No
/usr System & user files 80MB or more Yes
Note: If you do not create a /usr filesystem then your / filesystem
will need to be bigger - at least 100MB. This is not recommended as
any media errors that may occur during disk I/O to user files will
corrupt the filesystem containing vital system files as well. It is
for this reason that / is generally kept on its own filesystem, where
it's basically considered "read only" by the system and hence a good
deal safer.
Swap space is a little tricker, and the rule of "2 * MEM" is simply a
best-guess approximation and not necessarily accurate for your
intended usage of the system. If you intend to use the system heavily
in a server or multi-user application, you may be well advised to
increase this size. You may also create swap space on multiple drives
for a larger "total" swap and this is, in fact, recommended if you
have multiple, fast drives for which such load-balancing can only help
overall I/O performance.
The /usr filesystem should be sized according to what kind of
distributions you're trying to load and how many packages you intend
to install in locations like /usr/local. You can also make /usr/local
a separate filesystem if you don't want to risk filling up your /usr
by mistake.
Another useful filesystem to create is /var, which contains mail, news
printer spool files and other temporary items. It is a popular
candidate for a separate paritition and should be sized according to
your estimates of the amount of mail, news or spooled print jobs that
may be stored there.
WARNING: If you do not create a separate filesystem for /var, space
for such files will be allocated out of the root (/) filesystem
instead. You may therefore wish to make the / partition bigger if you
expect a lot of mail or news and do not want to make /var its own
partition.
If you're new to this installation, you should also first understand
how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
works. It's not very hard to grasp. A "fully qualified slice name",
that is the name of the file we open in /dev to talk to the slice, is
optionally broken into 3 parts:
First you have the disk name. Assume we have two SCSI
drives in our system, which gives us `sd0' and `sd1'.
Next you have the "Slice" (or "FDISK Partition") number,
as seen in the Partition Editor. Assume that our sd0 contains
two slices, a FreeBSD slice and a DOS slice. This gives us
sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
to FreeBSD, so we have only one slice there: sd1s1.
Next, if a slice is a FreeBSD slice, you have a number of
(confusingly named) "partitions" you can put inside of it.
These FreeBSD partitions are where various filesystems or swap
areas live, and using our hypothetical two-SCSI-disk machine
again, we might have something like the following layout on sd0:
Name Mountpoint
---- ----------
sd0s1a /
sd0s1b <swap space>
sd0s1e /usr
Because of historical convention, there is also a short-cut,
or "compatibility slice", that is maintained for easy access
to the first FreeBSD slice on a disk for those programs which
still don't know how to deal with the new slice scheme.
The compatibility slice names for our filesystem above would
look like:
Name Mountpoint
---- ----------
sd0a /
sd0b <swap space>
sd0e /usr
FreeBSD automatically maps the compatibility slice to the first
FreeBSD slice it finds (in this case, sd0s1). You may have multiple
FreeBSD slices on a drive, but only the first one may be the
compatibility slice!
The compatibility slice will eventually be phased out, but
it is still important right now for several reasons:
1. Some programs, as mentioned before, still don't work
with the slice paradigm and need time to catch up.
2. The FreeBSD boot blocks are unable to look for
a root file system in anything but a compatibility
slice right now. This means that our root will always
show up on "sd0a" in the above scenario, even though
it really lives over on sd0s1a and would otherwise be
referred to by its full slice name.
Once you understand all this, then the label editor becomes fairly
simple. You're either carving up the FreeBSD slices displayed at the
top of the screen into smaller pieces (displayed in the middle of the
screen) and then putting FreeBSD file systems on them, Or you're just
mounting existing partitions/slices into your filesystem hierarchy;
this editor lets you do both. Since a DOS partition is also just
another slice as far as FreeBSD is concerned, you can mount one into
in your filesystem hierarchy just as easily with this editor. For
FreeBSD partitions you can also toggle the "newfs" state so that
the partitions are either (re)created from scratch or simply checked
and mounted (the contents are preserved).
When you're done, type `Q' to exit.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the FDISK Partition Editor.

View File

@ -0,0 +1,104 @@
-----------------------------------------
FreeBSD 2.0.5 --- RELEASE Version , ,
----------------------------------------- /( )`
\ \___ / |
Welcome to the 2.0.5 release of FreeBSD! 2.0.5 is /- _ `-/ '
an interim release of FreeBSD, filling a critical (/\/ \ \ /\
gap during the period between 2.0R (which was / / | ` \
released in Nov 94) and 2.1R, which will be O O ) / |
released in late July of '95. FreeBSD 2.0.5 `-^--'`< '
contains many substantial improvements from 2.0R, (_.) _ ) /
not least of which is greater stability (by `.___/` /
a considerable margin), dozens of new `-----' /
features and a greatly enhanced <----. __ / __ \
installation program. See the release <----|====O)))==) \) /====
notes for more details on what's new in <----' `--' `.__,' \
FreeBSD 2.0.5! | |
\ / /\
______( (_ / \______/
,' ,-----' |
`--{__________)
What is FreeBSD? FreeBSD is an operating system based on 4.4 BSD Lite
for Intel, AMD, Cyrix or NexGen "x86" based PC hardware. It works
with a very wide variety of PC peripherals and configurations and can
be used for everything from software development to Internet Service
Provision; the busiest site on the Internet, ftp.cdrom.com, is a
FreeBSD machine!
This release of FreeBSD contains everything you need to run such a
system, plus full source code for everything. With the source
distribution installed you can literally recompile the entire system
from scratch with one command, making it ideal for students,
researchers or folks who simply want to see how it all works.
A large collection of 3rd party ported software (the "ports
collection") is also provided to make it easier for you to obtain and
install all your favorite traditional UNIX utilities for FreeBSD.
Over 270 ports, from editors to programming languages to graphical
applications, make FreeBSD a powerful and comprehensive operating
environment that rivals that of many large workstations for general utility
and power.
For more documentation on this system, it is recommended that you
purchase the 4.4BSD Document Set from O'Reilly Associates and the
USENIX Association, ISBN 1-56592-082-1. We have no connection with
O'Reilly, we're just satisfied customers!
You may also wish to read the HARDWARE GUIDE *before* proceeding any
further with the installation. Configuring PC hardware for anything
other than DOS/Windows (which don't actually make very significant
demands on the hardware) is actually quite a bit harder than it looks,
and if you think you understand PCs then you clearly haven't been
using them for long enough! :) This guide will give you some tips on
how to configure your hardware and what symptoms to watch for in case
of trouble. This guide is available in the Documentation menu of the
FreeBSD boot floppy.
DISCLAIMER: While FreeBSD does its best to safeguard against accidental
loss of data, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
with this installation! Please do not proceed to the final FreeBSD
installation menu unless you've adequately backed up any important
data first! We really mean it!
Technical comments on this release should be sent (in English!) to:
hackers@FreeBSD.org
Bug reports should be sent using the `send-pr' command, if you were
able to get the system installed, otherwise to:
bugs@FreeBSD.org
Please be sure to indicate WHICH VERSION of FreeBSD you're running in
any bug reports!
General questions should be sent to:
questions@FreeBSD.org
Please have patience if your questions are not answered right away -
this is an especially busy time for us, and our volunteer resources
are often strained to the limit! Bug reports submitted with the
send-pr command are logged and tracked in our bugs database, and
you'll be kept informed of any changes in status during the life of
the bug (or feature request).
Our WEB site, http://www.freebsd.org, is also a very good source for
updated information and provides a number of advanced documentation
facilities. You may use the BSDI version of Netscape for browsing the
World Wide Web directly from FreeBSD.
You may also wish to look in /usr/share/FAQ and /usr/share/doc for
further information on the system.
Thanks for reading all of this, and we sincerely hope you enjoy this
release of FreeBSD!
Jordan Hubbard,
for The FreeBSD Project

View File

@ -0,0 +1,747 @@
RELEASE NOTES
FreeBSD
Release 2.0.5
1. Technical overview
---------------------
FreeBSD is a freely available, full source 4.4 BSD Lite based release
for Intel i386/i486/Pentium (or compatible) based PC's. It is based
primarily on software from U.C. Berkeley's CSRG group, with some
enhancements from NetBSD, 386BSD, and the Free Software Foundation.
Since our release of FreeBSD 2.0 some 8 months ago, the performance,
feature set, and stability of FreeBSD has improved dramatically. The
largest change is a revamped VM system with a merged VM/file buffer
cache that not only increases performance, but reduces FreeBSD's
memory footprint, making a 4MB configuration a more acceptable
minimum. Other enhancements include full NIS client and server
support, transaction TCP support, dial-on-demand PPP, an improved SCSI
subsystem, early ISDN support, support for FDDI and Fast Ethernet
(100Mbit) adapters, improved support for the Adaptec 2940 (WIDE and
narrow) and many hundreds of bug fixes.
We've also taken the comments and suggestions of many of our users to
heart and have attempted to provide what we hope is a more sane and
easily understood installation process. Your feedback on this
(constantly evolving) process is especially welcome!
In addition to the base distributions, FreeBSD offers a new ported
software collection with some 270 commonly sought-after programs. The
list of ports ranges from http (WWW) servers, to games, languages,
editors and almost everything in between. The entire ports collection
requires only 10MB of storage, all ports being expressed as "deltas"
to their original sources. This makes it much easier for us to update
ports, and greatly reduces the disk space demands made by the older
1.0 ports collection. To compile a port, you simply change to the
directory of the program you wish to install, type make and let the
system do the rest. The full original distribution for each port you
build is retrieved dynamically off of CDROM or a local ftp site, so
you need only enough disk space to build the ports you want. (Almost)
every port is also provided as a pre-compiled "package" which can be
installed with a simple command (pkg_add) by those who do not wish to
compile their own ports from source. See the file:
/usr/share/FAQ/Text/ports.FAQ
for a more complete description of the ports collection.
Since our first release of FreeBSD 1.0 nearly two years ago, FreeBSD
has changed almost entirely. A new port from the Berkeley 4.4 code
base was done, which brought the legal status of the system out of the
shadows with the blessing of Novell (the new owners of USL and UNIX). The
port to 4.4 has also brought in a host of new features, filesystems
and enhanced driver support. With our new unencumbered code base, we
have every reason to hope that we'll be able to release quality
operating systems without further legal encumbrance for some time to
come!
FreeBSD 2.0.5 represents the culmination of 2 years of work and many
thousands of man hours put in by an international development team.
We hope you enjoy it!
A number of additional documents which you may find very helpful in
the process of installing and using FreeBSD may also be found in
the "FAQ" directory, either under /usr/share/FAQ on an installed
system or at the top level of the CDROM or FTP distribution from
where you're reading this file. Please consult FAQ/Text/ROADMAP
for a brief description of the resources provided by the FAQ directory.
For a list of contributors and a general project description, please see
the file "CONTRIB.FreeBSD" which should be bundled with your binary
distribution.
Also see the "REGISTER.FreeBSD" file for information on registering
with the "Free BSD user counter". This counter is for ALL freely
available variants of BSD, not just FreeBSD, and we urge you to register
yourself with it.
The core of FreeBSD does not contain DES code which would inhibit its
being exported outside the United States. There is an add-on package
to the core distribution, for use only in the United States, that
contains the programs that normally use DES. The auxiliary packages
provided separately can be used by anyone. A freely (from outside the
U.S.) exportable European distribution of DES for our non-U.S. users also
exists and is described in the FreeBSD FAQ.
If password security for FreeBSD is all you need, and you have no
requirement for copying encrypted passwords from different hosts
(Suns, DEC machines, etc) into FreeBSD password entries, then
FreeBSD's MD5 based security may be all you require! We feel that our
default security model is more than a match for DES, and without any
messy export issues to deal with. If you're outside (or even inside)
the U.S., give it a try!
1.1 What's new in 2.0.5?
------------------------
The following features were added or substantially improved between
the release of 2.0 and this 2.0.5 release. In order to facilitate
better communication, the person, or persons, responsible for each
enhancement is noted. Any questions regarding the new functionality
should be directed to them first.
KERNEL:
Merged VM-File Buffer Cache
---------------------------
A merged VM/buffer cache design greatly enhances overall system
performance and makes it possible to do a number of more optimal
memory allocation strategies that were not possible before.
Owner: David Greenman (davidg@FreeBSD.org) and
John Dyson (dyson@implode.root.com)
Network PCB hash optimization
-----------------------------
For systems with a great number of active TCP connections (WEB and ftp
servers, for example), this greatly speeds up the lookup time required
to match an incoming packet up to its associated connection.
Owner: David Greenman (davidg@FreeBSD.org)
Name cache optimization
-----------------------
The name-cache would cache all files of the same name to the same bucket,
which would put for instance all ".." entries in the same bucket. We added
the parent directory version to frustrate the hash, and improved the
management of the cache in various other ways while we were at it.
Owner: Poul-Henning Kamp (phk@FreeBSD.org)
David Greenman (davidg@FreeBSD.org)
Less restrictive swap-spaces
----------------------------
The need to compile the names of the swap devices into the kernel has been
removed. Now swapon will accept any block devices, up to the maximum
number of swap devices configured in the kernel.
Owner: Poul-Henning Kamp (phk@FreeBSD.org)
David Greenman (davidg@FreeBSD.org)
Hard Wired SCSI Devices
-----------------------
Prior to 2.0.5, FreeBSD performed dynamic assignment of unit numbers
to SCSI devices as they were probed, allowing a SCSI device failure to
possibly change unit number assignment and prevent filesystems on
still functioning disks from mounting. Hard wiring allows static
allocation of unit numbers (and hence device names) to scsi devices
based on SCSI ID and bus. SCSI configuration occurs in the kernel
config file. Samples of the configuration syntax can be found in the
scsi(4) man page or the LINT kernel config file.
Owner: Peter Dufault (dufault@hda.com)
Sources involved: sys/scsi/* usr.sbin/config/*
Slice Support
-------------
FreeBSD now supports a "slice" abstraction which makes it more
completely interoperable with other operating system partitions. This
support will allow FreeBSD to inhabit DOS extended partitions.
Owner: Bruce Evans (bde@FreeBSD.org)
Sources involved: sys/disklabel.h sys/diskslice.h sys/dkbad.h
kern/subr_diskslice.c kern/subr_dkbad.c
i386/isa/diskslice_machdep.c
i386/isa/wd.c scsi/sd.c dev/vn/vn.c
Support for Ontrack Disk Manager Version 6.0
--------------------------------------------
Support has been added for disks which use Ontrack Disk Manager. The
fdisk program does NOT know about it however, so make all changes
using the install program on the boot.flp or the Ontrack Disk Manager
tool under DOS.
Owner: Poul-Henning Kamp (phk@FreeBSD.org)
Bad144 is back and working
--------------------------
Bad144 works again, though the semantics are slightly different than
before in that the bad-spots are kept relative to the slice rather
than absolute on the disk.
Owner: Bruce Evans (bde@FreeBSD.org)
Poul-Henning Kamp (phk@FreeBSD.org)
NEW DEVICE SUPPORT:
SCSI and CDROM Devices
Matsushita/Panasonic (Creative) CD-ROM driver
---------------------------------------------
The Matsushita/Panasonic CR-562 and CR-563 drives are now supported
when connected to a Sound Blaster or 100% compatible host adapter. Up
to four host adapters are supported for a total of 16 CD-ROM drives.
The audio functions are supported, along with access to the raw (2352 byte)
data frames of any compact disc. Audio discs may be played using Karoke
variable speed functions.
Owner: Frank Durda IV bsdmail@nemesis.lonestar.org
Sources involved: isa/matcd
Adaptec 2742/2842/2940 SCSI driver
----------------------------------
The original 274x/284x driver has evolved considerably since the 2.0
release. We now offer full support for the 2940 series as well as the
Wide models of these cards. The arbitration bug (as well as many
others) that caused the driver problems with fast devices has been
corrected and there is even experimental tagged queuing support
(kernel option "AHC_TAGENABLE"). John Aycock has also released the
sequencer code under a "Berkeley style" copyright making the driver
entirely clean of the GPL.
Owner: Justin Gibbs (gibbs@FreeBSD.org)
Sources involved: isa/aic7770.c pci/aic7870.c i386/scsi/*
sys/dev/aic7xxx/*
NCR5380/NCR53400 SCSI ("ProAudio Spectrum") driver
--------------------------------------------------
Owner: core
Submitted by: Serge Vakulenko (vak@cronyx.ru)
Sources involved: isa/ncr5380.c
Sony CDROM driver
-----------------
Owner: core
Submitted by: Mikael Hybsch (micke@dynas.se)
Sources involved: isa/scd.c
Serial Devices
SDL Communications Riscom/8 Serial Board Driver
-----------------------------------------------
Owner: Andrey Chernov (ache@FreeBSD.org)
Sources involved: isa/rc.c isa/rcreg.h
Cyclades Cyclom-y Serial Board Driver
-------------------------------------
Owner: Bruce Evans (bde@FreeBSD.org)
Submitted by: Andrew Werple (andrew@werple.apana.org.au) and
Heikki Suonsivu (hsu@cs.hut.fi)
Obtained from: NetBSD
Sources involved: isa/cy.c
Cronyx/Sigma sync/async serial driver
-------------------------------------
Owner: core
Submitted by: Serge Vakulenko
Sources involved: isa/cronyx.c
Networking
Diskless booting
----------------
Diskless booting in 2.0.5 is much improved. The boot-program is in
src/sys/i386/boot/netboot, and can be run from an MSDOS system or
burned into an EPROM. Local swapping is also possible. WD, SMC, 3COM
and Novell ethernet cards are currently supported.
DEC DC21140 Fast Ethernet driver
--------------------------------
This driver supports any of the numerous NICs using the DC21140 chipset
including the 100Mb DEC DE-500-XA and SMC 9332.
Owner: core
Submitted by: Matt Thomas (thomas@lkg.dec.com)
Sources involved: pci/if_de.c pci/dc21040.h
DEC FDDI (DEFPA/DEFEA) driver
-----------------------------
Owner: core
Submitted by: Matt Thomas (thomas@lkg.dec.com)
Sources involved: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
3Com 3c505 (Etherlink/+) NIC driver
-----------------------------------
Owner: core
Submitted by: Dean Huxley (dean@fsa.ca)
Obtained from: NetBSD
Sources involved: isa/if_eg.c
Fujitsu MB86960A family of NICs driver
-------------------------------------
Owner: core
Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp)
Sources involved: isa/if_fe.c
Intel EtherExpress driver
-------------------------
Owner: Rodney W. Grimes (rgrimes@FreeBSD.org)
Sources involved: isa/if_ix.c isa/if_ixreg.h
3Com 3c589 driver
-----------------
Owner: core
Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
Seiji Murata (seiji@mt.cs.keio.ac.jp) and
Noriyuki Takahashi (hor@aecl.ntt.jp)
Sources involved: isa/if_zp.c
IBM Credit Card Adapter driver
------------------------------
Owner: core
Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
Sources involved: isa/pcic.c isa/pcic.h
EDSS1 and 1TR6 ISDN interface driver
------------------------------------
Owner: core
Submitted by: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
Juergen Krause (jkr@saarlink.de)
Sources involved: gnu/isdn/*
Miscellaneous Drivers
Joystick driver
---------------
Owner: Jean-Marc Zucconi (jmz@FreeBSD.org)
Sources involved: isa/joy.c
National Instruments "LabPC" driver
-----------------------------------
Owner: Peter Dufault (dufault@hda.com)
Sources involved: isa/labpc.c
WD7000 driver
-------------
Owner: Olof Johansson (offe@ludd.luth.se)
Pcvt Console driver
-------------------
Owner: Joerg Wunsch (joerg@FreeBSD.org)
Submitted by: Hellmuth Michaelis (hm@altona.hamburg.com)
Sources involved: isa/pcvt/* usr.sbin/pcvt/*
BSD-audio emulator for VAT driver
---------------------------------
Owner: Amancio Hasty (ahasty@FreeBSD.org) and
Paul Traina (pst@FreeBSD.org)
Sources involved: isa/sound/vat_audio.c isa/sound/vat_audioio.h
National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver
--------------------------------------------------------
Owner: core
Submitted by: Fred Cawthorne (fcawth@delphi.umd.edu)
Sources involved: isa/gpib.c isa/gpib.h isa/gpibreg.h
Genius GS-4500 hand scanner driver
----------------------------------
Owner: core
Submitted by: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
Sources involved: isa/gsc.c isa/gscreg.h
CORTEX-I Frame Grabber
----------------------
Owner: core
Submitted by: Paul S. LaFollette, Jr.
Sources involved: isa/ctx.c isa/ctxreg.h
Video Spigot video capture card
-------------------------------
Owner: Jim Lowe
1.2 Experimental features
-------------------------
The unionfs and LFS file systems are known to be severely broken in
2.0.5. This is in part due to old bugs that we haven't had time to
resolve yet and the need to update these file systems to deal with the
new VM system. We hope to address these issues in a later release of
FreeBSD.
FreeBSD now supports running iBCS2 compatible binaries (currently SCO
UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported). The iBCS2
emulator is in its early stages, but it is functional, we haven't been
able to do exhaustive testing (lack of commercial apps), but almost
all of SCO's 3.2.2 binaries are working, so is an old INFORMIX-2.10
for SCO. Further testing is nessesary to complete this project. There
is also work under way for ELF & XOUT loaders, and most of the svr4
syscall wrappers have been written.
FreeBSD also implements enough of its Linux compatibility that we
can now run Linux DOOM! See the ``xperimnt'' directory (on your local
FTP server or CDROM) for full docs on how to set this up.
Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef)
Sources involved: sys/i386/ibcs2/* + misc kernel changes.
2. Supported Configurations
---------------------------
FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
based PC's, ranging from 386sx to Pentium class machines (though the
386sx is not recommended). Support for generic IDE or ESDI drive
configurations, various SCSI controller, network and serial cards is
also provided.
Following is a list of all disk controllers and ethernet cards currently
known to work with FreeBSD. Other configurations may very well work, and
we have simply not received any indication of this.
2.1. Disk Controllers
---------------------
WD1003 (any generic MFM/RLL)
WD1007 (any generic IDE/ESDI)
IDE
ATA
Adaptec 152x series ISA SCSI controllers
Adaptec 154x series ISA SCSI controllers
Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
Adaptec 274X/284X/2940 (Narrow/Wide/Twin) series ISA/EISA/PCI SCSI controllers
Adaptec AIC-6260 and AIC-6360 based boards, which includes
the AHA-152x and SoundBlaster SCSI cards.
** Note: You cannot boot from the SoundBlaster cards as they have no
on-board BIOS, which is necessary for mapping the boot device into the
system BIOS I/O vectors. They're perfectly usable for external tapes,
CDROMs, etc, however. The same goes for any other AIC-6x60 based card
without a boot ROM. Some systems DO have a boot ROM, which is generally
indicated by some sort of message when the system is first powered up
or reset. Check your system/board documentation for more details.
[Note that Buslogic was formerly known as "Bustec"]
Buslogic 545S & 545c
Buslogic 445S/445c VLB SCSI controller
Buslogic 742A, 747S, 747c EISA SCSI controller.
Buslogic 946c PCI SCSI controller
Buslogic 956c PCI SCSI controller
NCR 53C810 and 53C825 PCI SCSI controller.
NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller.
DTC 3290 EISA SCSI controller in 1542 emulation mode.
UltraStor 14F, 24F and 34F SCSI controllers.
Seagate ST01/02 SCSI controllers.
Future Domain 8xx/950 series SCSI controllers.
WD7000 SCSI controller.
With all supported SCSI controllers, full support is provided for
SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
DAT) and CD ROM drives.
The following CD-ROM type systems are supported at this time:
(cd) SCSI (also includes ProAudio Spectrum and SoundBlaster SCSI)
(mcd) Mitsumi proprietary interface
(matcd) Matsushita/Panasonic (Creative) proprietary interface
(scd) Sony proprietary interface
Note: CD-Drives with IDE interfaces are not supported at this time.
Some controllers have limitations with the way they deal with >16MB of
memory, due to the fact that the ISA bus only has a DMA address space
of 24 bits. If you do your arithmetic, you'll see that this makes it
impossible to do direct DMA to any address >16MB. This limitation is
even true of some EISA controllers (which are normally 32 bit) when
they're configured to emulate an ISA card, which they then do in *all*
respects. This problem is avoided entirely by IDE controllers (which
do not use DMA), true EISA controllers (like the UltraStor, Adaptec
1742A or Adaptec 2742) and most VLB (local bus) controllers. In the
cases where it's necessary, the system will use "bounce buffers" to
talk to the controller so that you can still use more than 16Mb of
memory without difficulty.
2.2. Ethernet cards
-------------------
Allied-Telesis AT1700 and RE2000 cards
SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
based clones. SMC Elite Ultra is also supported.
DEC EtherWORKS III NICs (DE203, DE204, and DE205)
DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
DEC DC21140 based NICs (SMC???? DE???)
DEC FDDI (DEFPA/DEFEA) NICs
Fujitsu FMV-181 and FMV-182
Intel EtherExpress
Isolan AT 4141-0 (16 bit)
Isolink 4110 (8 bit)
Novell NE1000, NE2000, and NE2100 ethernet interface.
3Com 3C501 cards
3Com 3C503 Etherlink II
3Com 3c505 Etherlink/+
3Com 3C507 Etherlink 16/TP
3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
Toshiba ethernet cards
PCMCIA ethernet cards from IBM and National Semiconductor are also
supported.
2.3. Misc
---------
AST 4 port serial card using shared IRQ.
ARNET 8 port serial card using shared IRQ.
BOCA ATIO66 6 port serial card using shared IRQ.
Cyclades Cyclom-y Serial Board.
STB 4 port card using shared IRQ.
Mitsumi (all models) CDROM interface and drive.
SDL Communications Riscom/8 Serial Board.
SoundBlaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive.
Matsushita/Panasonic (Creative SoundBlaster) CDROM interface and drive.
Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
and Roland MPU-401 sound cards.
FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but
support is apparently close to materializing. Details will be posted
as the situation develops.
3. Obtaining FreeBSD
--------------------
You may obtain FreeBSD in a variety of ways:
1. FTP/Mail
You can ftp FreeBSD and any or all of its optional packages from
`ftp.freebsd.org' - the official FreeBSD release site.
For other locations that mirror the FreeBSD software see the file
MIRROR.SITES. Please ftp the distribution from the nearest site
to you netwise.
If you do not have access to the internet and electronic mail is your
only recourse, then you may still fetch the files by sending mail to
`ftpmail@decwrl.dec.com' - putting the keyword "help" in your message
to get more information on how to fetch files from ftp.freebsd.org.
Note: This approach will end up sending many *tens of megabytes*
through the mail, and should only be employed as an absolute LAST
resort!
2. CDROM
FreeBSD 2.0.5 may be ordered on CDROM from:
Walnut Creek CDROM
4041 Pike Lane, Suite D
Concord CA 94520
1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax)
Or via the internet from orders@cdrom.com or http://www.cdrom.com.
Their current catalog can be obtained via ftp as:
ftp://ftp.cdrom.com/cdrom/catalog.
Cost per CD is $39.95, or $24.95 with a FreeBSD subscription. With
a subscription, you will automatically receive updates as they
are released. Your credit card will be billed when each disk is shipped
and you may cancel your subscription at any time without further obligation.
Walnut Creek CDROM also sells a full line of FreeBSD related merchandise such
as T-shirts ($14.95, available in "child", Large and XL sizes), coffee mugs
($9.95), tattoos ($0.25 each) and posters ($3.00).
Shipping (per order not per disc) is $5 in the US, Canada or
Mexico and $9.00 overseas. They accept Visa, Mastercard, Discover,
American Express or checks in U.S. Dollars and ship COD within the
United States. California residents please add 8.25% sales tax.
Should you be dissatisfied for any reason, the CD comes with an
unconditional return policy.
Reporting problems, making suggestions, submitting code
-------------------------------------------------------
Your suggestions, bug reports and contributions of code are always
valued - please do not hesitate to report any problems you may find
(preferably with a fix attached if you can!).
The preferred method to submit bug reports from a machine with
internet mail connectivity is to use the send-pr command. Bug reports
will be dutifully filed by our faithful bugfiler program and you can
be sure that we'll do our best to respond to all reported bugs as soon
as possible.
If, for some reason, you are unable to use the send-pr command to
submit a bug report, you can try to send it to:
bugs@FreeBSD.org
Otherwise, for any questions or suggestions, please send mail to:
questions@FreeBSD.org
Additionally, being a volunteer effort, we are always happy to have
extra hands willing to help - there are already far more enhancements
to be done than we can ever manage to do by ourselves! To contact us
on technical matters, or with offers of help, you may send mail to:
hackers@FreeBSD.org
Since these mailing lists can experience significant amounts of
traffic, if you have slow or expensive mail access and you are
only interested in keeping up with significant FreeBSD events, you may
find it preferable to subscribe to:
announce@FreeBSD.org
All but the freebsd-bugs groups can be freely joined by anyone wishing
to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword
`help' on a line by itself somewhere in the body of the message. This
will give you more information on joining the various lists, accessing
archives, etc. There are a number of mailing lists targeted at
special interest groups not mentioned here, so send mail to majordomo
and ask about them!
6. Acknowledgements
-------------------
FreeBSD represents the cumulative work of many dozens, if not
hundreds, of individuals from around the world who have worked very
hard to bring you this release. It would be very difficult, if not
impossible, to enumerate everyone who's contributed to FreeBSD, but
nonetheless we shall try (in alphabetical order, of course). If your
name is not mentioned, please be assured that its omission is entirely
accidental.
The Computer Systems Research Group (CSRG), U.C. Berkeley.
Bill Jolitz, for his initial work with 386BSD.
The FreeBSD Core Team
(in alphabetical order by first name):
Andreas Schulz <ats@FreeBSD.org>
Andrey A. Chernov <ache@FreeBSD.org>
Bruce Evans <bde@FreeBSD.org>
David Greenman <davidg@FreeBSD.org>
Garrett A. Wollman <wollman@FreeBSD.org>
Gary Palmer <gpalmer@FreeBSD.org>
Geoff Rehmet <csgr@FreeBSD.org>
Jack Vogel <jackv@FreeBSD.org>
John Dyson <dyson@FreeBSD.org>
Jordan K. Hubbard <jkh@FreeBSD.org>
Justin Gibbs <gibbs@FreeBSD.org>
Paul Richards <paul@FreeBSD.org>
Poul-Henning Kamp <phk@FreeBSD.org>
Rich Murphey <rich@FreeBSD.org>
Rodney W. Grimes <rgrimes@FreeBSD.org>
Satoshi Asami <asami@FreeBSD.org>
Søren Schmidt <sos@FreeBSD.org>
Special mention to:
Walnut Creek CDROM, without whose help (and continuing support)
this release would never have been possible.
Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
drive.
Additional FreeBSD helpers and beta testers:
J.T. Conklin Julian Elischer
Frank Durda IV Peter Dufault
Sean Eric Fagan Jeffrey Hsu
Terry Lambert L Jonas Olsson
Chris Provenzano Dave Rivers
Guido van Rooij Steven Wallace
Atsushi Murai Scott Mace
Nate Williams
And everyone at Montana State University for their initial support.
Jordan would also like to give special thanks to Poul-Henning Kamp and
Gary Palmer, both of whom put in long hours helping him to construct
the new installation utility. Poul, being a proud new father, was
especially pressed for time and yet somehow managed to put in
a significant amount of effort anyway. This release could not have
happened without him! Thank you both!
Thanks also to everyone else who helped, especially those not
mentioned, and we sincerely hope you enjoy this release of FreeBSD!
The FreeBSD Core Team
$Id: RELNOTES,v 1.10 1995/06/10 09:56:30 jkh Exp $

View File

@ -0,0 +1,28 @@
This is the Main Partition (or ``Slice'') Editor.
Possible commands are printed at the bottom, and the Master Boot Record
contents are at the top. You can move up and down with the arrow keys
and can (C)reate a new partition whenever the "bar" is over a partition
whose type is set to "unused".
The flags field has the following legend:
'=' -- Partition is properly aligned.
'>' -- The partition doesn't end before cylinder 1024
'R' -- Has been marked as containing the root (/) filesystem
'B' -- Partition employs BAD144 bad-spot handling
'C' -- This is the FreeBSD 2.0-compatibility partition (default)
'A' -- This partition is marked active.
If you select a partition for Bad144 handling, it will be scanned
for bad blocks before any new filesystems are made on it.
If no partition is marked Active, you will need to either install
a Boot Manager (the option for which will be presented later in the
installation) or set one Active before leaving this screen.
To leave this screen, type `Q'.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the Label Editor.

View File

@ -0,0 +1,27 @@
This screen allows you to set up your general network parameters
(hostname, domain name, DNS server, etc) as well as the settings for a
given interface (which was selected from the menu before this screen).
You can move through the fields with the TAB, BACK-TAB and RETURN
keys. To edit a field, use DELETE or BACKSPACE. You may also use ^A
(control-A) to go to the beginning of the line, ^E (control-E) to go
to the end, ^F (control-F) to go forward a character, ^B (control-B)
to go backward one character, ^D (control-D) to delete the character
under the cursor and ^K (control-K) to delete to the end of the line.
Basically, the standard EMACS motion sequences.
The ``Extra options to ifconfig'' is kind of special (read: a hack :-).
You can use it for specifying the foreign side of a PLIP or SLIP line
(simply type the foreign address in) as well as selecting a given
"link" on an ethernet card that has more than one (e.g. AUI, 10BT,
10B2, etc). The following links are recognised:
link0 - AUI * highest precedence
link1 - BNC
link2 - UTP * lowest precedence
That is to say that you can enter one of "link0", "link1" or "link2"
into the `Extra options' field to select a different link.
When you're done with this form, select OK.

View File

@ -0,0 +1,54 @@
HOW TO USE THIS SYSTEM
======================
KEY ACTION
--- ------
UP ARROW Move to previous item (or up, in a text field).
DOWN ARROW Move to next item (or down, in a text field).
TAB Move to next item or group.
RIGHT ARROW Move to next item or group (same as TAB).
SHIFT-TAB Move to previous item or group.
LEFT ARROW Move to previous item or group (same as SHIFT-TAB).
RETURN Select item.
PAGE UP In text boxes, scrolls up one page.
PAGE DOWN In text boxes, scrolls down one page.
SPACE In "radio" or multiple choice menus, toggle the current item.
F1 Help (in screens that provide it).
If you also see small "^(-)" or "v(+)" symbols at the edges of a menu,
it means that there are more items above or below the current one that
aren't being shown (due to insufficient screen space). Using the
up/down arrow keys will cause the menu to scroll. When a symbol
disappears, it means you are at the top (or bottom) of the menu.
In text fields, the amount of text above the current point will be
displayed as a percentage in the lower right corner. 100% means
you're at the bottom of the field.
Selecting OK in a menu will confirm whatever action it's controlling.
Selecting Cancel will cancel the operation and generally return you to
the previous menu.
SPECIAL FEATURES:
=================
It is also possible to select a menu item by typing the first
character of its name, if unique. Such "accelerator" characters will
be specially highlighted in the item name.
The console driver also contains a scroll-back buffer for reviewing
things that may have scrolled off the screen. To use scroll-back,
press the "Scroll Lock" key on your keyboard and use the arrow or
Page Up/Page Down keys to move through the saved text. To leave
scroll-back mode, press the Scroll Lock key again. This feature
is most useful for dealing with sub-shells or other "wizard modes"
that don't use menus.
Once the system is fully installed and running "multi-user", you will
also find that you have multiple "virtual consoles" and can use them to
have several active sessions at once. Use ALT-F<n> to switch between
them, where `F<n>' is the function key corresponding to the screen you
wish to see. By default, the system comes with 3 virtual consoles enabled.
You can create more by editing the /etc/ttys file, once the system is up,
for a maximum of 12.

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.70.2.41 1995/06/10 07:58:37 jkh Exp $
* $Id: install.c,v 1.71.2.1 1995/07/21 10:53:54 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -47,11 +47,11 @@
#include <sys/ioctl.h>
#include <sys/fcntl.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <unistd.h>
Boolean SystemWasInstalled = FALSE;
static Boolean make_filesystems(void);
static Boolean copy_self(void);
static Boolean root_extract(void);
@ -122,7 +122,7 @@ checkLabels(void)
return FALSE;
}
else if (rootdev->name[strlen(rootdev->name) - 1] != 'a') {
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot block code. Please correct this and\ntry again.");
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot code. Please correct this and\ntry again.");
return FALSE;
}
if (!swapdev) {
@ -137,11 +137,6 @@ checkLabels(void)
static Boolean
installInitial(void)
{
extern u_char boot1[], boot2[];
extern u_char mbr[], bteasy17[];
u_char *mbrContents;
Device **devs;
int i;
static Boolean alreadyDone = FALSE;
if (alreadyDone)
@ -158,67 +153,22 @@ installInitial(void)
if (!checkLabels())
return FALSE;
/* Figure out what kind of MBR the user wants */
if (!dmenuOpenSimple(&MenuMBRType))
return FALSE;
switch (BootMgr) {
case 0:
mbrContents = bteasy17;
break;
case 1:
mbrContents = mbr;
break;
case 2:
default:
mbrContents = NULL;
}
/* If we refuse to proceed, bail. */
if (msgYesNo("Last Chance! Are you SURE you want continue the installation?\n\nIf you're running this on an existing system, we STRONGLY\nencourage you to make proper backups before proceeding.\nWe take no responsibility for lost disk contents!"))
return FALSE;
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
(void)diskPartitionWrite(NULL);
if (!devs[i]->enabled)
continue;
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
if (!make_filesystems()) {
if (!installFilesystems()) {
msgConfirm("Couldn't make filesystems properly. Aborting.");
return 0;
return FALSE;
}
if (!copy_self()) {
msgConfirm("Couldn't clone the boot floppy onto the root file system.\nAborting.");
return 0;
return FALSE;
}
dialog_clear();
chroot("/mnt");
chdir("/");
@ -247,11 +197,50 @@ installInitial(void)
return TRUE;
}
int
installExpress(char *str)
{
msgConfirm("In the next menu, you will need to set up a DOS-style\n"
"partitioning scheme for your hard disk. If you don't\n"
"want to do anything special, just type `A' to use the\n"
"whole disk and then `Q' to quit.");
diskPartitionEditor("express");
msgConfirm("Next, you need to lay out BSD partitions inside of the\n"
"DOS-style partition just created. If you don't want to\n"
"do anything special, just type `A' to use the default\n"
"partitioning scheme and then `Q' to quit.");
diskLabelEditor("express");
msgConfirm("Now it is time to select an installation subset. There\n"
"are two basic configurations: Developer and Router. The\n"
"Developer subset includes sources, documentation, and\n"
"binaries for almost everything. The Router subset\n"
"includes the same binaries and documentation, but no\n"
"sources. You can also install absolutely everything,\n"
"or select a custom software set.");
while(!Dists) {
dmenuOpenSimple(&MenuInstallType);
}
msgConfirm("Finally, you must specify an installation medium.");
dmenuOpenSimple(&MenuMedia);
installCommit("express");
dmenuOpenSimple(&MenuConfigure);
return 0;
}
/*
* What happens when we select "Install". This is broken into a 3 stage installation so that
* the user can do a full installation but come back here again to load more distributions,
* perhaps from a different media type. This would allow, for example, the user to load the
* majority of the system from CDROM and then use ftp to load just the DES dist.
* What happens when we select "Commit" in the custom installation menu.
*
* This is broken into multiple stages so that the user can do a full installation but come
* back here again to load more distributions, perhaps from a different media type.
* This would allow, for example, the user to load the majority of the system from CDROM
* and then use ftp to load just the DES dist.
*/
int
installCommit(char *str)
@ -263,6 +252,7 @@ installCommit(char *str)
msgConfirm("You haven't told me what distributions to load yet!\nPlease select a distribution from the Distributions menu.");
return 0;
}
if (!mediaVerify())
return 0;
@ -271,7 +261,7 @@ installCommit(char *str)
return 0;
configFstab();
}
if (!SystemWasInstalled && !root_extract()) {
if (RunningAsInit && !SystemWasInstalled && !root_extract()) {
msgConfirm("Failed to load the ROOT distribution. Please correct\nthis problem and try again.");
return 0;
}
@ -280,7 +270,7 @@ installCommit(char *str)
if (Dists & DIST_BIN)
SystemWasInstalled = FALSE;
distExtractAll();
(void)distExtractAll(NULL);
if (!SystemWasInstalled && access("/kernel", R_OK)) {
if (vsystem("ln -f /kernel.GENERIC /kernel")) {
@ -290,7 +280,7 @@ installCommit(char *str)
}
/* Resurrect /dev after bin distribution screws it up */
if (!SystemWasInstalled) {
if (RunningAsInit && !SystemWasInstalled) {
msgNotify("Remaking all devices.. Please wait!");
if (vsystem("cd /dev; sh MAKEDEV all"))
msgConfirm("MAKEDEV returned non-zero status");
@ -319,23 +309,26 @@ installCommit(char *str)
/* XXX Do all the last ugly work-arounds here which we'll try and excise someday right?? XXX */
/* BOGON #1: XFree86 extracting /usr/X11R6 with root-only perms */
if (file_readable("/usr/X11R6"))
(void)system("chmod 755 /usr/X11R6");
chmod("/usr/X11R6", 0755);
/* BOGON #2: We leave /etc in a bad state */
(void)system("chmod 755 /etc");
chmod("/etc", 0755);
dialog_clear();
/* We get a NULL value for str if run from installExpress(), in which case we don't want to print the following */
if (str) {
if (Dists)
msgConfirm("Installation completed with some errors. You may wish\nto scroll through the debugging messages on ALT-F2 with the scroll-lock\nfeature. Press [ENTER] to return to the installation menu.");
else
msgConfirm("Installation completed successfully, now press [ENTER] to return\nto the main menu. If you have any network devices you have not yet\nconfigured, see the Interface configuration item on the\nConfiguration menu.");
}
SystemWasInstalled = TRUE;
return 0;
}
/* Go newfs and/or mount all the filesystems we've been asked to */
static Boolean
make_filesystems(void)
Boolean
installFilesystems(void)
{
int i;
Disk *disk;

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: label.c,v 1.31.2.4 1995/06/07 06:38:11 jkh Exp $
* $Id: label.c,v 1.32.2.2 1995/07/21 11:45:39 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -44,6 +44,10 @@
#include "sysinstall.h"
#include <ctype.h>
#include <sys/disklabel.h>
#include <sys/param.h>
#undef TRUE
#undef FALSE
#include <sys/sysctl.h>
/*
* Everything to do with editing the contents of disk labels.
@ -178,7 +182,7 @@ new_part(char *mpoint, Boolean newfs, u_long size)
ret = (PartInfo *)safe_malloc(sizeof(PartInfo));
strncpy(ret->mountpoint, mpoint, FILENAME_MAX);
strcpy(ret->newfs_cmd, "newfs");
strcpy(ret->newfs_cmd, "newfs -b 8192 -f 2048");
ret->newfs = newfs;
if (!size)
return ret;
@ -352,21 +356,20 @@ print_label_chunks(void)
memcpy(onestr + PART_PART_COL, label_chunk_info[i].c->name, strlen(label_chunk_info[i].c->name));
/* If it's a filesystem, display the mountpoint */
if (label_chunk_info[i].c->private
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT)) {
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT))
mountpoint = ((PartInfo *)label_chunk_info[i].c->private)->mountpoint;
else
mountpoint = "<none>";
/* Now display the newfs field */
if (label_chunk_info[i].type == PART_FAT)
newfs = "DOS";
else if (label_chunk_info[i].c->private && label_chunk_info[i].type == PART_FILESYSTEM)
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "UFS Y" : "UFS N";
else if (label_chunk_info[i].type == PART_SWAP)
newfs = "SWAP";
else
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "Y" : "N";
}
else if (label_chunk_info[i].type == PART_SWAP) {
mountpoint = "swap";
newfs = " ";
}
else {
mountpoint = "<NONE>";
newfs = "*";
}
for (j = 0; j < MAX_MOUNT_NAME && mountpoint[j]; j++)
onestr[PART_MOUNT_COL + j] = mountpoint[j];
snprintf(num, 10, "%4ldMB", label_chunk_info[i].c->size ? label_chunk_info[i].c->size / ONE_MEG : 0);
@ -385,22 +388,23 @@ static void
print_command_summary()
{
mvprintw(17, 0, "The following commands are valid here (upper or lower case):");
mvprintw(19, 0, "C = Create New D = Delete M = Set Mountpoint");
mvprintw(20, 0, "N = Newfs Options T = Toggle Newfs U = Undo Q = Finish");
mvprintw(21, 0, "The default target will be displayed in ");
mvprintw(18, 0, "C = Create D = Delete M = Mount W = Write");
mvprintw(19, 0, "N = Newfs Opts T = Newfs Toggle U = Undo Q = Finish");
mvprintw(20, 0, "A = Auto Defaults for all!");
mvprintw(22, 0, "The default target will be displayed in ");
attrset(A_REVERSE);
addstr("reverse");
attrset(A_NORMAL);
addstr(" video.");
mvprintw(22, 0, "Use F1 or ? to get more help, arrow keys to move.");
mvprintw(23, 0, "Use F1 or ? to get more help, arrow keys to move.");
move(0, 0);
}
int
diskLabelEditor(char *str)
{
int sz, i, key = 0;
int sz, key = 0;
Boolean labeling;
char *msg = NULL;
PartInfo *p, *oldp;
@ -428,6 +432,7 @@ diskLabelEditor(char *str)
refresh();
key = toupper(getch());
switch (key) {
int i, cnt;
case '\014': /* ^L */
continue;
@ -465,6 +470,87 @@ diskLabelEditor(char *str)
systemDisplayFile("partition.hlp");
break;
case 'A':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
break;
}
cnt = i = 0;
while (label_chunk_info[i].c)
if (label_chunk_info[i++].type != PART_SLICE)
cnt++;
if (cnt == (CHUNK_COLUMN_MAX * 2) + 4) {
msgConfirm("Sorry, I can't fit any more partitions on the screen! You can get around\nthis limitation by partitioning your disks individually rather than all\nat once. This will be fixed just as soon as we get a scrolling partition\nbox written. Sorry for the inconvenience!");
break;
}
sz = space_free(label_chunk_info[here].c);
if (sz <= FS_MIN_SIZE) {
msg = "Not enough space to create additional FreeBSD partition";
break;
}
{
struct chunk *tmp;
int mib[2];
int physmem;
size_t size;
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
32 * ONE_MEG, part, FS_BSDFFS,
CHUNK_IS_ROOT);
if (!tmp) {
msgConfirm("Unable to create the root partition. Too big?");
break;
}
tmp->private = new_part("/", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
mib[0] = CTL_HW;
mib[1] = HW_PHYSMEM;
size = sizeof physmem;
sysctl(mib, 2, &physmem, &size, (void *)0, (size_t)0);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
physmem * 2 / 512, part, FS_SWAP, 0);
if (!tmp) {
msgConfirm("Unable to create the swap partition. Too big?");
break;
}
tmp->private = 0;
tmp->private_free = safe_free;
record_label_chunks();
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
16 * ONE_MEG, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /var partition. Too big?");
break;
}
tmp->private = new_part("/var", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
sz = space_free(label_chunk_info[here].c);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
sz, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /usr partition. Too big?");
break;
}
tmp->private = new_part("/usr", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
}
break;
case 'C':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
@ -639,6 +725,11 @@ diskLabelEditor(char *str)
break;
case 'W':
if (!msgYesNo("Are you sure that you wish to make and mount all filesystems\nat this time? You also have the option of doing it later in\none final 'commit' operation, and if you're at all unsure as\nto which option to chose, then chose No."))
diskLabelCommit(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\n\nThis is an entirely undocumented feature which you are not\nexpected to understand!")) {
int i;
Device **devs;
@ -678,5 +769,12 @@ diskLabelEditor(char *str)
return 0;
}
int
diskLabelCommit(char *str)
{
if (!getenv(DISK_LABELLED))
msgConfirm("You must assign disk labels before this option can be used.");
else if (!installFilesystems())
msgConfirm("Failed to make/mount all filesystems. Please correct\nwhatever went wrong and try again.");
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.12.2.4 1995/06/05 15:17:12 jkh Exp $
* $Id: main.c,v 1.13 1995/06/11 19:30:02 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -64,9 +64,6 @@ main(int argc, char **argv)
/* Probe for all relevant devices on the system */
deviceGetAll();
/* Default to English */
lang_set_English(NULL);
/* Default to passive mode ftp since it's the only thing we currently support :-( */
OptFlags |= OPT_FTP_PASSIVE;

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: media.c,v 1.24.2.11 1995/06/10 01:42:19 jkh Exp $
* $Id: media.c,v 1.25.2.1 1995/07/21 10:53:58 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -269,6 +269,20 @@ mediaSetFTP(char *str)
return 1;
}
int
mediaSetFTPActive(char *str)
{
OptFlags &= OPT_FTP_ACTIVE;
return mediaSetFTP(str);
}
int
mediaSetFTPPassive(char *str)
{
OptFlags &= OPT_FTP_PASSIVE;
return mediaSetFTP(str);
}
int
mediaSetUFS(char *str)
{

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.41.2.39 1995/06/10 19:38:27 jkh Exp $
* $Id: menus.c,v 1.42.2.3 1995/07/27 01:37:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -53,7 +53,7 @@
/* The initial installation menu */
DMenu MenuInitial = {
DMENU_NORMAL_TYPE,
"Welcome to FreeBSD 2.0.5!", /* title */
"Welcome to FreeBSD RELEASE_NAME!", /* title */
"This is the main menu of the FreeBSD installation system. Please\n\
select one of the options below by using the arrow keys or typing the\n\
first character of the option name you're interested in. Invoke an\n\
@ -64,12 +64,14 @@ option by pressing [ENTER].", /* prompt */
DMENU_DISPLAY_FILE, "usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, &MenuDocumentation, 0, 0 },
{ "Language", "Set your preferred language.", /* L */
DMENU_SUBMENU, &MenuOptionsLanguage, 0, 0 },
{ "Options", "Select various options for this utility.", /* O */
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Proceed", "Go to the installation menu", /* P */
DMENU_SUBMENU, &MenuInstall, 0, 0 },
{ "Custom", "Begin a custom installation", /* C */
DMENU_SUBMENU, &MenuInstallCustom, 0, 0 },
{ "Express", "Begin a quick installation", /* E */
DMENU_CALL, &installExpress, 0, 0 },
{ "Shell", "Go to a shell for debugging or repair",
DMENU_SYSTEM_COMMAND, "sh", 0, 0 },
{ "Quit", "Exit this menu (and the installation)", /* Q */
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
@ -78,74 +80,34 @@ option by pressing [ENTER].", /* prompt */
/* The main documentation menu */
DMenu MenuDocumentation = {
DMENU_NORMAL_TYPE,
"Documentation for FreeBSD 2.0.5", /* Title */
"Documentation for FreeBSD RELEASE_NAME", /* Title */
"If you are at all unsure about the configuration of your hardware\n\
or are looking to build a system specifically for FreeBSD, read the\n\
Hardware guide! New users should also read the Install document for\n\
a step-by-step tutorial on installing FreeBSD. For general information,\n\
consult the README file.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
"usage.hlp",
{ { "README", "Read this for a general description of FreeBSD",
DMENU_DISPLAY_FILE, "README", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
{ "Hardware", "The FreeBSD survival guide for PC hardware.",
DMENU_DISPLAY_FILE, "hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
{ "Install", "A step-by-step guide to installing FreeBSD.",
DMENU_DISPLAY_FILE, "install.hlp", 0, 0 },
{ "Copyright", "The FreeBSD Copyright notices.", /* C */
{ "Copyright", "The FreeBSD Copyright notices.",
DMENU_DISPLAY_FILE, "COPYRIGHT", 0, 0 },
{ "Release", "The release notes for this version of FreeBSD.", /* R */
{ "Release", "The release notes for this version of FreeBSD.",
DMENU_DISPLAY_FILE, "RELNOTES", 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
/*
* The language selection menu.
*/
DMenu MenuOptionsLanguage = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Natural language selection", /* title */
"Please specify the language you would like to use by default.\n\n\
While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)", /* J */
DMENU_CALL, lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, lang_set_Norwegian, 0, 0},
{ "Russian", "Russian language and character set (KOI8-R)", /* R */
DMENU_CALL, lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Swedish, 0, 0 },
{ NULL } },
};
DMenu MenuMediaCDROM = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Choose a CDROM type",
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you are seeing this menu it is because\n\
FreeBSD RELEASE_NAME distribution. If you are seeing this menu it is because\n\
more than one CDROM drive was found on your system. Please select one\n\
of the following CDROM drives as your installation drive.",
"Press F1 to read the installation guide",
@ -193,69 +155,69 @@ To specify a URL not in this list, chose \"other\".",
"Select a site that's close!",
"install.hlp",
{ { "Primary Site", "ftp.freebsd.org",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Secondary Site", "freefall.cdrom.com",
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Other", "Specify some other ftp site by URL",
DMENU_SET_VARIABLE, "ftp=other", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany", "ftp.fb9dv.uni-duisburg.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #2", "gil.physik.rwth-aachen.de",
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #3", "ftp.uni-paderborn.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/RELEASE_NAME", 0, 0 },
{ "Hong Kong", "ftp.hk.super.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-RELEASE_NAME", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #6", "ftp.tut.ac.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/RELEASE_NAME", 0, 0 },
{ "Japan #8", "ftp.tokyonet.ad.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #3", "kryten.atinc.com",
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/RELEASE_NAME", 0, 0 },
{ NULL } }
};
@ -298,8 +260,8 @@ DMenu MenuMedia = {
"FreeBSD can be installed from a variety of different installation\n\
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method.",
media to use, unless you have some overriding reason for using another\n\
media.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
@ -310,8 +272,10 @@ method.",
DMENU_CALL, mediaSetUFS, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, mediaSetFloppy, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, mediaSetFTP, 0, 0 },
{ "FTP Active", "Install from an FTP server in active mode",
DMENU_CALL, mediaSetFTPActive, 0, 0 },
{ "FTP Passive", "Install from an FTP server in passive mode",
DMENU_CALL, mediaSetFTPPassive, 0, 0 },
{ "NFS", "Install over NFS",
DMENU_CALL, mediaSetNFS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
@ -353,24 +317,18 @@ the list of distributions yourself, simply select \"custom\".",
static char *
DESFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_DES = %d\n", Dists & DIST_DES);
return (Dists & DIST_DES) ? "ON" : "OFF";
}
static char *
srcFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_SRC = %d\n", Dists & DIST_SRC);
return (Dists & DIST_SRC) ? "ON" : "OFF";
}
static char *
x11FlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_XF86 = %d\n", Dists & DIST_XF86);
return (Dists & DIST_XF86) ? "ON" : "OFF";
}
@ -390,15 +348,15 @@ DES distribution out of the U.S.! It is for U.S. customers only.",
DMENU_SET_FLAG, &Dists, DIST_COMPAT1X, 0, dmenuFlagCheck },
{ "compat20", "FreeBSD 2.0 binary compatibility package [2MB]",
DMENU_SET_FLAG, &Dists, DIST_COMPAT20, 0, dmenuFlagCheck },
{ "DES", "NOT FOR EXPORT! DES encryption code [.3MB]",
{ "DES", "DES encryption code - NOT FOR EXPORT! [.3MB]",
DMENU_CALL, distSetDES, 0, 0, DESFlagCheck },
{ "dict", "Spelling checker dictionary files [4.2MB]",
DMENU_SET_FLAG, &Dists, DIST_DICT, 0, dmenuFlagCheck },
{ "games", "Games and other amusements (non-commercial) [6.4MB]",
{ "games", "Games (non-commercial) [6.4MB]",
DMENU_SET_FLAG, &Dists, DIST_GAMES, 0, dmenuFlagCheck },
{ "info", "GNU info files [4.1MB]",
DMENU_SET_FLAG, &Dists, DIST_INFO, 0, dmenuFlagCheck },
{ "man", "System manual pages - strongly recommended [3.3MB]",
{ "man", "System manual pages - recommended [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_MANPAGES, 0, dmenuFlagCheck },
{ "proflibs", "Profiled versions of the libraries [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_PROFLIBS, 0, dmenuFlagCheck },
@ -441,7 +399,7 @@ you wish to install.",
NULL,
{ { "base", "top-level files in /usr/src [300K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BASE, 0, dmenuFlagCheck },
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]]",
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_GNU, 0, dmenuFlagCheck },
{ "etc", "/usr/src/etc (miscellaneous system files) [460K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_ETC, 0, dmenuFlagCheck },
@ -457,6 +415,8 @@ you wish to install.",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_LKM, 0, dmenuFlagCheck },
{ "release", "/usr/src/release (release-generation tools) [533K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_RELEASE, 0, dmenuFlagCheck },
{ "bin", "/usr/src/bin (system binaries) [2.5MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BIN, 0, dmenuFlagCheck },
{ "sbin", "/usr/src/sbin (system binaries) [1.3MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_SBIN, 0, dmenuFlagCheck },
{ "share", "/usr/src/share (documents and shared files) [10MB]",
@ -488,15 +448,15 @@ distribution. We recommend that you select what you need from the basic\n\
components set and at least one entry from the Server and Font set menus.",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XF86.hlp",
{ { "Basic", "Basic component menu (required)", /* B */
{ { "Basic", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu", /* S */
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu", /* F */
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ "Clear", "Reset XFree86 distribution list",
DMENU_CALL, clearx11, 0, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
@ -525,7 +485,7 @@ DMenu MenuXF86SelectCore = {
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_LINK, 0, dmenuFlagCheck },
{ "pex", "PEX fonts and libs needed by PEX apps [500K]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_PEX, 0, dmenuFlagCheck },
{ "sources", "XFree86 3.1.1u1 source + contrib distribution [200MB]",
{ "sources", "XFree86 3.1.1u1 standard + contrib sources [200MB]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_SRC, 0, dmenuFlagCheck },
{ NULL } },
};
@ -628,10 +588,6 @@ ftpFlagCheck(DMenuItem *item)
OptFlags &= ~OPT_FTP_RESELECT;
if (!(OptFlags & (OPT_FTP_ABORT + OPT_FTP_RESELECT)))
OptFlags |= OPT_FTP_ABORT;
if ((OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)) == (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE))
OptFlags &= ~OPT_FTP_ACTIVE;
if (!(OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)))
OptFlags |= OPT_FTP_PASSIVE;
if (*((unsigned int *)item->ptr) & item->parm)
return "ON";
return "OFF";
@ -646,24 +602,16 @@ with various possible error conditions and how verbose it will\n\
be at various stages.",
"Press F1 for more help on these options",
"options.hlp",
{ { "NFS Secure", "NFS server talks only on a secure port",
{ { "FTP Options", "Set FTP specific options",
DMENU_SUBMENU, &MenuFTPOptions, 0, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_FLAG, &OptFlags, OPT_NFS_SECURE, 0, dmenuFlagCheck },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_FLAG, &OptFlags, OPT_SLOW_ETHER, 0, dmenuFlagCheck },
{ "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP active", "Use \"active mode\" for standard FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ACTIVE, 0, ftpFlagCheck },
{ "FTP passive", "Use \"passive mode\" for firewalled FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_PASSIVE, 0, ftpFlagCheck },
{ "Debugging", "Turn on the extra debugging flag",
DMENU_SET_FLAG, &OptFlags, OPT_DEBUG, 0, dmenuFlagCheck },
{ "Yes To All", "Assume \"Yes\" answers to all non-critical dialogs",
DMENU_SET_FLAG, &OptFlags, OPT_NO_CONFIRM, 0, dmenuFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ "Clear", "Clear All Option Flags",
DMENU_CALL, clearFlags, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
@ -671,31 +619,47 @@ be at various stages.",
{ NULL } },
};
DMenu MenuFTPOptions = {
DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
"Choose FTP Options",
"This menu allows you to customize the behavior of FTP transfers\n\
for an FTP installation. To select \"Active\" or \"Passive\" mode\n\
FTP, see the Media menu.",
NULL,
NULL,
{ { "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ NULL } },
};
/* The main installation menu */
DMenu MenuInstall = {
DMenu MenuInstallCustom = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few\n\
"Choose Custom Installation Options",
"This is the custom installation menu. You may use this menu to specify\n\
details on the type of distribution you wish to have, where you wish\n\
to install it from and how you wish to allocate disk storage to FreeBSD.\n\n\
None of the items in this menu will actually modify the contents of\n\
your disk until you select the \"Install\" menu item (and even then, only\n\
after a final confirmation).",
to install it from and how you wish to allocate disk storage to FreeBSD.",
"Press F1 to read the installation guide",
"install.hlp",
{ { "Partition", "Allocate disk space for FreeBSD", /* P */
{ { "Partition", "Allocate disk space for FreeBSD",
DMENU_CALL, diskPartitionEditor, 0, 0 },
{ "Label", "Label allocated disk partitions", /* L */
{ "Label", "Label allocated disk partitions",
DMENU_CALL, diskLabelEditor, 0, 0 },
{ "Distributions", "Choose the type of installation you want", /* T */
{ "Distributions", "Choose the type of installation you want",
DMENU_SUBMENU, &MenuInstallType, 0, 0 },
{ "Media", "Choose the installation media type", /* M */
{ "Media", "Choose the installation media type",
DMENU_SUBMENU, &MenuMedia, 0, 0 },
{ "Options", "Go to Options submenu", /* O */
{ "Extract", "Extract distributions from selected media",
DMENU_CALL, distExtractAll, 0, 0 },
{ "Options", "Go to Options submenu",
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Commit", "Install FreeBSD onto your hard disk(s)", /* C */
{ "Commit", "Do Write/Make/Extract options in one step",
DMENU_CALL, installCommit, 0, 0 },
{ "Configure", "Do post-install configuration of FreeBSD", /* C */
{ "Configure", "Do post-install configuration of FreeBSD",
DMENU_SUBMENU, &MenuConfigure, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
@ -716,11 +680,11 @@ one, select \"standard\". If you would prefer your Master Boot\n\
Record to remain untouched, then select \"none\".",
"Press F1 to read the installation guide",
"install.hlp",
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")", /* B */
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")",
DMENU_SET_VALUE, &BootMgr, 0, 0, dmenuRadioCheck },
{ "Standard", "Use a standard MBR (no boot manager)", /* S */
{ "Standard", "Use a standard MBR (no boot manager)",
DMENU_SET_VALUE, &BootMgr, 1, 0, dmenuRadioCheck },
{ "None", "Leave the Master Boot Record untouched", /* N */
{ "None", "Leave the Master Boot Record untouched",
DMENU_SET_VALUE, &BootMgr, 2, 0, dmenuRadioCheck },
{ NULL } },
};

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: network.c,v 1.6.2.14 1995/06/07 09:26:29 jkh Exp $
* $Id: network.c,v 1.7.2.2 1995/07/21 10:57:33 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -57,8 +57,9 @@ mediaInitNetwork(Device *dev)
{
int i;
char *rp;
char *cp, ifconfig[64];
if (networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
if (!RunningAsInit || networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
return TRUE;
configResolv();
@ -82,18 +83,14 @@ mediaInitNetwork(Device *dev)
return FALSE;
else
strcpy(attach, val);
if (!vsystem(attach)) {
if (!vsystem(attach))
dev->private = NULL;
return TRUE;
}
else {
msgConfirm("slattach returned a bad status! Please verify that\nthe command is correct and try again.");
return FALSE;
}
}
}
else {
char *cp, ifconfig[64];
snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
cp = getenv(ifconfig);
@ -101,12 +98,11 @@ mediaInitNetwork(Device *dev)
msgConfirm("The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding.");
return FALSE;
}
i = vsystem("ifconfig %s %s", dev->name, cp);
i = vsystem("ifconfig %s %s", "sl0", cp);
if (i) {
msgConfirm("Unable to configure the %s interface!\nThis installation method cannot be used.", dev->name);
return FALSE;
}
}
rp = getenv(VAR_GATEWAY);
if (!rp || *rp == '0')
@ -122,7 +118,7 @@ mediaShutdownNetwork(Device *dev)
{
char *cp;
if (!networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
if (!RunningAsInit || !networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
return;
if (strncmp("cuaa", dev->name, 4)) {

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.41.2.20 1995/06/10 09:14:53 jkh Exp $
* $Id: sysinstall.h,v 1.42.2.1 1995/07/21 10:54:06 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -111,7 +111,7 @@
#define VAR_INTERFACES "network_interfaces"
/* The help file for the TCP/IP setup screen */
#define TCP_HELPFILE "tcp.hlp"
#define TCP_HELPFILE "tcp"
/*** Types ***/
typedef unsigned int Boolean;
@ -251,6 +251,7 @@ extern DMenu MenuInitial; /* Initial installation menu */
extern DMenu MenuMBRType; /* Type of MBR to write on the disk */
extern DMenu MenuConfigure; /* Final configuration menu */
extern DMenu MenuDocumentation; /* Documentation menu */
extern DMenu MenuFTPOptions; /* FTP Installation options */
extern DMenu MenuOptions; /* Installation options */
extern DMenu MenuOptionsLanguage; /* Language options menu */
extern DMenu MenuMedia; /* Media type menu */
@ -266,7 +267,7 @@ extern DMenu MenuSysconsKeymap; /* System console keymap configuration menu */
extern DMenu MenuSysconsKeyrate; /* System console keyrate configuration menu */
extern DMenu MenuSysconsSaver; /* System console saver configuration menu */
extern DMenu MenuNetworking; /* Network configuration menu */
extern DMenu MenuInstall; /* Installation menu */
extern DMenu MenuInstallCustom; /* Custom Installation menu */
extern DMenu MenuInstallType; /* Installation type menu */
extern DMenu MenuDistributions; /* Distribution menu */
extern DMenu MenuDESDistributions; /* DES distribution menu */
@ -332,6 +333,7 @@ extern void dummyShutdown(Device *dev);
/* disks.c */
extern int diskPartitionEditor(char *unused);
extern int diskPartitionWrite(char *unused);
/* dist.c */
extern int distReset(char *str);
@ -345,7 +347,7 @@ extern int distSetEverything(char *str);
extern int distSetDES(char *str);
extern int distSetSrc(char *str);
extern int distSetXF86(char *str);
extern void distExtractAll(void);
extern int distExtractAll(char *str);
/* dmenu.c */
extern Boolean dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max);
@ -377,6 +379,8 @@ extern void globalsInit(void);
/* install.c */
extern int installCommit(char *str);
extern int installExpress(char *str);
extern Boolean installFilesystems(void);
/* lang.c */
extern void lang_set_Danish(char *str);
@ -393,6 +397,7 @@ extern void lang_set_Swedish(char *str);
/* label.c */
extern int diskLabelEditor(char *str);
extern int diskLabelCommit(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
@ -414,6 +419,8 @@ extern int mediaSetFloppy(char *str);
extern int mediaSetDOS(char *str);
extern int mediaSetTape(char *str);
extern int mediaSetFTP(char *str);
extern int mediaSetFTPActive(char *str);
extern int mediaSetFTPPassive(char *str);
extern int mediaSetUFS(char *str);
extern int mediaSetNFS(char *str);
extern Boolean mediaGetType(void);

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: system.c,v 1.43.2.14 1995/06/09 14:33:36 jkh Exp $
* $Id: system.c,v 1.44 1995/06/11 19:30:10 rgrimes Exp $
*
* Jordan Hubbard
*
@ -60,9 +60,6 @@ systemInitialize(int argc, char **argv)
setbuf(stderr, 0);
}
for(i = 0; i < 256; i++)
default_scrnmap[i] = i;
if (set_termcap() == -1) {
printf("Can't find terminal entry\n");
exit(-1);
@ -146,62 +143,15 @@ systemDisplayFile(char *file)
char *
systemHelpFile(char *file, char *buf)
{
char *cp;
static char oldfile[64]; /* Should be FILENAME_MAX but I don't feel like wasting that much space */
static char oldlang[64];
char extract[64], *default_lang = "en_US.ISO8859-1";
int i;
if (!file)
return NULL;
if ((cp = getenv("LANG")) == NULL)
cp = default_lang;
for (i = 0; i < 2; i++) {
snprintf(buf, FILENAME_MAX, "/stand/%s/%s", cp, file);
snprintf(buf, FILENAME_MAX, "/stand/help/%s.hlp", file);
if (file_readable(buf))
return buf;
if (*oldfile) {
int i;
i = unlink(oldfile);
if (isDebug())
msgDebug("Unlink(%s) = %d\n", oldfile, i);
i = rmdir(oldlang);
if (isDebug())
msgDebug("rmdir(%s) = %d\n", oldlang, i);
oldfile[0] = '\0';
}
snprintf(extract, 64, "%s/%s", cp, file);
vsystem("cd /stand && zcat help.tgz | cpio --format=tar -idv %s > /dev/null 2>&1", extract);
if (file_readable(buf)) {
strcpy(oldfile, buf);
sprintf(oldlang, "/stand/%s", cp);
return buf;
}
if (cp == default_lang)
break;
cp = default_lang;
}
return NULL;
}
void
systemChangeFont(const u_char font[])
{
if (OnVTY && ColorDisplay) {
if (ioctl(0, PIO_FONT8x16, font) < 0)
msgConfirm("Sorry! Unable to load font for %s", getenv("LANG"));
}
}
void
systemChangeLang(char *lang)
{
variable_set2("LANG", lang);
}
void
systemChangeTerminal(char *color, const u_char c_term[],
char *mono, const u_char m_term[])
@ -231,16 +181,6 @@ systemChangeTerminal(char *color, const u_char c_term[],
dialog_clear();
}
void
systemChangeScreenmap(const u_char newmap[])
{
if (OnVTY) {
if (ioctl(0, PIO_SCRNMAP, newmap) < 0)
msgConfirm("Sorry! Unable to load the screenmap for %s",
getenv("LANG"));
}
}
int
vsystem(char *fmt, ...)
{

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: tape.c,v 1.5.2.6 1995/06/05 15:33:09 jkh Exp $
* $Id: tape.c,v 1.6 1995/06/11 19:30:11 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -65,7 +65,7 @@ mediaInitTape(Device *dev)
if (!strcmp(dev->name, "ft0"))
i = vsystem("ft | cpio -iduVm -H tar");
else
i = vsystem("cpio -iBduVm -H tar -I %s", dev->devname);
i = vsystem("cpio -iduVm -H tar -I %s", dev->devname);
if (!i) {
tapeInitted = TRUE;
return TRUE;

View File

@ -1,5 +1,5 @@
/*
* $Id: tcpip.c,v 1.29.2.8 1995/06/06 06:08:29 jkh Exp $
* $Id: tcpip.c,v 1.30.2.1 1995/07/21 10:02:59 rgrimes Exp $
*
* Copyright (c) 1995
* Gary J Palmer. All rights reserved.
@ -126,7 +126,7 @@ static Layout layout[] = {
{ NULL },
};
#define _validByte(b) ((b) >= 0 && (b) < 255)
#define _validByte(b) ((b) >= 0 && (b) <= 255)
/* whine */
static void
@ -144,7 +144,7 @@ verifyIP(char *ip)
if (ip && sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d) == 4 &&
_validByte(a) && _validByte(b) && _validByte(c) &&
_validByte(d))
_validByte(d) && (d != 255))
return 1;
else
return 0;

View File

@ -5,7 +5,7 @@ CLEANFILES= makedevs.c rtermcap
.PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum
SRCS= attr.c cdrom.c command.c config.c decode.c devices.c disks.c dist.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c lang.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c \
main.c makedevs.c media.c menus.c misc.c msg.c network.c nfs.c system.c tape.c \
tcpip.c termcap.c ufs.c variable.c wizard.c
@ -22,12 +22,6 @@ LDADD+= -L${.CURDIR}/../libdisk -ldisk
DPADD= ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO} ${LIBUTIL}
.if exists(${.CURDIR}/../../share/syscons/scrnmaps/obj)
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/obj/koi8-r2cp866.mk
.else
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/koi8-r2cp866.mk
.endif
makedevs.c: Makefile rtermcap
rm -f makedevs.tmp
echo '#include <sys/types.h>' > makedevs.tmp
@ -52,22 +46,6 @@ makedevs.c: Makefile rtermcap
./rtermcap vt100 | \
file2c 'const char termcap_vt100[] = {' ',0};' \
>> makedevs.tmp
uudecode < ${.CURDIR}/../../share/syscons/fonts/iso-8x16.fnt \
&& file2c 'const u_char font_iso_8x16[] = {' '};' \
< iso-8x16 >> makedevs.tmp
rm iso-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp850-8x16.fnt \
&& file2c 'const u_char font_cp850_8x16[] = {' '};' \
< cp850-8x16 >> makedevs.tmp
rm cp850-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp866-8x16.fnt \
&& file2c 'const u_char font_cp866_8x16[] = {' '};' \
< cp866-8x16 >> makedevs.tmp
rm cp866-8x16
${MKSCRNMAP} koi8-r2cp866 \
&& file2c 'const u_char koi8_r2cp866[] = {' '};' \
< koi8-r2cp866 >> makedevs.tmp
rm koi8-r2cp866
mv makedevs.tmp makedevs.c
rtermcap: ${.CURDIR}/rtermcap.c

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: command.c,v 1.10 1995/05/29 11:01:05 jkh Exp $
* $Id: command.c,v 1.11.4.1 1995/07/21 11:45:35 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -72,47 +72,8 @@ command_clear(void)
numCommands = 0;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
int i;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
/* First, look for the key already present and add a command to it */
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_SHELL;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = NULL;
++(commandStack[i]->ncmds);
return;
}
}
if (numCommands == MAX_CMDS)
msgFatal("More than %d commands accumulated??", MAX_CMDS);
/* If we fell to here, it's a new key */
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_SHELL;
commandStack[numCommands]->cmds[0].ptr = (void *)cmd;
commandStack[numCommands++]->cmds[0].data = NULL;
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
static void
addit(char *key, int type, void *cmd, void *data)
{
int i;
@ -120,10 +81,9 @@ command_func_add(char *key, commandFunc func, void *data)
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_FUNCTION;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)func;
msgFatal("More than %d commands stacked up behind %s??", MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = type;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = data;
++(commandStack[i]->ncmds);
return;
@ -136,11 +96,33 @@ command_func_add(char *key, commandFunc func, void *data)
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_FUNCTION;
commandStack[numCommands]->cmds[0].ptr = (void *)func;
commandStack[numCommands]->cmds[0].type = type;
commandStack[numCommands]->cmds[0].ptr = cmd;
commandStack[numCommands++]->cmds[0].data = data;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
addit(key, CMD_SHELL, cmd, NULL);
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
{
addit(key, CMD_FUNCTION, func, data);
}
/* arg to sort */
static int
sort_compare(const void *p1, const void *p2)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.15.2.28 1995/06/10 08:24:28 jkh Exp $
* $Id: config.c,v 1.16.2.2 1995/07/21 11:45:36 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -114,7 +114,7 @@ fstype_short(Chunk *c1)
return "sw";
}
else if (c1->type == fat)
return "rw";
return "ro";
return "bog";
}
@ -362,12 +362,8 @@ configRoutedFlags(char *str)
int
configPackages(char *str)
{
int i, pstat;
pid_t pid;
Boolean onCD;
msgConfirm("Warning: This utility (pkg_manage) is still somewhat experimental\nand may not function for all packages. If it fails to load the\npackages you want, try running it directly once the system is up or use the\npkg_add, pkg_info and pkg_delete utilities directly.");
i = -1;
/* If we're running as init, we know that a CD in the drive is probably ours */
onCD = file_readable("/cdrom/packages");
if (!onCD && RunningAsInit) {
@ -376,19 +372,7 @@ configPackages(char *str)
onCD = TRUE;
}
}
if (!(pid = fork())) {
if (onCD && chdir("/cdrom/packages/All"))
exit(1);
execl("/usr/sbin/pkg_manage", "/usr/sbin/pkg_manage", (char *)NULL);
exit(1);
}
else {
pid = waitpid(pid, (int *)&pstat, 0);
i = (pid == -1) ? -1 : WEXITSTATUS(pstat);
}
if (i != 0 && isDebug())
msgDebug("pkg_manage returns status of %d\n", i);
/* XXX Construct some sort of menu here using an INDEX file from /cdrom/packages XXX */
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: disks.c,v 1.30.2.7 1995/06/08 09:48:31 jkh Exp $
* $Id: disks.c,v 1.31.2.2 1995/07/21 11:45:38 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -112,7 +112,7 @@ print_command_summary()
mvprintw(14, 0, "The following commands are supported (in upper or lower case):");
mvprintw(16, 0, "A = Use Entire Disk B = Bad Block Scan C = Create Partition");
mvprintw(17, 0, "D = Delete Partition G = Set BIOS Geometry S = Set Bootable");
mvprintw(18, 0, "U = Undo All Changes Q = Finish");
mvprintw(18, 0, "U = Undo All Changes Q = Finish W = Write Changes");
mvprintw(20, 0, "The currently selected partition is displayed in ");
attrset(A_REVERSE); addstr("reverse"); attrset(A_NORMAL); addstr(" video.");
mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to move.");
@ -206,12 +206,8 @@ diskPartition(Disk *d)
if (val && (size = strtol(val, &cp, 0)) > 0) {
if (*cp && toupper(*cp) == 'M')
size *= 2048;
Create_Chunk(d, chunk_info[current_chunk]->offset,
size,
freebsd,
3,
(chunk_info[current_chunk]->flags &
CHUNK_ALIGN));
Create_Chunk(d, chunk_info[current_chunk]->offset, size, freebsd, 3,
(chunk_info[current_chunk]->flags & CHUNK_ALIGN));
record_chunks(d);
}
}
@ -229,8 +225,7 @@ diskPartition(Disk *d)
case 'G': {
char *val, geometry[80];
snprintf(geometry, 80, "%lu/%lu/%lu",
d->bios_cyl, d->bios_hd, d->bios_sect);
snprintf(geometry, 80, "%lu/%lu/%lu", d->bios_cyl, d->bios_hd, d->bios_sect);
val = msgGetInput(geometry,
"Please specify the new geometry in cyl/hd/sect format.\nDon't forget to use the two slash (/) separator characters!\nIt's not possible to parse the field without them.");
if (val) {
@ -255,6 +250,11 @@ diskPartition(Disk *d)
break;
case 'W':
if (!msgYesNo("Are you sure you want to write this now? You do also\nhave the option of not modifying the disk until *all*\nconfiguration information has been entered, at which\npoint you can do it all at once. If you're unsure, then\nchoose No at this dialog."))
diskPartitionWrite(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\nNo seat belts whatsoever are provided!")) {
dialog_clear();
end_dialog();
@ -349,3 +349,75 @@ diskPartitionEditor(char *str)
}
return 0;
}
static u_char *
getBootMgr(void)
{
extern u_char mbr[], bteasy17[];
/* Figure out what kind of MBR the user wants */
if (dmenuOpenSimple(&MenuMBRType)) {
switch (BootMgr) {
case 0:
return bteasy17;
case 1:
return mbr;
case 2:
default:
break;
}
}
return NULL;
}
int
diskPartitionWrite(char *str)
{
extern u_char boot1[], boot2[];
u_char *mbrContents;
Device **devs;
int i;
mbrContents = getBootMgr();
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
if (!devs) {
msgConfirm("Unable to find any disks to write to??");
return 0;
}
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
if (!devs[i]->enabled)
continue;
/* Do it once so that it only goes on the first drive */
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
return 0;
}

View File

@ -0,0 +1,122 @@
This is the FreeBSD DiskLabel Editor.
You should use this editor to create at least the following
filesystems:
Name Purpose Min Size? Optional?
---- ------- --------- ---------
/ Root filesystem 20MB No
swap Swap space 2 * MEM No
/usr System & user files 80MB or more Yes
Note: If you do not create a /usr filesystem then your / filesystem
will need to be bigger - at least 100MB. This is not recommended as
any media errors that may occur during disk I/O to user files will
corrupt the filesystem containing vital system files as well. It is
for this reason that / is generally kept on its own filesystem, where
it's basically considered "read only" by the system and hence a good
deal safer.
Swap space is a little tricker, and the rule of "2 * MEM" is simply a
best-guess approximation and not necessarily accurate for your
intended usage of the system. If you intend to use the system heavily
in a server or multi-user application, you may be well advised to
increase this size. You may also create swap space on multiple drives
for a larger "total" swap and this is, in fact, recommended if you
have multiple, fast drives for which such load-balancing can only help
overall I/O performance.
The /usr filesystem should be sized according to what kind of
distributions you're trying to load and how many packages you intend
to install in locations like /usr/local. You can also make /usr/local
a separate filesystem if you don't want to risk filling up your /usr
by mistake.
Another useful filesystem to create is /var, which contains mail, news
printer spool files and other temporary items. It is a popular
candidate for a separate paritition and should be sized according to
your estimates of the amount of mail, news or spooled print jobs that
may be stored there.
WARNING: If you do not create a separate filesystem for /var, space
for such files will be allocated out of the root (/) filesystem
instead. You may therefore wish to make the / partition bigger if you
expect a lot of mail or news and do not want to make /var its own
partition.
If you're new to this installation, you should also first understand
how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
works. It's not very hard to grasp. A "fully qualified slice name",
that is the name of the file we open in /dev to talk to the slice, is
optionally broken into 3 parts:
First you have the disk name. Assume we have two SCSI
drives in our system, which gives us `sd0' and `sd1'.
Next you have the "Slice" (or "FDISK Partition") number,
as seen in the Partition Editor. Assume that our sd0 contains
two slices, a FreeBSD slice and a DOS slice. This gives us
sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
to FreeBSD, so we have only one slice there: sd1s1.
Next, if a slice is a FreeBSD slice, you have a number of
(confusingly named) "partitions" you can put inside of it.
These FreeBSD partitions are where various filesystems or swap
areas live, and using our hypothetical two-SCSI-disk machine
again, we might have something like the following layout on sd0:
Name Mountpoint
---- ----------
sd0s1a /
sd0s1b <swap space>
sd0s1e /usr
Because of historical convention, there is also a short-cut,
or "compatibility slice", that is maintained for easy access
to the first FreeBSD slice on a disk for those programs which
still don't know how to deal with the new slice scheme.
The compatibility slice names for our filesystem above would
look like:
Name Mountpoint
---- ----------
sd0a /
sd0b <swap space>
sd0e /usr
FreeBSD automatically maps the compatibility slice to the first
FreeBSD slice it finds (in this case, sd0s1). You may have multiple
FreeBSD slices on a drive, but only the first one may be the
compatibility slice!
The compatibility slice will eventually be phased out, but
it is still important right now for several reasons:
1. Some programs, as mentioned before, still don't work
with the slice paradigm and need time to catch up.
2. The FreeBSD boot blocks are unable to look for
a root file system in anything but a compatibility
slice right now. This means that our root will always
show up on "sd0a" in the above scenario, even though
it really lives over on sd0s1a and would otherwise be
referred to by its full slice name.
Once you understand all this, then the label editor becomes fairly
simple. You're either carving up the FreeBSD slices displayed at the
top of the screen into smaller pieces (displayed in the middle of the
screen) and then putting FreeBSD file systems on them, Or you're just
mounting existing partitions/slices into your filesystem hierarchy;
this editor lets you do both. Since a DOS partition is also just
another slice as far as FreeBSD is concerned, you can mount one into
in your filesystem hierarchy just as easily with this editor. For
FreeBSD partitions you can also toggle the "newfs" state so that
the partitions are either (re)created from scratch or simply checked
and mounted (the contents are preserved).
When you're done, type `Q' to exit.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the FDISK Partition Editor.

View File

@ -0,0 +1,28 @@
This is the Main Partition (or ``Slice'') Editor.
Possible commands are printed at the bottom, and the Master Boot Record
contents are at the top. You can move up and down with the arrow keys
and can (C)reate a new partition whenever the "bar" is over a partition
whose type is set to "unused".
The flags field has the following legend:
'=' -- Partition is properly aligned.
'>' -- The partition doesn't end before cylinder 1024
'R' -- Has been marked as containing the root (/) filesystem
'B' -- Partition employs BAD144 bad-spot handling
'C' -- This is the FreeBSD 2.0-compatibility partition (default)
'A' -- This partition is marked active.
If you select a partition for Bad144 handling, it will be scanned
for bad blocks before any new filesystems are made on it.
If no partition is marked Active, you will need to either install
a Boot Manager (the option for which will be presented later in the
installation) or set one Active before leaving this screen.
To leave this screen, type `Q'.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the Label Editor.

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.70.2.41 1995/06/10 07:58:37 jkh Exp $
* $Id: install.c,v 1.71.2.1 1995/07/21 10:53:54 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -47,11 +47,11 @@
#include <sys/ioctl.h>
#include <sys/fcntl.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <unistd.h>
Boolean SystemWasInstalled = FALSE;
static Boolean make_filesystems(void);
static Boolean copy_self(void);
static Boolean root_extract(void);
@ -122,7 +122,7 @@ checkLabels(void)
return FALSE;
}
else if (rootdev->name[strlen(rootdev->name) - 1] != 'a') {
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot block code. Please correct this and\ntry again.");
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot code. Please correct this and\ntry again.");
return FALSE;
}
if (!swapdev) {
@ -137,11 +137,6 @@ checkLabels(void)
static Boolean
installInitial(void)
{
extern u_char boot1[], boot2[];
extern u_char mbr[], bteasy17[];
u_char *mbrContents;
Device **devs;
int i;
static Boolean alreadyDone = FALSE;
if (alreadyDone)
@ -158,67 +153,22 @@ installInitial(void)
if (!checkLabels())
return FALSE;
/* Figure out what kind of MBR the user wants */
if (!dmenuOpenSimple(&MenuMBRType))
return FALSE;
switch (BootMgr) {
case 0:
mbrContents = bteasy17;
break;
case 1:
mbrContents = mbr;
break;
case 2:
default:
mbrContents = NULL;
}
/* If we refuse to proceed, bail. */
if (msgYesNo("Last Chance! Are you SURE you want continue the installation?\n\nIf you're running this on an existing system, we STRONGLY\nencourage you to make proper backups before proceeding.\nWe take no responsibility for lost disk contents!"))
return FALSE;
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
(void)diskPartitionWrite(NULL);
if (!devs[i]->enabled)
continue;
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
if (!make_filesystems()) {
if (!installFilesystems()) {
msgConfirm("Couldn't make filesystems properly. Aborting.");
return 0;
return FALSE;
}
if (!copy_self()) {
msgConfirm("Couldn't clone the boot floppy onto the root file system.\nAborting.");
return 0;
return FALSE;
}
dialog_clear();
chroot("/mnt");
chdir("/");
@ -247,11 +197,50 @@ installInitial(void)
return TRUE;
}
int
installExpress(char *str)
{
msgConfirm("In the next menu, you will need to set up a DOS-style\n"
"partitioning scheme for your hard disk. If you don't\n"
"want to do anything special, just type `A' to use the\n"
"whole disk and then `Q' to quit.");
diskPartitionEditor("express");
msgConfirm("Next, you need to lay out BSD partitions inside of the\n"
"DOS-style partition just created. If you don't want to\n"
"do anything special, just type `A' to use the default\n"
"partitioning scheme and then `Q' to quit.");
diskLabelEditor("express");
msgConfirm("Now it is time to select an installation subset. There\n"
"are two basic configurations: Developer and Router. The\n"
"Developer subset includes sources, documentation, and\n"
"binaries for almost everything. The Router subset\n"
"includes the same binaries and documentation, but no\n"
"sources. You can also install absolutely everything,\n"
"or select a custom software set.");
while(!Dists) {
dmenuOpenSimple(&MenuInstallType);
}
msgConfirm("Finally, you must specify an installation medium.");
dmenuOpenSimple(&MenuMedia);
installCommit("express");
dmenuOpenSimple(&MenuConfigure);
return 0;
}
/*
* What happens when we select "Install". This is broken into a 3 stage installation so that
* the user can do a full installation but come back here again to load more distributions,
* perhaps from a different media type. This would allow, for example, the user to load the
* majority of the system from CDROM and then use ftp to load just the DES dist.
* What happens when we select "Commit" in the custom installation menu.
*
* This is broken into multiple stages so that the user can do a full installation but come
* back here again to load more distributions, perhaps from a different media type.
* This would allow, for example, the user to load the majority of the system from CDROM
* and then use ftp to load just the DES dist.
*/
int
installCommit(char *str)
@ -263,6 +252,7 @@ installCommit(char *str)
msgConfirm("You haven't told me what distributions to load yet!\nPlease select a distribution from the Distributions menu.");
return 0;
}
if (!mediaVerify())
return 0;
@ -271,7 +261,7 @@ installCommit(char *str)
return 0;
configFstab();
}
if (!SystemWasInstalled && !root_extract()) {
if (RunningAsInit && !SystemWasInstalled && !root_extract()) {
msgConfirm("Failed to load the ROOT distribution. Please correct\nthis problem and try again.");
return 0;
}
@ -280,7 +270,7 @@ installCommit(char *str)
if (Dists & DIST_BIN)
SystemWasInstalled = FALSE;
distExtractAll();
(void)distExtractAll(NULL);
if (!SystemWasInstalled && access("/kernel", R_OK)) {
if (vsystem("ln -f /kernel.GENERIC /kernel")) {
@ -290,7 +280,7 @@ installCommit(char *str)
}
/* Resurrect /dev after bin distribution screws it up */
if (!SystemWasInstalled) {
if (RunningAsInit && !SystemWasInstalled) {
msgNotify("Remaking all devices.. Please wait!");
if (vsystem("cd /dev; sh MAKEDEV all"))
msgConfirm("MAKEDEV returned non-zero status");
@ -319,23 +309,26 @@ installCommit(char *str)
/* XXX Do all the last ugly work-arounds here which we'll try and excise someday right?? XXX */
/* BOGON #1: XFree86 extracting /usr/X11R6 with root-only perms */
if (file_readable("/usr/X11R6"))
(void)system("chmod 755 /usr/X11R6");
chmod("/usr/X11R6", 0755);
/* BOGON #2: We leave /etc in a bad state */
(void)system("chmod 755 /etc");
chmod("/etc", 0755);
dialog_clear();
/* We get a NULL value for str if run from installExpress(), in which case we don't want to print the following */
if (str) {
if (Dists)
msgConfirm("Installation completed with some errors. You may wish\nto scroll through the debugging messages on ALT-F2 with the scroll-lock\nfeature. Press [ENTER] to return to the installation menu.");
else
msgConfirm("Installation completed successfully, now press [ENTER] to return\nto the main menu. If you have any network devices you have not yet\nconfigured, see the Interface configuration item on the\nConfiguration menu.");
}
SystemWasInstalled = TRUE;
return 0;
}
/* Go newfs and/or mount all the filesystems we've been asked to */
static Boolean
make_filesystems(void)
Boolean
installFilesystems(void)
{
int i;
Disk *disk;

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: label.c,v 1.31.2.4 1995/06/07 06:38:11 jkh Exp $
* $Id: label.c,v 1.32.2.2 1995/07/21 11:45:39 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -44,6 +44,10 @@
#include "sysinstall.h"
#include <ctype.h>
#include <sys/disklabel.h>
#include <sys/param.h>
#undef TRUE
#undef FALSE
#include <sys/sysctl.h>
/*
* Everything to do with editing the contents of disk labels.
@ -178,7 +182,7 @@ new_part(char *mpoint, Boolean newfs, u_long size)
ret = (PartInfo *)safe_malloc(sizeof(PartInfo));
strncpy(ret->mountpoint, mpoint, FILENAME_MAX);
strcpy(ret->newfs_cmd, "newfs");
strcpy(ret->newfs_cmd, "newfs -b 8192 -f 2048");
ret->newfs = newfs;
if (!size)
return ret;
@ -352,21 +356,20 @@ print_label_chunks(void)
memcpy(onestr + PART_PART_COL, label_chunk_info[i].c->name, strlen(label_chunk_info[i].c->name));
/* If it's a filesystem, display the mountpoint */
if (label_chunk_info[i].c->private
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT)) {
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT))
mountpoint = ((PartInfo *)label_chunk_info[i].c->private)->mountpoint;
else
mountpoint = "<none>";
/* Now display the newfs field */
if (label_chunk_info[i].type == PART_FAT)
newfs = "DOS";
else if (label_chunk_info[i].c->private && label_chunk_info[i].type == PART_FILESYSTEM)
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "UFS Y" : "UFS N";
else if (label_chunk_info[i].type == PART_SWAP)
newfs = "SWAP";
else
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "Y" : "N";
}
else if (label_chunk_info[i].type == PART_SWAP) {
mountpoint = "swap";
newfs = " ";
}
else {
mountpoint = "<NONE>";
newfs = "*";
}
for (j = 0; j < MAX_MOUNT_NAME && mountpoint[j]; j++)
onestr[PART_MOUNT_COL + j] = mountpoint[j];
snprintf(num, 10, "%4ldMB", label_chunk_info[i].c->size ? label_chunk_info[i].c->size / ONE_MEG : 0);
@ -385,22 +388,23 @@ static void
print_command_summary()
{
mvprintw(17, 0, "The following commands are valid here (upper or lower case):");
mvprintw(19, 0, "C = Create New D = Delete M = Set Mountpoint");
mvprintw(20, 0, "N = Newfs Options T = Toggle Newfs U = Undo Q = Finish");
mvprintw(21, 0, "The default target will be displayed in ");
mvprintw(18, 0, "C = Create D = Delete M = Mount W = Write");
mvprintw(19, 0, "N = Newfs Opts T = Newfs Toggle U = Undo Q = Finish");
mvprintw(20, 0, "A = Auto Defaults for all!");
mvprintw(22, 0, "The default target will be displayed in ");
attrset(A_REVERSE);
addstr("reverse");
attrset(A_NORMAL);
addstr(" video.");
mvprintw(22, 0, "Use F1 or ? to get more help, arrow keys to move.");
mvprintw(23, 0, "Use F1 or ? to get more help, arrow keys to move.");
move(0, 0);
}
int
diskLabelEditor(char *str)
{
int sz, i, key = 0;
int sz, key = 0;
Boolean labeling;
char *msg = NULL;
PartInfo *p, *oldp;
@ -428,6 +432,7 @@ diskLabelEditor(char *str)
refresh();
key = toupper(getch());
switch (key) {
int i, cnt;
case '\014': /* ^L */
continue;
@ -465,6 +470,87 @@ diskLabelEditor(char *str)
systemDisplayFile("partition.hlp");
break;
case 'A':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
break;
}
cnt = i = 0;
while (label_chunk_info[i].c)
if (label_chunk_info[i++].type != PART_SLICE)
cnt++;
if (cnt == (CHUNK_COLUMN_MAX * 2) + 4) {
msgConfirm("Sorry, I can't fit any more partitions on the screen! You can get around\nthis limitation by partitioning your disks individually rather than all\nat once. This will be fixed just as soon as we get a scrolling partition\nbox written. Sorry for the inconvenience!");
break;
}
sz = space_free(label_chunk_info[here].c);
if (sz <= FS_MIN_SIZE) {
msg = "Not enough space to create additional FreeBSD partition";
break;
}
{
struct chunk *tmp;
int mib[2];
int physmem;
size_t size;
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
32 * ONE_MEG, part, FS_BSDFFS,
CHUNK_IS_ROOT);
if (!tmp) {
msgConfirm("Unable to create the root partition. Too big?");
break;
}
tmp->private = new_part("/", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
mib[0] = CTL_HW;
mib[1] = HW_PHYSMEM;
size = sizeof physmem;
sysctl(mib, 2, &physmem, &size, (void *)0, (size_t)0);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
physmem * 2 / 512, part, FS_SWAP, 0);
if (!tmp) {
msgConfirm("Unable to create the swap partition. Too big?");
break;
}
tmp->private = 0;
tmp->private_free = safe_free;
record_label_chunks();
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
16 * ONE_MEG, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /var partition. Too big?");
break;
}
tmp->private = new_part("/var", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
sz = space_free(label_chunk_info[here].c);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
sz, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /usr partition. Too big?");
break;
}
tmp->private = new_part("/usr", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
}
break;
case 'C':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
@ -639,6 +725,11 @@ diskLabelEditor(char *str)
break;
case 'W':
if (!msgYesNo("Are you sure that you wish to make and mount all filesystems\nat this time? You also have the option of doing it later in\none final 'commit' operation, and if you're at all unsure as\nto which option to chose, then chose No."))
diskLabelCommit(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\n\nThis is an entirely undocumented feature which you are not\nexpected to understand!")) {
int i;
Device **devs;
@ -678,5 +769,12 @@ diskLabelEditor(char *str)
return 0;
}
int
diskLabelCommit(char *str)
{
if (!getenv(DISK_LABELLED))
msgConfirm("You must assign disk labels before this option can be used.");
else if (!installFilesystems())
msgConfirm("Failed to make/mount all filesystems. Please correct\nwhatever went wrong and try again.");
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.12.2.4 1995/06/05 15:17:12 jkh Exp $
* $Id: main.c,v 1.13 1995/06/11 19:30:02 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -64,9 +64,6 @@ main(int argc, char **argv)
/* Probe for all relevant devices on the system */
deviceGetAll();
/* Default to English */
lang_set_English(NULL);
/* Default to passive mode ftp since it's the only thing we currently support :-( */
OptFlags |= OPT_FTP_PASSIVE;

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.41.2.39 1995/06/10 19:38:27 jkh Exp $
* $Id: menus.c,v 1.42.2.3 1995/07/27 01:37:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -53,7 +53,7 @@
/* The initial installation menu */
DMenu MenuInitial = {
DMENU_NORMAL_TYPE,
"Welcome to FreeBSD 2.0.5!", /* title */
"Welcome to FreeBSD RELEASE_NAME!", /* title */
"This is the main menu of the FreeBSD installation system. Please\n\
select one of the options below by using the arrow keys or typing the\n\
first character of the option name you're interested in. Invoke an\n\
@ -64,12 +64,14 @@ option by pressing [ENTER].", /* prompt */
DMENU_DISPLAY_FILE, "usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, &MenuDocumentation, 0, 0 },
{ "Language", "Set your preferred language.", /* L */
DMENU_SUBMENU, &MenuOptionsLanguage, 0, 0 },
{ "Options", "Select various options for this utility.", /* O */
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Proceed", "Go to the installation menu", /* P */
DMENU_SUBMENU, &MenuInstall, 0, 0 },
{ "Custom", "Begin a custom installation", /* C */
DMENU_SUBMENU, &MenuInstallCustom, 0, 0 },
{ "Express", "Begin a quick installation", /* E */
DMENU_CALL, &installExpress, 0, 0 },
{ "Shell", "Go to a shell for debugging or repair",
DMENU_SYSTEM_COMMAND, "sh", 0, 0 },
{ "Quit", "Exit this menu (and the installation)", /* Q */
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
@ -78,74 +80,34 @@ option by pressing [ENTER].", /* prompt */
/* The main documentation menu */
DMenu MenuDocumentation = {
DMENU_NORMAL_TYPE,
"Documentation for FreeBSD 2.0.5", /* Title */
"Documentation for FreeBSD RELEASE_NAME", /* Title */
"If you are at all unsure about the configuration of your hardware\n\
or are looking to build a system specifically for FreeBSD, read the\n\
Hardware guide! New users should also read the Install document for\n\
a step-by-step tutorial on installing FreeBSD. For general information,\n\
consult the README file.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
"usage.hlp",
{ { "README", "Read this for a general description of FreeBSD",
DMENU_DISPLAY_FILE, "README", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
{ "Hardware", "The FreeBSD survival guide for PC hardware.",
DMENU_DISPLAY_FILE, "hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
{ "Install", "A step-by-step guide to installing FreeBSD.",
DMENU_DISPLAY_FILE, "install.hlp", 0, 0 },
{ "Copyright", "The FreeBSD Copyright notices.", /* C */
{ "Copyright", "The FreeBSD Copyright notices.",
DMENU_DISPLAY_FILE, "COPYRIGHT", 0, 0 },
{ "Release", "The release notes for this version of FreeBSD.", /* R */
{ "Release", "The release notes for this version of FreeBSD.",
DMENU_DISPLAY_FILE, "RELNOTES", 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
/*
* The language selection menu.
*/
DMenu MenuOptionsLanguage = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Natural language selection", /* title */
"Please specify the language you would like to use by default.\n\n\
While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)", /* J */
DMENU_CALL, lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, lang_set_Norwegian, 0, 0},
{ "Russian", "Russian language and character set (KOI8-R)", /* R */
DMENU_CALL, lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Swedish, 0, 0 },
{ NULL } },
};
DMenu MenuMediaCDROM = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Choose a CDROM type",
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you are seeing this menu it is because\n\
FreeBSD RELEASE_NAME distribution. If you are seeing this menu it is because\n\
more than one CDROM drive was found on your system. Please select one\n\
of the following CDROM drives as your installation drive.",
"Press F1 to read the installation guide",
@ -193,69 +155,69 @@ To specify a URL not in this list, chose \"other\".",
"Select a site that's close!",
"install.hlp",
{ { "Primary Site", "ftp.freebsd.org",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Secondary Site", "freefall.cdrom.com",
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Other", "Specify some other ftp site by URL",
DMENU_SET_VARIABLE, "ftp=other", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany", "ftp.fb9dv.uni-duisburg.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #2", "gil.physik.rwth-aachen.de",
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #3", "ftp.uni-paderborn.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/RELEASE_NAME", 0, 0 },
{ "Hong Kong", "ftp.hk.super.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-RELEASE_NAME", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #6", "ftp.tut.ac.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/RELEASE_NAME", 0, 0 },
{ "Japan #8", "ftp.tokyonet.ad.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #3", "kryten.atinc.com",
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/RELEASE_NAME", 0, 0 },
{ NULL } }
};
@ -298,8 +260,8 @@ DMenu MenuMedia = {
"FreeBSD can be installed from a variety of different installation\n\
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method.",
media to use, unless you have some overriding reason for using another\n\
media.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
@ -310,8 +272,10 @@ method.",
DMENU_CALL, mediaSetUFS, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, mediaSetFloppy, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, mediaSetFTP, 0, 0 },
{ "FTP Active", "Install from an FTP server in active mode",
DMENU_CALL, mediaSetFTPActive, 0, 0 },
{ "FTP Passive", "Install from an FTP server in passive mode",
DMENU_CALL, mediaSetFTPPassive, 0, 0 },
{ "NFS", "Install over NFS",
DMENU_CALL, mediaSetNFS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
@ -353,24 +317,18 @@ the list of distributions yourself, simply select \"custom\".",
static char *
DESFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_DES = %d\n", Dists & DIST_DES);
return (Dists & DIST_DES) ? "ON" : "OFF";
}
static char *
srcFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_SRC = %d\n", Dists & DIST_SRC);
return (Dists & DIST_SRC) ? "ON" : "OFF";
}
static char *
x11FlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_XF86 = %d\n", Dists & DIST_XF86);
return (Dists & DIST_XF86) ? "ON" : "OFF";
}
@ -390,15 +348,15 @@ DES distribution out of the U.S.! It is for U.S. customers only.",
DMENU_SET_FLAG, &Dists, DIST_COMPAT1X, 0, dmenuFlagCheck },
{ "compat20", "FreeBSD 2.0 binary compatibility package [2MB]",
DMENU_SET_FLAG, &Dists, DIST_COMPAT20, 0, dmenuFlagCheck },
{ "DES", "NOT FOR EXPORT! DES encryption code [.3MB]",
{ "DES", "DES encryption code - NOT FOR EXPORT! [.3MB]",
DMENU_CALL, distSetDES, 0, 0, DESFlagCheck },
{ "dict", "Spelling checker dictionary files [4.2MB]",
DMENU_SET_FLAG, &Dists, DIST_DICT, 0, dmenuFlagCheck },
{ "games", "Games and other amusements (non-commercial) [6.4MB]",
{ "games", "Games (non-commercial) [6.4MB]",
DMENU_SET_FLAG, &Dists, DIST_GAMES, 0, dmenuFlagCheck },
{ "info", "GNU info files [4.1MB]",
DMENU_SET_FLAG, &Dists, DIST_INFO, 0, dmenuFlagCheck },
{ "man", "System manual pages - strongly recommended [3.3MB]",
{ "man", "System manual pages - recommended [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_MANPAGES, 0, dmenuFlagCheck },
{ "proflibs", "Profiled versions of the libraries [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_PROFLIBS, 0, dmenuFlagCheck },
@ -441,7 +399,7 @@ you wish to install.",
NULL,
{ { "base", "top-level files in /usr/src [300K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BASE, 0, dmenuFlagCheck },
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]]",
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_GNU, 0, dmenuFlagCheck },
{ "etc", "/usr/src/etc (miscellaneous system files) [460K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_ETC, 0, dmenuFlagCheck },
@ -457,6 +415,8 @@ you wish to install.",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_LKM, 0, dmenuFlagCheck },
{ "release", "/usr/src/release (release-generation tools) [533K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_RELEASE, 0, dmenuFlagCheck },
{ "bin", "/usr/src/bin (system binaries) [2.5MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BIN, 0, dmenuFlagCheck },
{ "sbin", "/usr/src/sbin (system binaries) [1.3MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_SBIN, 0, dmenuFlagCheck },
{ "share", "/usr/src/share (documents and shared files) [10MB]",
@ -488,15 +448,15 @@ distribution. We recommend that you select what you need from the basic\n\
components set and at least one entry from the Server and Font set menus.",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XF86.hlp",
{ { "Basic", "Basic component menu (required)", /* B */
{ { "Basic", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu", /* S */
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu", /* F */
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ "Clear", "Reset XFree86 distribution list",
DMENU_CALL, clearx11, 0, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
@ -525,7 +485,7 @@ DMenu MenuXF86SelectCore = {
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_LINK, 0, dmenuFlagCheck },
{ "pex", "PEX fonts and libs needed by PEX apps [500K]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_PEX, 0, dmenuFlagCheck },
{ "sources", "XFree86 3.1.1u1 source + contrib distribution [200MB]",
{ "sources", "XFree86 3.1.1u1 standard + contrib sources [200MB]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_SRC, 0, dmenuFlagCheck },
{ NULL } },
};
@ -628,10 +588,6 @@ ftpFlagCheck(DMenuItem *item)
OptFlags &= ~OPT_FTP_RESELECT;
if (!(OptFlags & (OPT_FTP_ABORT + OPT_FTP_RESELECT)))
OptFlags |= OPT_FTP_ABORT;
if ((OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)) == (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE))
OptFlags &= ~OPT_FTP_ACTIVE;
if (!(OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)))
OptFlags |= OPT_FTP_PASSIVE;
if (*((unsigned int *)item->ptr) & item->parm)
return "ON";
return "OFF";
@ -646,24 +602,16 @@ with various possible error conditions and how verbose it will\n\
be at various stages.",
"Press F1 for more help on these options",
"options.hlp",
{ { "NFS Secure", "NFS server talks only on a secure port",
{ { "FTP Options", "Set FTP specific options",
DMENU_SUBMENU, &MenuFTPOptions, 0, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_FLAG, &OptFlags, OPT_NFS_SECURE, 0, dmenuFlagCheck },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_FLAG, &OptFlags, OPT_SLOW_ETHER, 0, dmenuFlagCheck },
{ "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP active", "Use \"active mode\" for standard FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ACTIVE, 0, ftpFlagCheck },
{ "FTP passive", "Use \"passive mode\" for firewalled FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_PASSIVE, 0, ftpFlagCheck },
{ "Debugging", "Turn on the extra debugging flag",
DMENU_SET_FLAG, &OptFlags, OPT_DEBUG, 0, dmenuFlagCheck },
{ "Yes To All", "Assume \"Yes\" answers to all non-critical dialogs",
DMENU_SET_FLAG, &OptFlags, OPT_NO_CONFIRM, 0, dmenuFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ "Clear", "Clear All Option Flags",
DMENU_CALL, clearFlags, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
@ -671,31 +619,47 @@ be at various stages.",
{ NULL } },
};
DMenu MenuFTPOptions = {
DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
"Choose FTP Options",
"This menu allows you to customize the behavior of FTP transfers\n\
for an FTP installation. To select \"Active\" or \"Passive\" mode\n\
FTP, see the Media menu.",
NULL,
NULL,
{ { "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ NULL } },
};
/* The main installation menu */
DMenu MenuInstall = {
DMenu MenuInstallCustom = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few\n\
"Choose Custom Installation Options",
"This is the custom installation menu. You may use this menu to specify\n\
details on the type of distribution you wish to have, where you wish\n\
to install it from and how you wish to allocate disk storage to FreeBSD.\n\n\
None of the items in this menu will actually modify the contents of\n\
your disk until you select the \"Install\" menu item (and even then, only\n\
after a final confirmation).",
to install it from and how you wish to allocate disk storage to FreeBSD.",
"Press F1 to read the installation guide",
"install.hlp",
{ { "Partition", "Allocate disk space for FreeBSD", /* P */
{ { "Partition", "Allocate disk space for FreeBSD",
DMENU_CALL, diskPartitionEditor, 0, 0 },
{ "Label", "Label allocated disk partitions", /* L */
{ "Label", "Label allocated disk partitions",
DMENU_CALL, diskLabelEditor, 0, 0 },
{ "Distributions", "Choose the type of installation you want", /* T */
{ "Distributions", "Choose the type of installation you want",
DMENU_SUBMENU, &MenuInstallType, 0, 0 },
{ "Media", "Choose the installation media type", /* M */
{ "Media", "Choose the installation media type",
DMENU_SUBMENU, &MenuMedia, 0, 0 },
{ "Options", "Go to Options submenu", /* O */
{ "Extract", "Extract distributions from selected media",
DMENU_CALL, distExtractAll, 0, 0 },
{ "Options", "Go to Options submenu",
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Commit", "Install FreeBSD onto your hard disk(s)", /* C */
{ "Commit", "Do Write/Make/Extract options in one step",
DMENU_CALL, installCommit, 0, 0 },
{ "Configure", "Do post-install configuration of FreeBSD", /* C */
{ "Configure", "Do post-install configuration of FreeBSD",
DMENU_SUBMENU, &MenuConfigure, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
@ -716,11 +680,11 @@ one, select \"standard\". If you would prefer your Master Boot\n\
Record to remain untouched, then select \"none\".",
"Press F1 to read the installation guide",
"install.hlp",
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")", /* B */
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")",
DMENU_SET_VALUE, &BootMgr, 0, 0, dmenuRadioCheck },
{ "Standard", "Use a standard MBR (no boot manager)", /* S */
{ "Standard", "Use a standard MBR (no boot manager)",
DMENU_SET_VALUE, &BootMgr, 1, 0, dmenuRadioCheck },
{ "None", "Leave the Master Boot Record untouched", /* N */
{ "None", "Leave the Master Boot Record untouched",
DMENU_SET_VALUE, &BootMgr, 2, 0, dmenuRadioCheck },
{ NULL } },
};

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.41.2.20 1995/06/10 09:14:53 jkh Exp $
* $Id: sysinstall.h,v 1.42.2.1 1995/07/21 10:54:06 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -111,7 +111,7 @@
#define VAR_INTERFACES "network_interfaces"
/* The help file for the TCP/IP setup screen */
#define TCP_HELPFILE "tcp.hlp"
#define TCP_HELPFILE "tcp"
/*** Types ***/
typedef unsigned int Boolean;
@ -251,6 +251,7 @@ extern DMenu MenuInitial; /* Initial installation menu */
extern DMenu MenuMBRType; /* Type of MBR to write on the disk */
extern DMenu MenuConfigure; /* Final configuration menu */
extern DMenu MenuDocumentation; /* Documentation menu */
extern DMenu MenuFTPOptions; /* FTP Installation options */
extern DMenu MenuOptions; /* Installation options */
extern DMenu MenuOptionsLanguage; /* Language options menu */
extern DMenu MenuMedia; /* Media type menu */
@ -266,7 +267,7 @@ extern DMenu MenuSysconsKeymap; /* System console keymap configuration menu */
extern DMenu MenuSysconsKeyrate; /* System console keyrate configuration menu */
extern DMenu MenuSysconsSaver; /* System console saver configuration menu */
extern DMenu MenuNetworking; /* Network configuration menu */
extern DMenu MenuInstall; /* Installation menu */
extern DMenu MenuInstallCustom; /* Custom Installation menu */
extern DMenu MenuInstallType; /* Installation type menu */
extern DMenu MenuDistributions; /* Distribution menu */
extern DMenu MenuDESDistributions; /* DES distribution menu */
@ -332,6 +333,7 @@ extern void dummyShutdown(Device *dev);
/* disks.c */
extern int diskPartitionEditor(char *unused);
extern int diskPartitionWrite(char *unused);
/* dist.c */
extern int distReset(char *str);
@ -345,7 +347,7 @@ extern int distSetEverything(char *str);
extern int distSetDES(char *str);
extern int distSetSrc(char *str);
extern int distSetXF86(char *str);
extern void distExtractAll(void);
extern int distExtractAll(char *str);
/* dmenu.c */
extern Boolean dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max);
@ -377,6 +379,8 @@ extern void globalsInit(void);
/* install.c */
extern int installCommit(char *str);
extern int installExpress(char *str);
extern Boolean installFilesystems(void);
/* lang.c */
extern void lang_set_Danish(char *str);
@ -393,6 +397,7 @@ extern void lang_set_Swedish(char *str);
/* label.c */
extern int diskLabelEditor(char *str);
extern int diskLabelCommit(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
@ -414,6 +419,8 @@ extern int mediaSetFloppy(char *str);
extern int mediaSetDOS(char *str);
extern int mediaSetTape(char *str);
extern int mediaSetFTP(char *str);
extern int mediaSetFTPActive(char *str);
extern int mediaSetFTPPassive(char *str);
extern int mediaSetUFS(char *str);
extern int mediaSetNFS(char *str);
extern Boolean mediaGetType(void);

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: system.c,v 1.43.2.14 1995/06/09 14:33:36 jkh Exp $
* $Id: system.c,v 1.44 1995/06/11 19:30:10 rgrimes Exp $
*
* Jordan Hubbard
*
@ -60,9 +60,6 @@ systemInitialize(int argc, char **argv)
setbuf(stderr, 0);
}
for(i = 0; i < 256; i++)
default_scrnmap[i] = i;
if (set_termcap() == -1) {
printf("Can't find terminal entry\n");
exit(-1);
@ -146,62 +143,15 @@ systemDisplayFile(char *file)
char *
systemHelpFile(char *file, char *buf)
{
char *cp;
static char oldfile[64]; /* Should be FILENAME_MAX but I don't feel like wasting that much space */
static char oldlang[64];
char extract[64], *default_lang = "en_US.ISO8859-1";
int i;
if (!file)
return NULL;
if ((cp = getenv("LANG")) == NULL)
cp = default_lang;
for (i = 0; i < 2; i++) {
snprintf(buf, FILENAME_MAX, "/stand/%s/%s", cp, file);
snprintf(buf, FILENAME_MAX, "/stand/help/%s.hlp", file);
if (file_readable(buf))
return buf;
if (*oldfile) {
int i;
i = unlink(oldfile);
if (isDebug())
msgDebug("Unlink(%s) = %d\n", oldfile, i);
i = rmdir(oldlang);
if (isDebug())
msgDebug("rmdir(%s) = %d\n", oldlang, i);
oldfile[0] = '\0';
}
snprintf(extract, 64, "%s/%s", cp, file);
vsystem("cd /stand && zcat help.tgz | cpio --format=tar -idv %s > /dev/null 2>&1", extract);
if (file_readable(buf)) {
strcpy(oldfile, buf);
sprintf(oldlang, "/stand/%s", cp);
return buf;
}
if (cp == default_lang)
break;
cp = default_lang;
}
return NULL;
}
void
systemChangeFont(const u_char font[])
{
if (OnVTY && ColorDisplay) {
if (ioctl(0, PIO_FONT8x16, font) < 0)
msgConfirm("Sorry! Unable to load font for %s", getenv("LANG"));
}
}
void
systemChangeLang(char *lang)
{
variable_set2("LANG", lang);
}
void
systemChangeTerminal(char *color, const u_char c_term[],
char *mono, const u_char m_term[])
@ -231,16 +181,6 @@ systemChangeTerminal(char *color, const u_char c_term[],
dialog_clear();
}
void
systemChangeScreenmap(const u_char newmap[])
{
if (OnVTY) {
if (ioctl(0, PIO_SCRNMAP, newmap) < 0)
msgConfirm("Sorry! Unable to load the screenmap for %s",
getenv("LANG"));
}
}
int
vsystem(char *fmt, ...)
{

View File

@ -5,7 +5,7 @@ CLEANFILES= makedevs.c rtermcap
.PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum
SRCS= attr.c cdrom.c command.c config.c decode.c devices.c disks.c dist.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c lang.c \
dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c \
main.c makedevs.c media.c menus.c misc.c msg.c network.c nfs.c system.c tape.c \
tcpip.c termcap.c ufs.c variable.c wizard.c
@ -22,12 +22,6 @@ LDADD+= -L${.CURDIR}/../libdisk -ldisk
DPADD= ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO} ${LIBUTIL}
.if exists(${.CURDIR}/../../share/syscons/scrnmaps/obj)
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/obj/koi8-r2cp866.mk
.else
MKSCRNMAP=${.CURDIR}/../../share/syscons/scrnmaps/koi8-r2cp866.mk
.endif
makedevs.c: Makefile rtermcap
rm -f makedevs.tmp
echo '#include <sys/types.h>' > makedevs.tmp
@ -52,22 +46,6 @@ makedevs.c: Makefile rtermcap
./rtermcap vt100 | \
file2c 'const char termcap_vt100[] = {' ',0};' \
>> makedevs.tmp
uudecode < ${.CURDIR}/../../share/syscons/fonts/iso-8x16.fnt \
&& file2c 'const u_char font_iso_8x16[] = {' '};' \
< iso-8x16 >> makedevs.tmp
rm iso-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp850-8x16.fnt \
&& file2c 'const u_char font_cp850_8x16[] = {' '};' \
< cp850-8x16 >> makedevs.tmp
rm cp850-8x16
uudecode < ${.CURDIR}/../../share/syscons/fonts/cp866-8x16.fnt \
&& file2c 'const u_char font_cp866_8x16[] = {' '};' \
< cp866-8x16 >> makedevs.tmp
rm cp866-8x16
${MKSCRNMAP} koi8-r2cp866 \
&& file2c 'const u_char koi8_r2cp866[] = {' '};' \
< koi8-r2cp866 >> makedevs.tmp
rm koi8-r2cp866
mv makedevs.tmp makedevs.c
rtermcap: ${.CURDIR}/rtermcap.c

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: cdrom.c,v 1.6.2.3 1995/06/05 12:03:44 jkh Exp $
* $Id: cdrom.c,v 1.7.2.2 1995/07/21 11:45:32 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -66,7 +66,7 @@ mediaInitCDROM(Device *dev)
struct iso_args args;
struct stat sb;
if (cdromMounted)
if (!RunningAsInit || cdromMounted)
return TRUE;
if (Mkdir("/cdrom", NULL))
@ -88,7 +88,7 @@ mediaInitCDROM(Device *dev)
*/
if (stat("/cdrom/dists", &sb)) {
if (errno == ENOENT) {
msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a 2.0.5 CDROM?\n");
msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a FreeBSD CDROM?\n");
return FALSE;
}
else {
@ -115,7 +115,7 @@ mediaGetCDROM(Device *dev, char *file, Attribs *dist_attrs)
void
mediaShutdownCDROM(Device *dev)
{
if (!cdromMounted)
if (!RunningAsInit || !cdromMounted)
return;
msgDebug("Unmounting /cdrom\n");
if (unmount("/cdrom", MNT_FORCE) != 0)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: command.c,v 1.10 1995/05/29 11:01:05 jkh Exp $
* $Id: command.c,v 1.11.4.1 1995/07/21 11:45:35 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -72,47 +72,8 @@ command_clear(void)
numCommands = 0;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
int i;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
/* First, look for the key already present and add a command to it */
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_SHELL;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = NULL;
++(commandStack[i]->ncmds);
return;
}
}
if (numCommands == MAX_CMDS)
msgFatal("More than %d commands accumulated??", MAX_CMDS);
/* If we fell to here, it's a new key */
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_SHELL;
commandStack[numCommands]->cmds[0].ptr = (void *)cmd;
commandStack[numCommands++]->cmds[0].data = NULL;
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
static void
addit(char *key, int type, void *cmd, void *data)
{
int i;
@ -120,10 +81,9 @@ command_func_add(char *key, commandFunc func, void *data)
for (i = 0; i < numCommands; i++) {
if (!strcmp(commandStack[i]->key, key)) {
if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
msgFatal("More than %d commands stacked up behind %s??",
MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = CMD_FUNCTION;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = (void *)func;
msgFatal("More than %d commands stacked up behind %s??", MAX_NUM_COMMANDS, key);
commandStack[i]->cmds[commandStack[i]->ncmds].type = type;
commandStack[i]->cmds[commandStack[i]->ncmds].ptr = cmd;
commandStack[i]->cmds[commandStack[i]->ncmds].data = data;
++(commandStack[i]->ncmds);
return;
@ -136,11 +96,33 @@ command_func_add(char *key, commandFunc func, void *data)
commandStack[numCommands] = safe_malloc(sizeof(Command));
strcpy(commandStack[numCommands]->key, key);
commandStack[numCommands]->ncmds = 1;
commandStack[numCommands]->cmds[0].type = CMD_FUNCTION;
commandStack[numCommands]->cmds[0].ptr = (void *)func;
commandStack[numCommands]->cmds[0].type = type;
commandStack[numCommands]->cmds[0].ptr = cmd;
commandStack[numCommands++]->cmds[0].data = data;
}
/* Add a shell command under a given key */
void
command_shell_add(char *key, char *fmt, ...)
{
va_list args;
char *cmd;
cmd = (char *)safe_malloc(1024);
va_start(args, fmt);
vsnprintf(cmd, 1024, fmt, args);
va_end(args);
addit(key, CMD_SHELL, cmd, NULL);
}
/* Add a shell command under a given key */
void
command_func_add(char *key, commandFunc func, void *data)
{
addit(key, CMD_FUNCTION, func, data);
}
/* arg to sort */
static int
sort_compare(const void *p1, const void *p2)

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: config.c,v 1.15.2.28 1995/06/10 08:24:28 jkh Exp $
* $Id: config.c,v 1.16.2.2 1995/07/21 11:45:36 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -114,7 +114,7 @@ fstype_short(Chunk *c1)
return "sw";
}
else if (c1->type == fat)
return "rw";
return "ro";
return "bog";
}
@ -362,12 +362,8 @@ configRoutedFlags(char *str)
int
configPackages(char *str)
{
int i, pstat;
pid_t pid;
Boolean onCD;
msgConfirm("Warning: This utility (pkg_manage) is still somewhat experimental\nand may not function for all packages. If it fails to load the\npackages you want, try running it directly once the system is up or use the\npkg_add, pkg_info and pkg_delete utilities directly.");
i = -1;
/* If we're running as init, we know that a CD in the drive is probably ours */
onCD = file_readable("/cdrom/packages");
if (!onCD && RunningAsInit) {
@ -376,19 +372,7 @@ configPackages(char *str)
onCD = TRUE;
}
}
if (!(pid = fork())) {
if (onCD && chdir("/cdrom/packages/All"))
exit(1);
execl("/usr/sbin/pkg_manage", "/usr/sbin/pkg_manage", (char *)NULL);
exit(1);
}
else {
pid = waitpid(pid, (int *)&pstat, 0);
i = (pid == -1) ? -1 : WEXITSTATUS(pstat);
}
if (i != 0 && isDebug())
msgDebug("pkg_manage returns status of %d\n", i);
/* XXX Construct some sort of menu here using an INDEX file from /cdrom/packages XXX */
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: disks.c,v 1.30.2.7 1995/06/08 09:48:31 jkh Exp $
* $Id: disks.c,v 1.31.2.2 1995/07/21 11:45:38 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -112,7 +112,7 @@ print_command_summary()
mvprintw(14, 0, "The following commands are supported (in upper or lower case):");
mvprintw(16, 0, "A = Use Entire Disk B = Bad Block Scan C = Create Partition");
mvprintw(17, 0, "D = Delete Partition G = Set BIOS Geometry S = Set Bootable");
mvprintw(18, 0, "U = Undo All Changes Q = Finish");
mvprintw(18, 0, "U = Undo All Changes Q = Finish W = Write Changes");
mvprintw(20, 0, "The currently selected partition is displayed in ");
attrset(A_REVERSE); addstr("reverse"); attrset(A_NORMAL); addstr(" video.");
mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to move.");
@ -206,12 +206,8 @@ diskPartition(Disk *d)
if (val && (size = strtol(val, &cp, 0)) > 0) {
if (*cp && toupper(*cp) == 'M')
size *= 2048;
Create_Chunk(d, chunk_info[current_chunk]->offset,
size,
freebsd,
3,
(chunk_info[current_chunk]->flags &
CHUNK_ALIGN));
Create_Chunk(d, chunk_info[current_chunk]->offset, size, freebsd, 3,
(chunk_info[current_chunk]->flags & CHUNK_ALIGN));
record_chunks(d);
}
}
@ -229,8 +225,7 @@ diskPartition(Disk *d)
case 'G': {
char *val, geometry[80];
snprintf(geometry, 80, "%lu/%lu/%lu",
d->bios_cyl, d->bios_hd, d->bios_sect);
snprintf(geometry, 80, "%lu/%lu/%lu", d->bios_cyl, d->bios_hd, d->bios_sect);
val = msgGetInput(geometry,
"Please specify the new geometry in cyl/hd/sect format.\nDon't forget to use the two slash (/) separator characters!\nIt's not possible to parse the field without them.");
if (val) {
@ -255,6 +250,11 @@ diskPartition(Disk *d)
break;
case 'W':
if (!msgYesNo("Are you sure you want to write this now? You do also\nhave the option of not modifying the disk until *all*\nconfiguration information has been entered, at which\npoint you can do it all at once. If you're unsure, then\nchoose No at this dialog."))
diskPartitionWrite(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\nNo seat belts whatsoever are provided!")) {
dialog_clear();
end_dialog();
@ -349,3 +349,75 @@ diskPartitionEditor(char *str)
}
return 0;
}
static u_char *
getBootMgr(void)
{
extern u_char mbr[], bteasy17[];
/* Figure out what kind of MBR the user wants */
if (dmenuOpenSimple(&MenuMBRType)) {
switch (BootMgr) {
case 0:
return bteasy17;
case 1:
return mbr;
case 2:
default:
break;
}
}
return NULL;
}
int
diskPartitionWrite(char *str)
{
extern u_char boot1[], boot2[];
u_char *mbrContents;
Device **devs;
int i;
mbrContents = getBootMgr();
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
if (!devs) {
msgConfirm("Unable to find any disks to write to??");
return 0;
}
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
if (!devs[i]->enabled)
continue;
/* Do it once so that it only goes on the first drive */
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: dist.c,v 1.35.2.35 1995/06/10 14:20:10 jkh Exp $
* $Id: dist.c,v 1.36.2.1 1995/07/21 10:53:48 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -104,6 +104,7 @@ static Distribution SrcDistTable[] = {
{ "slibexec", "/usr/src", &SrcDists, DIST_SRC_LIBEXEC, NULL },
{ "slkm", "/usr/src", &SrcDists, DIST_SRC_LKM, NULL },
{ "srelease", "/usr/src", &SrcDists, DIST_SRC_RELEASE, NULL },
{ "sbin", "/usr/src", &SrcDists, DIST_SRC_BIN, NULL },
{ "ssbin", "/usr/src", &SrcDists, DIST_SRC_SBIN, NULL },
{ "sshare", "/usr/src", &SrcDists, DIST_SRC_SHARE, NULL },
{ "ssys", "/usr/src", &SrcDists, DIST_SRC_SYS, NULL },
@ -414,14 +415,14 @@ distExtract(char *parent, Distribution *me)
return status;
}
void
distExtractAll(void)
int
distExtractAll(char *unused)
{
int retries = 0;
/* First try to initialize the state of things */
if (!(*mediaDevice->init)(mediaDevice))
return;
return 0;
/* Try for 3 times around the loop, then give up. */
while (Dists && ++retries < 3)
@ -433,4 +434,5 @@ distExtractAll(void)
/* Close up shop and go home */
(*mediaDevice->shutdown)(mediaDevice);
return 0;
}

View File

@ -46,6 +46,7 @@
#define DIST_SRC_SYS 0x0800
#define DIST_SRC_UBIN 0x1000
#define DIST_SRC_USBIN 0x2000
#define DIST_SRC_BIN 0x4000
#define DIST_SRC_ALL 0xFFFF
/* Subtypes for XFree86 distribution */

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: dos.c,v 1.5.2.4 1995/06/05 16:59:03 jkh Exp $
* $Id: dos.c,v 1.6.2.1 1995/07/21 10:53:52 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -63,7 +63,7 @@ mediaInitDOS(Device *dev)
{
struct msdosfs_args args;
if (DOSMounted)
if (!RunningAsInit || DOSMounted)
return TRUE;
if (Mkdir("/dos", NULL))
@ -97,7 +97,7 @@ mediaGetDOS(Device *dev, char *file, Attribs *dist_attrs)
void
mediaShutdownDOS(Device *dev)
{
if (!DOSMounted)
if (!RunningAsInit || !DOSMounted)
return;
msgDebug("Unmounting /dos\n");
if (unmount("/dos", MNT_FORCE) != 0)

View File

@ -0,0 +1,14 @@
This menu allows you to configure your system after the installation
process is complete. At the minimum, you should probably set the
system manager's password and the system time zone.
For extra goodies like bash, emacs, pascal, etc., you should look at
the Packages item in this menu. Currently, the Packages option is
only useful if you have a CDROM or an existing packages collection
somewhere in the file system hierarchy where the package management
tool can locate it. The automatic transfer of packages via FTP is not
yet supported!
For setting the timezone after the system is installed, type
``tzsetup''. For more information on the general system
configuration, see the ``/etc/sysconfig'' file.

View File

@ -0,0 +1,88 @@
An ``X-'' prefixed before a distribution set means that the XFree86
3.1.1u1 base distribution, libraries, manual pages, SVGA server and a
set of default fonts will be selected in addition to the set itself.
If you select such a set, you will also be presented with a set of
menus for customizing the selections to your desired X Window System
setup.
N.B. All references in this document to `complete source' mean the
complete source tree minus any legally encumbered cryptography code.
The current "canned" installations are as follows:
Developer: Base ("bin") distribution, man pages, dictionary
files, profiling libraries and the complete source tree.
Kern-Developer: As above, but with only kernel sources instead of
the complete source tree.
User: The base distribution, man pages, dictionary files and
the FreeBSD 1.x and 2.0 compatibility sets.
Minimal: Only the base distribution.
Everything: The base distribution, man pages, dictionary files,
profiling libraries, the FreeBSD 1.x and the FreeBSD 2.0
compatibility libraries, the complete source tree,
games and your choice of XFree86 distribution components.
N.B. Still no cryptocraphy source code!
Custom: Allows you to modify or create your distribution set on
a piece-by-piece basis.
Reset: Clear all currently selected distributions.
---
When using Custom, most of the sub-distribution choices are fairly
obvious, though two possible exceptions may be the "commerce" and
"xperimnt" distributions:
* The "commerce" directory, as its name implies, is devoted to
commercial offerings. This includes commercial products released
under special arrangement, limited functionality demos, shareware
products (you like it, you buy it), etc.
At the time of this writing, there are unfortunately not enough
commercial offerings to justify a fully split distribution set,
so each product is available both as a subdirectory and as part
of one large archive file. If you select "commerce" from the
distributions submenus then you'll get the big file containing
the entire collection copied to your hard disk. Don't do this
unless you've got at least 10MB to devote to it!
* The "xperimnt" directory contains, not surprisingly, experimental
offerings. Unfinished (or work-in-progress) features, special
purpose drivers and packages, strange proof-of-concept stuff,
it's a mixed bag! Select this item on a distribution menu and
you'll get the whole collection (between 10 and 30MB).
If you're installing from CDROM then all of the commercial and
"experimental" offerings are also easily available in their
individual subdirectories and can be copied to hard disk at
any time.
You may also notice that certain distributions, like "des" and "krb",
are marked "NOT FOR EXPORT!" This is because it's illegal to
export them from the United States (or any other country which
considers encryption technology to be on its restricted export
list). Since breaking this law only gets the _originating_ site
(US!) in trouble, please do not load these distributions from U.S.
servers!
A number of "foreign" servers do exist for the benefit of
non-U.S. sites, one of which is "skeleton.mikom.csir.co.za".
Please get all such export restricted software from there
if you are outside the U.S., thanks!

View File

@ -0,0 +1,29 @@
If you are going to actually install some portion of FreeBSD on a
drive then PLEASE BE VERY CERTAIN that the Geometry reported in the
Partition Editor (see Installation Menu) is the correct one for your
drive and controller combination!
IDE drives often have a certain geometry set during the PC BIOS setup,
or (in the case of larger IDE drives) have their geometry "remapped"
by either the IDE controller or a special boot-sector translation
utility such as that by OnTrack Systems. In these cases, knowing the
correct geometry gets even more complicated as it's not something you
can easily tell by looking at the drive or the PC BIOS setup. The
best way of verifying that your geometry is being correctly calculated
in such situations is to boot DOS (from the hard disk, not a floppy!)
and run the ``pfdisk'' utility provided in the tools/ subdirectory of
the FreeBSD CDROM or FTP site. It will report the geometry that DOS
sees, which is generally the correct one.
If you have no DOS partition sharing the disk at all, then you may
find that you have better luck with Geometry detection if you create a
very small DOS partition first, before installing FreeBSD. Once
FreeBSD is installed you can always delete it again if you need the
space.
It's actually not a bad idea (believe it or not) to have a small bootable
DOS partition on your FreeBSD machine anyway: Should the machine become
unstable or exhibit strange behavior at some point in the future (which
is not uncommon behavior for PC hardware!) you can then at least use
DOS for installing and running one of the commercially available system
diagnostic utilities.

View File

@ -0,0 +1,29 @@
You can install from the following types of media:
CDROM - requires one of the following supported CDROM drives:
Sony CDU 31/33A
Matushita/Panasonic "Sound Blaster" CDROM.
Mitsumi FX-001{A-D} (older non-IDE drives).
SCSI - Any standard SCSI CDROM drive hooked to
a supported controller (see Hardware Guide).
DOS - A DOS primary partition with the required FreeBSD
distribution files copied onto it (e.g. C:\FREEBSD\)
FS - Assuming a disk or partition with an existing
FreeBSD file system and distribution set on it,
get the distribution files from there.
Floppy - Get distribution files from one or more DOS formatted
floppies.
FTP - Get the distribution files from an anonymous ftp server
(you will be presented with a list).
NFS - Get the distribution files from an NFS server somewhere
(make sure that permissions on the server allow this!)
Tape - Extract distribution files from tape into a temporary
directory and install from there.

View File

@ -0,0 +1,54 @@
You can do network installations over 3 types of communications links:
Serial port: SLIP / PPP
Parallel port: PLIP (laplink cable)
Ethernet: A standard ethernet controller (includes some PCMCIA).
SLIP support is rather primitive and limited primarily to hard-wired
links, such as a serial cable running between a laptop computer and
another PC. The link must be hard-wired as the SLIP installation
doesn't currently offer a dialing capability; that facility is provided
with the PPP utility, which should be used in preference to SLIP
whenever possible. When you choose a serial port device, you'll
be given the option later to edit the slattach command before it's
run on the serial line. It is expected that you'll run slattach
(or some equivalent) on the other end of the link at this time and
bring up the line. FreeBSD will then install itself over the link
at speeds of up to 115.2K/baud (the recommended speed for a hardwired
cable).
If you're using a modem then PPP is almost certainly your only
choice. Make sure that you have your service provider's information
handy as you'll need to know it fairly early in the installation
process. You will need to know, at the minimum, your service
provider's IP address and possibly your own (though you can also leave
it blank and allow PPP to negotiate it with your ISP). You will also
need to know how to use the various "AT commands" to dial the ISP with
your particular brand of modem as the PPP dialer provides only a very
simple terminal emulator and has no "modem capabilities database".
If a hard-wired connection to another FreeBSD (2.0R or later) machine
is available, you might also consider installing over a "laplink"
parallel port cable. The data rate over the parallel port is much
higher than what is typically possible over a serial line with
speeds of up to 50k/sec.
Finally, for the fastest possible network installation, an ethernet
adaptor is always a good choice! FreeBSD supports most common PC
ethernet cards, a table of which is provided in the FreeBSD
Hardware Guide (see the Documentation menu on the boot floppy).
If you are using one of the supported PCMCIA ethernet cards, also be
sure that it's plugged in _before_ the laptop is powered on! FreeBSD
does not, unfortunately, currently support "hot insertion" of PCMCIA
cards.
You will also need to know your IP address on the network, the "netmask"
value for your address class, and the name of your machine.
Your system administrator can tell you which values to use for your
particular network setup. If you will be referring to other hosts by
name rather than IP address, you'll also need a name server and
possibly the address of a gateway (if you're using PPP, it's your
provider's IP address) to use in talking to it. If you do not know
the answers to all or most of these questions, then you should
really probably talk to your system administrator _first_ before
trying this type of installation!

View File

@ -0,0 +1,95 @@
The following options may be set from this screen:
NFS Secure: NFS server talks only on a secure port
This is most commonly used when talking to Sun workstations, which
will not talk NFS over "non priviledged" ports.
NFS Slow: User is using a slow PC or ethernet card
Use this option if you have a slow PC (386) or an ethernet card
with poor performance being "fed" by NFS on a higher-performance
workstation. This will throttle the workstation back to prevent
the PC from becoming swamped with data.
FTP Abort: On transfer failure, abort
This is pretty self-explanatory. If you're transfering from a
host that drops the connection or cannot provide a file, abort
the installation of that piece.
FTP Reselect: On transfer failure, ask for another host
This is more useful to someone doing an interactive installation.
If the current host stops working, ask for a new ftp server to
resume the installation from. The install will attempt to pick
up from where it left off on the other server, if at all possible.
FTP Active: Use "active mode" for standard FTP
For all FTP transfers, use "Active" mode. This will not work
through firewalls, but will often work with older ftp servers
that do not support passive mode. If your connection hangs
with passive mode (the default), try active!
FTP Passive: Use "passive mode" for firewalled FTP
For all FTP transfers, use "Passive" mode. This allows the user
to pass through firewalls that do not allow incoming connections
on random port addresses.
NOTE: ACTIVE AND PASSIVE MODES ARE NOT THE SAME AS A `PROXY'
CONNECTION, WHERE A PROXY FTP SERVER IS LISTENING ON A DIFFERENT
PORT!
In such situations, you should specify the URL as something like:
ftp://foo.bar.com:1234/pub/FreeBSD
Where "1234" is the port number of the proxy ftp server.
Debugging: Turn on the extra debugging flag
This turns on a lot of extra noise over on the second screen
(ALT-F2 to see it, ALT-F1 to switch back). If your installation
should fail for any reason, PLEASE turn this flag on when
attempting to reproduce the problem. It will provide a lot of
extra debugging at the failure point and may be very helpful to
the developers in tracking such problems down!
Yes To All: Assume "Yes" answers to all non-critical dialogs
This flag should be used with caution. It will essentially
decide NOT to ask the user about any "boundry" conditions that
might not constitute actual errors but may be warnings indicative
of other problems.
FTP userpass: Specify username and password instead of anonymous.
By default, the installation attempts to log in as the
anonymous user. If you wish to log in as someone else,
specify the username and password with this option.
Clear: Clear All Option Flags
Reset all option flags back to their default values.
----
Some of these items, like "FTP Active" or "FTP Passive", are actually
mutually-exclusive even though you can turn all of them on or off at
once. This is a limitation of the menuing system, and is compensated
for by checks that ensure that the various flags are not in conflict.
If you re-enter the Options menu again after leaving it, you'll see
the settings it's actually using after checking for any possible
conflicts.

View File

@ -0,0 +1,122 @@
This is the FreeBSD DiskLabel Editor.
You should use this editor to create at least the following
filesystems:
Name Purpose Min Size? Optional?
---- ------- --------- ---------
/ Root filesystem 20MB No
swap Swap space 2 * MEM No
/usr System & user files 80MB or more Yes
Note: If you do not create a /usr filesystem then your / filesystem
will need to be bigger - at least 100MB. This is not recommended as
any media errors that may occur during disk I/O to user files will
corrupt the filesystem containing vital system files as well. It is
for this reason that / is generally kept on its own filesystem, where
it's basically considered "read only" by the system and hence a good
deal safer.
Swap space is a little tricker, and the rule of "2 * MEM" is simply a
best-guess approximation and not necessarily accurate for your
intended usage of the system. If you intend to use the system heavily
in a server or multi-user application, you may be well advised to
increase this size. You may also create swap space on multiple drives
for a larger "total" swap and this is, in fact, recommended if you
have multiple, fast drives for which such load-balancing can only help
overall I/O performance.
The /usr filesystem should be sized according to what kind of
distributions you're trying to load and how many packages you intend
to install in locations like /usr/local. You can also make /usr/local
a separate filesystem if you don't want to risk filling up your /usr
by mistake.
Another useful filesystem to create is /var, which contains mail, news
printer spool files and other temporary items. It is a popular
candidate for a separate paritition and should be sized according to
your estimates of the amount of mail, news or spooled print jobs that
may be stored there.
WARNING: If you do not create a separate filesystem for /var, space
for such files will be allocated out of the root (/) filesystem
instead. You may therefore wish to make the / partition bigger if you
expect a lot of mail or news and do not want to make /var its own
partition.
If you're new to this installation, you should also first understand
how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
works. It's not very hard to grasp. A "fully qualified slice name",
that is the name of the file we open in /dev to talk to the slice, is
optionally broken into 3 parts:
First you have the disk name. Assume we have two SCSI
drives in our system, which gives us `sd0' and `sd1'.
Next you have the "Slice" (or "FDISK Partition") number,
as seen in the Partition Editor. Assume that our sd0 contains
two slices, a FreeBSD slice and a DOS slice. This gives us
sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
to FreeBSD, so we have only one slice there: sd1s1.
Next, if a slice is a FreeBSD slice, you have a number of
(confusingly named) "partitions" you can put inside of it.
These FreeBSD partitions are where various filesystems or swap
areas live, and using our hypothetical two-SCSI-disk machine
again, we might have something like the following layout on sd0:
Name Mountpoint
---- ----------
sd0s1a /
sd0s1b <swap space>
sd0s1e /usr
Because of historical convention, there is also a short-cut,
or "compatibility slice", that is maintained for easy access
to the first FreeBSD slice on a disk for those programs which
still don't know how to deal with the new slice scheme.
The compatibility slice names for our filesystem above would
look like:
Name Mountpoint
---- ----------
sd0a /
sd0b <swap space>
sd0e /usr
FreeBSD automatically maps the compatibility slice to the first
FreeBSD slice it finds (in this case, sd0s1). You may have multiple
FreeBSD slices on a drive, but only the first one may be the
compatibility slice!
The compatibility slice will eventually be phased out, but
it is still important right now for several reasons:
1. Some programs, as mentioned before, still don't work
with the slice paradigm and need time to catch up.
2. The FreeBSD boot blocks are unable to look for
a root file system in anything but a compatibility
slice right now. This means that our root will always
show up on "sd0a" in the above scenario, even though
it really lives over on sd0s1a and would otherwise be
referred to by its full slice name.
Once you understand all this, then the label editor becomes fairly
simple. You're either carving up the FreeBSD slices displayed at the
top of the screen into smaller pieces (displayed in the middle of the
screen) and then putting FreeBSD file systems on them, Or you're just
mounting existing partitions/slices into your filesystem hierarchy;
this editor lets you do both. Since a DOS partition is also just
another slice as far as FreeBSD is concerned, you can mount one into
in your filesystem hierarchy just as easily with this editor. For
FreeBSD partitions you can also toggle the "newfs" state so that
the partitions are either (re)created from scratch or simply checked
and mounted (the contents are preserved).
When you're done, type `Q' to exit.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the FDISK Partition Editor.

View File

@ -0,0 +1,28 @@
This is the Main Partition (or ``Slice'') Editor.
Possible commands are printed at the bottom, and the Master Boot Record
contents are at the top. You can move up and down with the arrow keys
and can (C)reate a new partition whenever the "bar" is over a partition
whose type is set to "unused".
The flags field has the following legend:
'=' -- Partition is properly aligned.
'>' -- The partition doesn't end before cylinder 1024
'R' -- Has been marked as containing the root (/) filesystem
'B' -- Partition employs BAD144 bad-spot handling
'C' -- This is the FreeBSD 2.0-compatibility partition (default)
'A' -- This partition is marked active.
If you select a partition for Bad144 handling, it will be scanned
for bad blocks before any new filesystems are made on it.
If no partition is marked Active, you will need to either install
a Boot Manager (the option for which will be presented later in the
installation) or set one Active before leaving this screen.
To leave this screen, type `Q'.
No actual changes will be made to the disk until you (C)ommit from the
Install menu! You're working with what is essentially a copy of
the disk label(s), both here and in the Label Editor.

View File

@ -0,0 +1,27 @@
This screen allows you to set up your general network parameters
(hostname, domain name, DNS server, etc) as well as the settings for a
given interface (which was selected from the menu before this screen).
You can move through the fields with the TAB, BACK-TAB and RETURN
keys. To edit a field, use DELETE or BACKSPACE. You may also use ^A
(control-A) to go to the beginning of the line, ^E (control-E) to go
to the end, ^F (control-F) to go forward a character, ^B (control-B)
to go backward one character, ^D (control-D) to delete the character
under the cursor and ^K (control-K) to delete to the end of the line.
Basically, the standard EMACS motion sequences.
The ``Extra options to ifconfig'' is kind of special (read: a hack :-).
You can use it for specifying the foreign side of a PLIP or SLIP line
(simply type the foreign address in) as well as selecting a given
"link" on an ethernet card that has more than one (e.g. AUI, 10BT,
10B2, etc). The following links are recognised:
link0 - AUI * highest precedence
link1 - BNC
link2 - UTP * lowest precedence
That is to say that you can enter one of "link0", "link1" or "link2"
into the `Extra options' field to select a different link.
When you're done with this form, select OK.

View File

@ -0,0 +1,54 @@
HOW TO USE THIS SYSTEM
======================
KEY ACTION
--- ------
UP ARROW Move to previous item (or up, in a text field).
DOWN ARROW Move to next item (or down, in a text field).
TAB Move to next item or group.
RIGHT ARROW Move to next item or group (same as TAB).
SHIFT-TAB Move to previous item or group.
LEFT ARROW Move to previous item or group (same as SHIFT-TAB).
RETURN Select item.
PAGE UP In text boxes, scrolls up one page.
PAGE DOWN In text boxes, scrolls down one page.
SPACE In "radio" or multiple choice menus, toggle the current item.
F1 Help (in screens that provide it).
If you also see small "^(-)" or "v(+)" symbols at the edges of a menu,
it means that there are more items above or below the current one that
aren't being shown (due to insufficient screen space). Using the
up/down arrow keys will cause the menu to scroll. When a symbol
disappears, it means you are at the top (or bottom) of the menu.
In text fields, the amount of text above the current point will be
displayed as a percentage in the lower right corner. 100% means
you're at the bottom of the field.
Selecting OK in a menu will confirm whatever action it's controlling.
Selecting Cancel will cancel the operation and generally return you to
the previous menu.
SPECIAL FEATURES:
=================
It is also possible to select a menu item by typing the first
character of its name, if unique. Such "accelerator" characters will
be specially highlighted in the item name.
The console driver also contains a scroll-back buffer for reviewing
things that may have scrolled off the screen. To use scroll-back,
press the "Scroll Lock" key on your keyboard and use the arrow or
Page Up/Page Down keys to move through the saved text. To leave
scroll-back mode, press the Scroll Lock key again. This feature
is most useful for dealing with sub-shells or other "wizard modes"
that don't use menus.
Once the system is fully installed and running "multi-user", you will
also find that you have multiple "virtual consoles" and can use them to
have several active sessions at once. Use ALT-F<n> to switch between
them, where `F<n>' is the function key corresponding to the screen you
wish to see. By default, the system comes with 3 virtual consoles enabled.
You can create more by editing the /etc/ttys file, once the system is up,
for a maximum of 12.

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: install.c,v 1.70.2.41 1995/06/10 07:58:37 jkh Exp $
* $Id: install.c,v 1.71.2.1 1995/07/21 10:53:54 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -47,11 +47,11 @@
#include <sys/ioctl.h>
#include <sys/fcntl.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <unistd.h>
Boolean SystemWasInstalled = FALSE;
static Boolean make_filesystems(void);
static Boolean copy_self(void);
static Boolean root_extract(void);
@ -122,7 +122,7 @@ checkLabels(void)
return FALSE;
}
else if (rootdev->name[strlen(rootdev->name) - 1] != 'a') {
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot block code. Please correct this and\ntry again.");
msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot code. Please correct this and\ntry again.");
return FALSE;
}
if (!swapdev) {
@ -137,11 +137,6 @@ checkLabels(void)
static Boolean
installInitial(void)
{
extern u_char boot1[], boot2[];
extern u_char mbr[], bteasy17[];
u_char *mbrContents;
Device **devs;
int i;
static Boolean alreadyDone = FALSE;
if (alreadyDone)
@ -158,67 +153,22 @@ installInitial(void)
if (!checkLabels())
return FALSE;
/* Figure out what kind of MBR the user wants */
if (!dmenuOpenSimple(&MenuMBRType))
return FALSE;
switch (BootMgr) {
case 0:
mbrContents = bteasy17;
break;
case 1:
mbrContents = mbr;
break;
case 2:
default:
mbrContents = NULL;
}
/* If we refuse to proceed, bail. */
if (msgYesNo("Last Chance! Are you SURE you want continue the installation?\n\nIf you're running this on an existing system, we STRONGLY\nencourage you to make proper backups before proceeding.\nWe take no responsibility for lost disk contents!"))
return FALSE;
devs = deviceFind(NULL, DEVICE_TYPE_DISK);
for (i = 0; devs[i]; i++) {
Chunk *c1;
Disk *d = (Disk *)devs[i]->private;
(void)diskPartitionWrite(NULL);
if (!devs[i]->enabled)
continue;
if (mbrContents) {
Set_Boot_Mgr(d, mbrContents);
mbrContents = NULL;
}
Set_Boot_Blocks(d, boot1, boot2);
msgNotify("Writing partition information to drive %s", d->name);
Write_Disk(d);
/* Now scan for bad blocks, if necessary */
for (c1 = d->chunks->part; c1; c1 = c1->next) {
if (c1->flags & CHUNK_BAD144) {
int ret;
msgNotify("Running bad block scan on partition %s", c1->name);
ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
if (ret)
msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
if (ret)
msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
}
}
}
if (!make_filesystems()) {
if (!installFilesystems()) {
msgConfirm("Couldn't make filesystems properly. Aborting.");
return 0;
return FALSE;
}
if (!copy_self()) {
msgConfirm("Couldn't clone the boot floppy onto the root file system.\nAborting.");
return 0;
return FALSE;
}
dialog_clear();
chroot("/mnt");
chdir("/");
@ -247,11 +197,50 @@ installInitial(void)
return TRUE;
}
int
installExpress(char *str)
{
msgConfirm("In the next menu, you will need to set up a DOS-style\n"
"partitioning scheme for your hard disk. If you don't\n"
"want to do anything special, just type `A' to use the\n"
"whole disk and then `Q' to quit.");
diskPartitionEditor("express");
msgConfirm("Next, you need to lay out BSD partitions inside of the\n"
"DOS-style partition just created. If you don't want to\n"
"do anything special, just type `A' to use the default\n"
"partitioning scheme and then `Q' to quit.");
diskLabelEditor("express");
msgConfirm("Now it is time to select an installation subset. There\n"
"are two basic configurations: Developer and Router. The\n"
"Developer subset includes sources, documentation, and\n"
"binaries for almost everything. The Router subset\n"
"includes the same binaries and documentation, but no\n"
"sources. You can also install absolutely everything,\n"
"or select a custom software set.");
while(!Dists) {
dmenuOpenSimple(&MenuInstallType);
}
msgConfirm("Finally, you must specify an installation medium.");
dmenuOpenSimple(&MenuMedia);
installCommit("express");
dmenuOpenSimple(&MenuConfigure);
return 0;
}
/*
* What happens when we select "Install". This is broken into a 3 stage installation so that
* the user can do a full installation but come back here again to load more distributions,
* perhaps from a different media type. This would allow, for example, the user to load the
* majority of the system from CDROM and then use ftp to load just the DES dist.
* What happens when we select "Commit" in the custom installation menu.
*
* This is broken into multiple stages so that the user can do a full installation but come
* back here again to load more distributions, perhaps from a different media type.
* This would allow, for example, the user to load the majority of the system from CDROM
* and then use ftp to load just the DES dist.
*/
int
installCommit(char *str)
@ -263,6 +252,7 @@ installCommit(char *str)
msgConfirm("You haven't told me what distributions to load yet!\nPlease select a distribution from the Distributions menu.");
return 0;
}
if (!mediaVerify())
return 0;
@ -271,7 +261,7 @@ installCommit(char *str)
return 0;
configFstab();
}
if (!SystemWasInstalled && !root_extract()) {
if (RunningAsInit && !SystemWasInstalled && !root_extract()) {
msgConfirm("Failed to load the ROOT distribution. Please correct\nthis problem and try again.");
return 0;
}
@ -280,7 +270,7 @@ installCommit(char *str)
if (Dists & DIST_BIN)
SystemWasInstalled = FALSE;
distExtractAll();
(void)distExtractAll(NULL);
if (!SystemWasInstalled && access("/kernel", R_OK)) {
if (vsystem("ln -f /kernel.GENERIC /kernel")) {
@ -290,7 +280,7 @@ installCommit(char *str)
}
/* Resurrect /dev after bin distribution screws it up */
if (!SystemWasInstalled) {
if (RunningAsInit && !SystemWasInstalled) {
msgNotify("Remaking all devices.. Please wait!");
if (vsystem("cd /dev; sh MAKEDEV all"))
msgConfirm("MAKEDEV returned non-zero status");
@ -319,23 +309,26 @@ installCommit(char *str)
/* XXX Do all the last ugly work-arounds here which we'll try and excise someday right?? XXX */
/* BOGON #1: XFree86 extracting /usr/X11R6 with root-only perms */
if (file_readable("/usr/X11R6"))
(void)system("chmod 755 /usr/X11R6");
chmod("/usr/X11R6", 0755);
/* BOGON #2: We leave /etc in a bad state */
(void)system("chmod 755 /etc");
chmod("/etc", 0755);
dialog_clear();
/* We get a NULL value for str if run from installExpress(), in which case we don't want to print the following */
if (str) {
if (Dists)
msgConfirm("Installation completed with some errors. You may wish\nto scroll through the debugging messages on ALT-F2 with the scroll-lock\nfeature. Press [ENTER] to return to the installation menu.");
else
msgConfirm("Installation completed successfully, now press [ENTER] to return\nto the main menu. If you have any network devices you have not yet\nconfigured, see the Interface configuration item on the\nConfiguration menu.");
}
SystemWasInstalled = TRUE;
return 0;
}
/* Go newfs and/or mount all the filesystems we've been asked to */
static Boolean
make_filesystems(void)
Boolean
installFilesystems(void)
{
int i;
Disk *disk;

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: label.c,v 1.31.2.4 1995/06/07 06:38:11 jkh Exp $
* $Id: label.c,v 1.32.2.2 1995/07/21 11:45:39 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -44,6 +44,10 @@
#include "sysinstall.h"
#include <ctype.h>
#include <sys/disklabel.h>
#include <sys/param.h>
#undef TRUE
#undef FALSE
#include <sys/sysctl.h>
/*
* Everything to do with editing the contents of disk labels.
@ -178,7 +182,7 @@ new_part(char *mpoint, Boolean newfs, u_long size)
ret = (PartInfo *)safe_malloc(sizeof(PartInfo));
strncpy(ret->mountpoint, mpoint, FILENAME_MAX);
strcpy(ret->newfs_cmd, "newfs");
strcpy(ret->newfs_cmd, "newfs -b 8192 -f 2048");
ret->newfs = newfs;
if (!size)
return ret;
@ -352,21 +356,20 @@ print_label_chunks(void)
memcpy(onestr + PART_PART_COL, label_chunk_info[i].c->name, strlen(label_chunk_info[i].c->name));
/* If it's a filesystem, display the mountpoint */
if (label_chunk_info[i].c->private
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT)) {
&& (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT))
mountpoint = ((PartInfo *)label_chunk_info[i].c->private)->mountpoint;
else
mountpoint = "<none>";
/* Now display the newfs field */
if (label_chunk_info[i].type == PART_FAT)
newfs = "DOS";
else if (label_chunk_info[i].c->private && label_chunk_info[i].type == PART_FILESYSTEM)
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "UFS Y" : "UFS N";
else if (label_chunk_info[i].type == PART_SWAP)
newfs = "SWAP";
else
newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "Y" : "N";
}
else if (label_chunk_info[i].type == PART_SWAP) {
mountpoint = "swap";
newfs = " ";
}
else {
mountpoint = "<NONE>";
newfs = "*";
}
for (j = 0; j < MAX_MOUNT_NAME && mountpoint[j]; j++)
onestr[PART_MOUNT_COL + j] = mountpoint[j];
snprintf(num, 10, "%4ldMB", label_chunk_info[i].c->size ? label_chunk_info[i].c->size / ONE_MEG : 0);
@ -385,22 +388,23 @@ static void
print_command_summary()
{
mvprintw(17, 0, "The following commands are valid here (upper or lower case):");
mvprintw(19, 0, "C = Create New D = Delete M = Set Mountpoint");
mvprintw(20, 0, "N = Newfs Options T = Toggle Newfs U = Undo Q = Finish");
mvprintw(21, 0, "The default target will be displayed in ");
mvprintw(18, 0, "C = Create D = Delete M = Mount W = Write");
mvprintw(19, 0, "N = Newfs Opts T = Newfs Toggle U = Undo Q = Finish");
mvprintw(20, 0, "A = Auto Defaults for all!");
mvprintw(22, 0, "The default target will be displayed in ");
attrset(A_REVERSE);
addstr("reverse");
attrset(A_NORMAL);
addstr(" video.");
mvprintw(22, 0, "Use F1 or ? to get more help, arrow keys to move.");
mvprintw(23, 0, "Use F1 or ? to get more help, arrow keys to move.");
move(0, 0);
}
int
diskLabelEditor(char *str)
{
int sz, i, key = 0;
int sz, key = 0;
Boolean labeling;
char *msg = NULL;
PartInfo *p, *oldp;
@ -428,6 +432,7 @@ diskLabelEditor(char *str)
refresh();
key = toupper(getch());
switch (key) {
int i, cnt;
case '\014': /* ^L */
continue;
@ -465,6 +470,87 @@ diskLabelEditor(char *str)
systemDisplayFile("partition.hlp");
break;
case 'A':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
break;
}
cnt = i = 0;
while (label_chunk_info[i].c)
if (label_chunk_info[i++].type != PART_SLICE)
cnt++;
if (cnt == (CHUNK_COLUMN_MAX * 2) + 4) {
msgConfirm("Sorry, I can't fit any more partitions on the screen! You can get around\nthis limitation by partitioning your disks individually rather than all\nat once. This will be fixed just as soon as we get a scrolling partition\nbox written. Sorry for the inconvenience!");
break;
}
sz = space_free(label_chunk_info[here].c);
if (sz <= FS_MIN_SIZE) {
msg = "Not enough space to create additional FreeBSD partition";
break;
}
{
struct chunk *tmp;
int mib[2];
int physmem;
size_t size;
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
32 * ONE_MEG, part, FS_BSDFFS,
CHUNK_IS_ROOT);
if (!tmp) {
msgConfirm("Unable to create the root partition. Too big?");
break;
}
tmp->private = new_part("/", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
mib[0] = CTL_HW;
mib[1] = HW_PHYSMEM;
size = sizeof physmem;
sysctl(mib, 2, &physmem, &size, (void *)0, (size_t)0);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
physmem * 2 / 512, part, FS_SWAP, 0);
if (!tmp) {
msgConfirm("Unable to create the swap partition. Too big?");
break;
}
tmp->private = 0;
tmp->private_free = safe_free;
record_label_chunks();
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
16 * ONE_MEG, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /var partition. Too big?");
break;
}
tmp->private = new_part("/var", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
sz = space_free(label_chunk_info[here].c);
tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
label_chunk_info[here].c,
sz, part, FS_BSDFFS, 0);
if (!tmp) {
msgConfirm("Unable to create the /usr partition. Too big?");
break;
}
tmp->private = new_part("/usr", TRUE, tmp->size);
tmp->private_free = safe_free;
record_label_chunks();
}
break;
case 'C':
if (label_chunk_info[here].type != PART_SLICE) {
msg = "You can only do this in a master partition (see top of screen)";
@ -639,6 +725,11 @@ diskLabelEditor(char *str)
break;
case 'W':
if (!msgYesNo("Are you sure that you wish to make and mount all filesystems\nat this time? You also have the option of doing it later in\none final 'commit' operation, and if you're at all unsure as\nto which option to chose, then chose No."))
diskLabelCommit(NULL);
break;
case '|':
if (!msgYesNo("Are you sure you want to go into Wizard mode?\n\nThis is an entirely undocumented feature which you are not\nexpected to understand!")) {
int i;
Device **devs;
@ -678,5 +769,12 @@ diskLabelEditor(char *str)
return 0;
}
int
diskLabelCommit(char *str)
{
if (!getenv(DISK_LABELLED))
msgConfirm("You must assign disk labels before this option can be used.");
else if (!installFilesystems())
msgConfirm("Failed to make/mount all filesystems. Please correct\nwhatever went wrong and try again.");
return 0;
}

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.12.2.4 1995/06/05 15:17:12 jkh Exp $
* $Id: main.c,v 1.13 1995/06/11 19:30:02 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -64,9 +64,6 @@ main(int argc, char **argv)
/* Probe for all relevant devices on the system */
deviceGetAll();
/* Default to English */
lang_set_English(NULL);
/* Default to passive mode ftp since it's the only thing we currently support :-( */
OptFlags |= OPT_FTP_PASSIVE;

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: media.c,v 1.24.2.11 1995/06/10 01:42:19 jkh Exp $
* $Id: media.c,v 1.25.2.1 1995/07/21 10:53:58 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -269,6 +269,20 @@ mediaSetFTP(char *str)
return 1;
}
int
mediaSetFTPActive(char *str)
{
OptFlags &= OPT_FTP_ACTIVE;
return mediaSetFTP(str);
}
int
mediaSetFTPPassive(char *str)
{
OptFlags &= OPT_FTP_PASSIVE;
return mediaSetFTP(str);
}
int
mediaSetUFS(char *str)
{

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: menus.c,v 1.41.2.39 1995/06/10 19:38:27 jkh Exp $
* $Id: menus.c,v 1.42.2.3 1995/07/27 01:37:18 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -53,7 +53,7 @@
/* The initial installation menu */
DMenu MenuInitial = {
DMENU_NORMAL_TYPE,
"Welcome to FreeBSD 2.0.5!", /* title */
"Welcome to FreeBSD RELEASE_NAME!", /* title */
"This is the main menu of the FreeBSD installation system. Please\n\
select one of the options below by using the arrow keys or typing the\n\
first character of the option name you're interested in. Invoke an\n\
@ -64,12 +64,14 @@ option by pressing [ENTER].", /* prompt */
DMENU_DISPLAY_FILE, "usage.hlp", 0, 0 },
{ "Doc", "More detailed documentation on FreeBSD.", /* D */
DMENU_SUBMENU, &MenuDocumentation, 0, 0 },
{ "Language", "Set your preferred language.", /* L */
DMENU_SUBMENU, &MenuOptionsLanguage, 0, 0 },
{ "Options", "Select various options for this utility.", /* O */
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Proceed", "Go to the installation menu", /* P */
DMENU_SUBMENU, &MenuInstall, 0, 0 },
{ "Custom", "Begin a custom installation", /* C */
DMENU_SUBMENU, &MenuInstallCustom, 0, 0 },
{ "Express", "Begin a quick installation", /* E */
DMENU_CALL, &installExpress, 0, 0 },
{ "Shell", "Go to a shell for debugging or repair",
DMENU_SYSTEM_COMMAND, "sh", 0, 0 },
{ "Quit", "Exit this menu (and the installation)", /* Q */
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
@ -78,74 +80,34 @@ option by pressing [ENTER].", /* prompt */
/* The main documentation menu */
DMenu MenuDocumentation = {
DMENU_NORMAL_TYPE,
"Documentation for FreeBSD 2.0.5", /* Title */
"Documentation for FreeBSD RELEASE_NAME", /* Title */
"If you are at all unsure about the configuration of your hardware\n\
or are looking to build a system specifically for FreeBSD, read the\n\
Hardware guide! New users should also read the Install document for\n\
a step-by-step tutorial on installing FreeBSD. For general information,\n\
consult the README file.",
"Confused? Press F1 for help.",
"usage.hlp", /* help file */
{ { "README", "Read this for a general description of FreeBSD", /* R */
"usage.hlp",
{ { "README", "Read this for a general description of FreeBSD",
DMENU_DISPLAY_FILE, "README", 0, 0 },
{ "Hardware", "The FreeBSD survival guide for PC hardware.", /* H */
{ "Hardware", "The FreeBSD survival guide for PC hardware.",
DMENU_DISPLAY_FILE, "hardware.hlp", 0, 0 },
{ "Install", "A step-by-step guide to installing FreeBSD.", /* I */
{ "Install", "A step-by-step guide to installing FreeBSD.",
DMENU_DISPLAY_FILE, "install.hlp", 0, 0 },
{ "Copyright", "The FreeBSD Copyright notices.", /* C */
{ "Copyright", "The FreeBSD Copyright notices.",
DMENU_DISPLAY_FILE, "COPYRIGHT", 0, 0 },
{ "Release", "The release notes for this version of FreeBSD.", /* R */
{ "Release", "The release notes for this version of FreeBSD.",
DMENU_DISPLAY_FILE, "RELNOTES", 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
/*
* The language selection menu.
*/
DMenu MenuOptionsLanguage = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Natural language selection", /* title */
"Please specify the language you would like to use by default.\n\n\
While almost all of the system's documentation is still written\n\
in english (and may never be translated), there are a few guides\n\
and types of system documentation that may be written in your\n\
preferred language. When such are found, they will be used instead\n\
of the english versions. This feature is nonetheless considered\n\
to be in experimental status at this time.", /* prompt */
"Press F1 for more information", /* help line */
"language.hlp", /* help file */
{ { "Danish", "Danish language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Danish, 0, 0 },
{ "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */
DMENU_CALL, lang_set_Dutch, 0, 0 },
{ "English", "English language (system default)", /* E */
DMENU_CALL, lang_set_English, 0, 0 },
{ "French", "French language and character set (ISO-8859-1)", /* F */
DMENU_CALL, lang_set_French, 0, 0 },
{ "German", "German language and character set (ISO-8859-1)", /* G */
DMENU_CALL, lang_set_German, 0, 0 },
{ "Italian", "Italian language and character set (ISO-8859-1)", /* I */
DMENU_CALL, lang_set_Italian, 0, 0 },
{ "Japanese", "Japanese language and default character set (romaji)", /* J */
DMENU_CALL, lang_set_Japanese, 0, 0 },
{ "Norwegian", "Norwegian language and character set (ISO-8859-1)", /* N */
DMENU_CALL, lang_set_Norwegian, 0, 0},
{ "Russian", "Russian language and character set (KOI8-R)", /* R */
DMENU_CALL, lang_set_Russian, 0, 0 },
{ "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Spanish, 0, 0 },
{ "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */
DMENU_CALL, lang_set_Swedish, 0, 0 },
{ NULL } },
};
DMenu MenuMediaCDROM = {
DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
"Choose a CDROM type",
"FreeBSD can be installed directly from a CDROM containing a valid\n\
FreeBSD 2.0.5 distribution. If you are seeing this menu it is because\n\
FreeBSD RELEASE_NAME distribution. If you are seeing this menu it is because\n\
more than one CDROM drive was found on your system. Please select one\n\
of the following CDROM drives as your installation drive.",
"Press F1 to read the installation guide",
@ -193,69 +155,69 @@ To specify a URL not in this list, chose \"other\".",
"Select a site that's close!",
"install.hlp",
{ { "Primary Site", "ftp.freebsd.org",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Secondary Site", "freefall.cdrom.com",
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Other", "Specify some other ftp site by URL",
DMENU_SET_VARIABLE, "ftp=other", 0, 0 },
{ "Australia", "ftp.physics.usyd.edu.au",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Finland", "nic.funet.fi",
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "France", "ftp.ibp.fr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany", "ftp.fb9dv.uni-duisburg.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #2", "gil.physik.rwth-aachen.de",
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Germany #3", "ftp.uni-paderborn.de",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/RELEASE_NAME", 0, 0 },
{ "Hong Kong", "ftp.hk.super.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Israel", "orgchem.weizmann.ac.il",
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-RELEASE_NAME", 0, 0 },
{ "Japan", "ftp.sra.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #2", "ftp.mei.co.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #3", "ftp.waseda.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #4", "ftp.pu-toyama.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #5", "ftpsv1.u-aizu.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #6", "ftp.tut.ac.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Japan #7", "ftp.ee.uec.ac.jp",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/RELEASE_NAME", 0, 0 },
{ "Japan #8", "ftp.tokyonet.ad.jp",
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Korea", "ftp.cau.ac.kr",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Netherlands", "ftp.nl.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Russia", "ftp.kiae.su",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Sweden", "ftp.luth.se",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Taiwan", "netbsd.csie.nctu.edu.tw",
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "Thailand", "ftp.nectec.or.th",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK", "ftp.demon.co.uk",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #2", "src.doc.ic.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/RELEASE_NAME", 0, 0 },
{ "UK #3", "unix.hensa.ac.uk",
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA", "ref.tfs.com",
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #2", "ftp.dataplex.net",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #3", "kryten.atinc.com",
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
{ "USA #4", "ftp.neosoft.com",
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/2.0.5-RELEASE", 0, 0 },
DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/RELEASE_NAME", 0, 0 },
{ NULL } }
};
@ -298,8 +260,8 @@ DMenu MenuMedia = {
"FreeBSD can be installed from a variety of different installation\n\
media, ranging from floppies to the Internet. If you're installing\n\
FreeBSD from a supported CDROM drive then this is generally the best\n\
method to use unless you have some overriding reason for using another\n\
method.",
media to use, unless you have some overriding reason for using another\n\
media.",
"Press F1 for more information on the various media types",
"media.hlp",
{ { "CDROM", "Install from a FreeBSD CDROM",
@ -310,8 +272,10 @@ method.",
DMENU_CALL, mediaSetUFS, 0, 0 },
{ "Floppy", "Install from a floppy disk set",
DMENU_CALL, mediaSetFloppy, 0, 0 },
{ "FTP", "Install from an Internet FTP server",
DMENU_CALL, mediaSetFTP, 0, 0 },
{ "FTP Active", "Install from an FTP server in active mode",
DMENU_CALL, mediaSetFTPActive, 0, 0 },
{ "FTP Passive", "Install from an FTP server in passive mode",
DMENU_CALL, mediaSetFTPPassive, 0, 0 },
{ "NFS", "Install over NFS",
DMENU_CALL, mediaSetNFS, 0, 0 },
{ "Tape", "Install from SCSI or QIC tape",
@ -353,24 +317,18 @@ the list of distributions yourself, simply select \"custom\".",
static char *
DESFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_DES = %d\n", Dists & DIST_DES);
return (Dists & DIST_DES) ? "ON" : "OFF";
}
static char *
srcFlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_SRC = %d\n", Dists & DIST_SRC);
return (Dists & DIST_SRC) ? "ON" : "OFF";
}
static char *
x11FlagCheck(DMenuItem *item)
{
if (isDebug())
msgDebug("Dists & DIST_XF86 = %d\n", Dists & DIST_XF86);
return (Dists & DIST_XF86) ? "ON" : "OFF";
}
@ -390,15 +348,15 @@ DES distribution out of the U.S.! It is for U.S. customers only.",
DMENU_SET_FLAG, &Dists, DIST_COMPAT1X, 0, dmenuFlagCheck },
{ "compat20", "FreeBSD 2.0 binary compatibility package [2MB]",
DMENU_SET_FLAG, &Dists, DIST_COMPAT20, 0, dmenuFlagCheck },
{ "DES", "NOT FOR EXPORT! DES encryption code [.3MB]",
{ "DES", "DES encryption code - NOT FOR EXPORT! [.3MB]",
DMENU_CALL, distSetDES, 0, 0, DESFlagCheck },
{ "dict", "Spelling checker dictionary files [4.2MB]",
DMENU_SET_FLAG, &Dists, DIST_DICT, 0, dmenuFlagCheck },
{ "games", "Games and other amusements (non-commercial) [6.4MB]",
{ "games", "Games (non-commercial) [6.4MB]",
DMENU_SET_FLAG, &Dists, DIST_GAMES, 0, dmenuFlagCheck },
{ "info", "GNU info files [4.1MB]",
DMENU_SET_FLAG, &Dists, DIST_INFO, 0, dmenuFlagCheck },
{ "man", "System manual pages - strongly recommended [3.3MB]",
{ "man", "System manual pages - recommended [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_MANPAGES, 0, dmenuFlagCheck },
{ "proflibs", "Profiled versions of the libraries [3.3MB]",
DMENU_SET_FLAG, &Dists, DIST_PROFLIBS, 0, dmenuFlagCheck },
@ -441,7 +399,7 @@ you wish to install.",
NULL,
{ { "base", "top-level files in /usr/src [300K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BASE, 0, dmenuFlagCheck },
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]]",
{ "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_GNU, 0, dmenuFlagCheck },
{ "etc", "/usr/src/etc (miscellaneous system files) [460K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_ETC, 0, dmenuFlagCheck },
@ -457,6 +415,8 @@ you wish to install.",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_LKM, 0, dmenuFlagCheck },
{ "release", "/usr/src/release (release-generation tools) [533K]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_RELEASE, 0, dmenuFlagCheck },
{ "bin", "/usr/src/bin (system binaries) [2.5MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_BIN, 0, dmenuFlagCheck },
{ "sbin", "/usr/src/sbin (system binaries) [1.3MB]",
DMENU_SET_FLAG, &SrcDists, DIST_SRC_SBIN, 0, dmenuFlagCheck },
{ "share", "/usr/src/share (documents and shared files) [10MB]",
@ -488,15 +448,15 @@ distribution. We recommend that you select what you need from the basic\n\
components set and at least one entry from the Server and Font set menus.",
"Press F1 to read the XFree86 release notes for FreeBSD",
"XF86.hlp",
{ { "Basic", "Basic component menu (required)", /* B */
{ { "Basic", "Basic component menu (required)",
DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
{ "Server", "X server menu", /* S */
{ "Server", "X server menu",
DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
{ "Fonts", "Font set menu", /* F */
{ "Fonts", "Font set menu",
DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
{ "Clear", "Reset XFree86 distribution list",
DMENU_CALL, clearx11, 0, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)", /* E */
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
{ NULL } },
};
@ -525,7 +485,7 @@ DMenu MenuXF86SelectCore = {
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_LINK, 0, dmenuFlagCheck },
{ "pex", "PEX fonts and libs needed by PEX apps [500K]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_PEX, 0, dmenuFlagCheck },
{ "sources", "XFree86 3.1.1u1 source + contrib distribution [200MB]",
{ "sources", "XFree86 3.1.1u1 standard + contrib sources [200MB]",
DMENU_SET_FLAG, &XF86Dists, DIST_XF86_SRC, 0, dmenuFlagCheck },
{ NULL } },
};
@ -628,10 +588,6 @@ ftpFlagCheck(DMenuItem *item)
OptFlags &= ~OPT_FTP_RESELECT;
if (!(OptFlags & (OPT_FTP_ABORT + OPT_FTP_RESELECT)))
OptFlags |= OPT_FTP_ABORT;
if ((OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)) == (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE))
OptFlags &= ~OPT_FTP_ACTIVE;
if (!(OptFlags & (OPT_FTP_ACTIVE + OPT_FTP_PASSIVE)))
OptFlags |= OPT_FTP_PASSIVE;
if (*((unsigned int *)item->ptr) & item->parm)
return "ON";
return "OFF";
@ -646,24 +602,16 @@ with various possible error conditions and how verbose it will\n\
be at various stages.",
"Press F1 for more help on these options",
"options.hlp",
{ { "NFS Secure", "NFS server talks only on a secure port",
{ { "FTP Options", "Set FTP specific options",
DMENU_SUBMENU, &MenuFTPOptions, 0, 0, 0 },
{ "NFS Secure", "NFS server talks only on a secure port",
DMENU_SET_FLAG, &OptFlags, OPT_NFS_SECURE, 0, dmenuFlagCheck },
{ "NFS Slow", "User is using a slow PC or ethernet card",
DMENU_SET_FLAG, &OptFlags, OPT_SLOW_ETHER, 0, dmenuFlagCheck },
{ "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP active", "Use \"active mode\" for standard FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ACTIVE, 0, ftpFlagCheck },
{ "FTP passive", "Use \"passive mode\" for firewalled FTP",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_PASSIVE, 0, ftpFlagCheck },
{ "Debugging", "Turn on the extra debugging flag",
DMENU_SET_FLAG, &OptFlags, OPT_DEBUG, 0, dmenuFlagCheck },
{ "Yes To All", "Assume \"Yes\" answers to all non-critical dialogs",
DMENU_SET_FLAG, &OptFlags, OPT_NO_CONFIRM, 0, dmenuFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ "Clear", "Clear All Option Flags",
DMENU_CALL, clearFlags, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
@ -671,31 +619,47 @@ be at various stages.",
{ NULL } },
};
DMenu MenuFTPOptions = {
DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
"Choose FTP Options",
"This menu allows you to customize the behavior of FTP transfers\n\
for an FTP installation. To select \"Active\" or \"Passive\" mode\n\
FTP, see the Media menu.",
NULL,
NULL,
{ { "FTP Abort", "On transfer failure, abort",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
{ "FTP Reselect", "On transfer failure, ask for another host",
DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
{ "FTP userpass", "Specify username and password instead of anonymous",
DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
{ NULL } },
};
/* The main installation menu */
DMenu MenuInstall = {
DMenu MenuInstallCustom = {
DMENU_NORMAL_TYPE,
"Choose Installation Options", /* title */
"Before installation can continue, you need to specify a few\n\
"Choose Custom Installation Options",
"This is the custom installation menu. You may use this menu to specify\n\
details on the type of distribution you wish to have, where you wish\n\
to install it from and how you wish to allocate disk storage to FreeBSD.\n\n\
None of the items in this menu will actually modify the contents of\n\
your disk until you select the \"Install\" menu item (and even then, only\n\
after a final confirmation).",
to install it from and how you wish to allocate disk storage to FreeBSD.",
"Press F1 to read the installation guide",
"install.hlp",
{ { "Partition", "Allocate disk space for FreeBSD", /* P */
{ { "Partition", "Allocate disk space for FreeBSD",
DMENU_CALL, diskPartitionEditor, 0, 0 },
{ "Label", "Label allocated disk partitions", /* L */
{ "Label", "Label allocated disk partitions",
DMENU_CALL, diskLabelEditor, 0, 0 },
{ "Distributions", "Choose the type of installation you want", /* T */
{ "Distributions", "Choose the type of installation you want",
DMENU_SUBMENU, &MenuInstallType, 0, 0 },
{ "Media", "Choose the installation media type", /* M */
{ "Media", "Choose the installation media type",
DMENU_SUBMENU, &MenuMedia, 0, 0 },
{ "Options", "Go to Options submenu", /* O */
{ "Extract", "Extract distributions from selected media",
DMENU_CALL, distExtractAll, 0, 0 },
{ "Options", "Go to Options submenu",
DMENU_SUBMENU, &MenuOptions, 0, 0 },
{ "Commit", "Install FreeBSD onto your hard disk(s)", /* C */
{ "Commit", "Do Write/Make/Extract options in one step",
DMENU_CALL, installCommit, 0, 0 },
{ "Configure", "Do post-install configuration of FreeBSD", /* C */
{ "Configure", "Do post-install configuration of FreeBSD",
DMENU_SUBMENU, &MenuConfigure, 0, 0 },
{ "Exit", "Exit this menu (returning to previous)",
DMENU_CANCEL, NULL, 0, 0 },
@ -716,11 +680,11 @@ one, select \"standard\". If you would prefer your Master Boot\n\
Record to remain untouched, then select \"none\".",
"Press F1 to read the installation guide",
"install.hlp",
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")", /* B */
{ { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")",
DMENU_SET_VALUE, &BootMgr, 0, 0, dmenuRadioCheck },
{ "Standard", "Use a standard MBR (no boot manager)", /* S */
{ "Standard", "Use a standard MBR (no boot manager)",
DMENU_SET_VALUE, &BootMgr, 1, 0, dmenuRadioCheck },
{ "None", "Leave the Master Boot Record untouched", /* N */
{ "None", "Leave the Master Boot Record untouched",
DMENU_SET_VALUE, &BootMgr, 2, 0, dmenuRadioCheck },
{ NULL } },
};

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: network.c,v 1.6.2.14 1995/06/07 09:26:29 jkh Exp $
* $Id: network.c,v 1.7.2.2 1995/07/21 10:57:33 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -57,8 +57,9 @@ mediaInitNetwork(Device *dev)
{
int i;
char *rp;
char *cp, ifconfig[64];
if (networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
if (!RunningAsInit || networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
return TRUE;
configResolv();
@ -82,18 +83,14 @@ mediaInitNetwork(Device *dev)
return FALSE;
else
strcpy(attach, val);
if (!vsystem(attach)) {
if (!vsystem(attach))
dev->private = NULL;
return TRUE;
}
else {
msgConfirm("slattach returned a bad status! Please verify that\nthe command is correct and try again.");
return FALSE;
}
}
}
else {
char *cp, ifconfig[64];
snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
cp = getenv(ifconfig);
@ -101,12 +98,11 @@ mediaInitNetwork(Device *dev)
msgConfirm("The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding.");
return FALSE;
}
i = vsystem("ifconfig %s %s", dev->name, cp);
i = vsystem("ifconfig %s %s", "sl0", cp);
if (i) {
msgConfirm("Unable to configure the %s interface!\nThis installation method cannot be used.", dev->name);
return FALSE;
}
}
rp = getenv(VAR_GATEWAY);
if (!rp || *rp == '0')
@ -122,7 +118,7 @@ mediaShutdownNetwork(Device *dev)
{
char *cp;
if (!networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
if (!RunningAsInit || !networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
return;
if (strncmp("cuaa", dev->name, 4)) {

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: sysinstall.h,v 1.41.2.20 1995/06/10 09:14:53 jkh Exp $
* $Id: sysinstall.h,v 1.42.2.1 1995/07/21 10:54:06 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -111,7 +111,7 @@
#define VAR_INTERFACES "network_interfaces"
/* The help file for the TCP/IP setup screen */
#define TCP_HELPFILE "tcp.hlp"
#define TCP_HELPFILE "tcp"
/*** Types ***/
typedef unsigned int Boolean;
@ -251,6 +251,7 @@ extern DMenu MenuInitial; /* Initial installation menu */
extern DMenu MenuMBRType; /* Type of MBR to write on the disk */
extern DMenu MenuConfigure; /* Final configuration menu */
extern DMenu MenuDocumentation; /* Documentation menu */
extern DMenu MenuFTPOptions; /* FTP Installation options */
extern DMenu MenuOptions; /* Installation options */
extern DMenu MenuOptionsLanguage; /* Language options menu */
extern DMenu MenuMedia; /* Media type menu */
@ -266,7 +267,7 @@ extern DMenu MenuSysconsKeymap; /* System console keymap configuration menu */
extern DMenu MenuSysconsKeyrate; /* System console keyrate configuration menu */
extern DMenu MenuSysconsSaver; /* System console saver configuration menu */
extern DMenu MenuNetworking; /* Network configuration menu */
extern DMenu MenuInstall; /* Installation menu */
extern DMenu MenuInstallCustom; /* Custom Installation menu */
extern DMenu MenuInstallType; /* Installation type menu */
extern DMenu MenuDistributions; /* Distribution menu */
extern DMenu MenuDESDistributions; /* DES distribution menu */
@ -332,6 +333,7 @@ extern void dummyShutdown(Device *dev);
/* disks.c */
extern int diskPartitionEditor(char *unused);
extern int diskPartitionWrite(char *unused);
/* dist.c */
extern int distReset(char *str);
@ -345,7 +347,7 @@ extern int distSetEverything(char *str);
extern int distSetDES(char *str);
extern int distSetSrc(char *str);
extern int distSetXF86(char *str);
extern void distExtractAll(void);
extern int distExtractAll(char *str);
/* dmenu.c */
extern Boolean dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max);
@ -377,6 +379,8 @@ extern void globalsInit(void);
/* install.c */
extern int installCommit(char *str);
extern int installExpress(char *str);
extern Boolean installFilesystems(void);
/* lang.c */
extern void lang_set_Danish(char *str);
@ -393,6 +397,7 @@ extern void lang_set_Swedish(char *str);
/* label.c */
extern int diskLabelEditor(char *str);
extern int diskLabelCommit(char *str);
/* makedevs.c (auto-generated) */
extern const char termcap_vt100[];
@ -414,6 +419,8 @@ extern int mediaSetFloppy(char *str);
extern int mediaSetDOS(char *str);
extern int mediaSetTape(char *str);
extern int mediaSetFTP(char *str);
extern int mediaSetFTPActive(char *str);
extern int mediaSetFTPPassive(char *str);
extern int mediaSetUFS(char *str);
extern int mediaSetNFS(char *str);
extern Boolean mediaGetType(void);

View File

@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
* $Id: system.c,v 1.43.2.14 1995/06/09 14:33:36 jkh Exp $
* $Id: system.c,v 1.44 1995/06/11 19:30:10 rgrimes Exp $
*
* Jordan Hubbard
*
@ -60,9 +60,6 @@ systemInitialize(int argc, char **argv)
setbuf(stderr, 0);
}
for(i = 0; i < 256; i++)
default_scrnmap[i] = i;
if (set_termcap() == -1) {
printf("Can't find terminal entry\n");
exit(-1);
@ -146,62 +143,15 @@ systemDisplayFile(char *file)
char *
systemHelpFile(char *file, char *buf)
{
char *cp;
static char oldfile[64]; /* Should be FILENAME_MAX but I don't feel like wasting that much space */
static char oldlang[64];
char extract[64], *default_lang = "en_US.ISO8859-1";
int i;
if (!file)
return NULL;
if ((cp = getenv("LANG")) == NULL)
cp = default_lang;
for (i = 0; i < 2; i++) {
snprintf(buf, FILENAME_MAX, "/stand/%s/%s", cp, file);
snprintf(buf, FILENAME_MAX, "/stand/help/%s.hlp", file);
if (file_readable(buf))
return buf;
if (*oldfile) {
int i;
i = unlink(oldfile);
if (isDebug())
msgDebug("Unlink(%s) = %d\n", oldfile, i);
i = rmdir(oldlang);
if (isDebug())
msgDebug("rmdir(%s) = %d\n", oldlang, i);
oldfile[0] = '\0';
}
snprintf(extract, 64, "%s/%s", cp, file);
vsystem("cd /stand && zcat help.tgz | cpio --format=tar -idv %s > /dev/null 2>&1", extract);
if (file_readable(buf)) {
strcpy(oldfile, buf);
sprintf(oldlang, "/stand/%s", cp);
return buf;
}
if (cp == default_lang)
break;
cp = default_lang;
}
return NULL;
}
void
systemChangeFont(const u_char font[])
{
if (OnVTY && ColorDisplay) {
if (ioctl(0, PIO_FONT8x16, font) < 0)
msgConfirm("Sorry! Unable to load font for %s", getenv("LANG"));
}
}
void
systemChangeLang(char *lang)
{
variable_set2("LANG", lang);
}
void
systemChangeTerminal(char *color, const u_char c_term[],
char *mono, const u_char m_term[])
@ -231,16 +181,6 @@ systemChangeTerminal(char *color, const u_char c_term[],
dialog_clear();
}
void
systemChangeScreenmap(const u_char newmap[])
{
if (OnVTY) {
if (ioctl(0, PIO_SCRNMAP, newmap) < 0)
msgConfirm("Sorry! Unable to load the screenmap for %s",
getenv("LANG"));
}
}
int
vsystem(char *fmt, ...)
{

View File

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
* $Id: tape.c,v 1.5.2.6 1995/06/05 15:33:09 jkh Exp $
* $Id: tape.c,v 1.6 1995/06/11 19:30:11 rgrimes Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -65,7 +65,7 @@ mediaInitTape(Device *dev)
if (!strcmp(dev->name, "ft0"))
i = vsystem("ft | cpio -iduVm -H tar");
else
i = vsystem("cpio -iBduVm -H tar -I %s", dev->devname);
i = vsystem("cpio -iduVm -H tar -I %s", dev->devname);
if (!i) {
tapeInitted = TRUE;
return TRUE;

View File

@ -1,5 +1,5 @@
/*
* $Id: tcpip.c,v 1.29.2.8 1995/06/06 06:08:29 jkh Exp $
* $Id: tcpip.c,v 1.30.2.1 1995/07/21 10:02:59 rgrimes Exp $
*
* Copyright (c) 1995
* Gary J Palmer. All rights reserved.
@ -126,7 +126,7 @@ static Layout layout[] = {
{ NULL },
};
#define _validByte(b) ((b) >= 0 && (b) < 255)
#define _validByte(b) ((b) >= 0 && (b) <= 255)
/* whine */
static void
@ -144,7 +144,7 @@ verifyIP(char *ip)
if (ip && sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d) == 4 &&
_validByte(a) && _validByte(b) && _validByte(c) &&
_validByte(d))
_validByte(d) && (d != 255))
return 1;
else
return 0;