Date: Thu, 12 Dec 96 19:08:22 JST From: akiyama@kme.mei.co.jp To: FreeBSD-gnats-submit@freebsd.org Subject: misc/2198: Add installing from optical disk device facility. Message-ID: <9612121008.AA01763@kmegate.kme.mei.co.jp> Resent-Message-ID: <199612121010.CAA03643@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 2198 >Category: misc >Synopsis: Add installing from optical disk device facility. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Dec 12 02:10:04 PST 1996 >Last-Modified: >Originator: Shunsuke Akiyama >Organization: Kyushu Matsushita Electric Co., LTD. >Release: FreeBSD 2.2-ALPHA i386 >Environment: N/A >Description: I'm Added installing from optical disk drive facility. This enables install FreeBSD system from optical disk, which formatted as super floppy style or cliced MSDOS-FS and UFS on slice. I've made boot floppies with this patch and it's works fine for me. >How-To-Repeat: N/A >Fix: =================================================================== --- etc/etc.i386/MAKEDEV 1996/11/01 08:49:13 +++ etc/etc.i386/MAKEDEV 1996/11/16 11:34:53 @@ -175,6 +175,7 @@ sh MAKEDEV std # standard sh MAKEDEV wd0 wd1 wd2 wd3 fd0 fd1 sd0 sd1 sd2 sd3 # bdev, disk sh MAKEDEV cd0 mcd0 scd0 matcd0 wcd0 # bdev, cdrom + sh MAKEDEV od0 # bdev, ODD sh MAKEDEV ft0 wt0 st0 # bdev, tape sh MAKEDEV ttyd0 ttyd1 ttyd2 ttyd3 # cdev, serial sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3 # cdev, serial =================================================================== --- lib/libdisk/create_chunk.c 1996/04/29 05:03:01 +++ lib/libdisk/create_chunk.c 1996/07/22 13:23:26 @@ -257,6 +257,8 @@ bmaj = 0, cmaj = 3; else if (!strncmp(p, "sd", 2)) bmaj = 4, cmaj = 13; + else if (!strncmp(p, "od", 2)) + bmaj = 20, cmaj = 70; else { return 0; } =================================================================== --- lib/libdisk/disk.c 1996/04/29 05:03:02 +++ lib/libdisk/disk.c 1996/07/22 13:27:42 @@ -283,7 +283,7 @@ } #endif -static char * device_list[] = {"wd","sd",0}; +static char * device_list[] = {"wd","sd","od",0}; char ** Disk_Names() =================================================================== --- release/Makefile 1996/11/12 09:06:05 +++ release/Makefile 1996/11/16 11:50:47 @@ -371,10 +371,10 @@ DIR=${RD}/mfsfd/stand ZIP=false ( cd ${RD}/trees/bin/dev && \ ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \ - *[sw]d* cuaa[01] cuaa[23] fd[01] rfd[01] \ + *[swo]d* cuaa[01] cuaa[23] fd[01] rfd[01] \ cd0a mcd0a scd0a matcd0a wcd0c rst0 rft0 rwt0 | \ cpio -dump ${RD}/mfsfd/dev ) - ( cd ${RD}/mfsfd/dev && rm -f *[sw]d*[bdefgh] ) + ( cd ${RD}/mfsfd/dev && rm -f *[swo]d*[bdefgh] ) cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand echo "nameserver 42/tcp name" > ${RD}/mfsfd/stand/etc/services echo "ftp 21/tcp" >> ${RD}/mfsfd/stand/etc/services =================================================================== --- release/sysinstall/config.c 1996/11/09 19:26:17 +++ release/sysinstall/config.c 1996/11/16 12:47:31 @@ -47,6 +47,7 @@ static Chunk *chunk_list[MAX_CHUNKS]; static int nchunks; +static int rootdev_is_od; /* arg to sort */ static int @@ -85,6 +86,21 @@ } } +static void +check_rootdev(Chunk **list, int n) +{ + int i; + Chunk *c; + + rootdev_is_od = 0; + for (i = 0; i < n; i++) { + c = *list++; + if (c->type == part && (c->flags & CHUNK_IS_ROOT) + && strncmp(c->disk->name, "od", 2) == 0) + rootdev_is_od = 1; + } +} + static char * name_of(Chunk *c1) { @@ -127,21 +143,33 @@ fstype_short(Chunk *c1) { if (c1->type == part) { - if (c1->subtype != FS_SWAP) - return "rw"; + if (c1->subtype != FS_SWAP) { + if (rootdev_is_od == 0 && strncmp(c1->name, "od", 2) == 0) + return "rw,noauto"; + else + return "rw"; + } else return "sw"; } - else if (c1->type == fat) - return "ro"; + else if (c1->type == fat) { + if (strncmp(c1->name, "od", 2) == 0) + return "ro,noauto"; + else + return "ro"; + } return "bog"; } static int seq_num(Chunk *c1) { - if (c1->type == part && c1->subtype != FS_SWAP) - return 1; + if (c1->type == part && c1->subtype != FS_SWAP) { + if (rootdev_is_od == 0 && strncmp(c1->name, "od", 2) == 0) + return 0; + else + return 1; + } return 0; } @@ -198,6 +226,8 @@ "will be required."); return DITEM_FAILURE; } + + check_rootdev(chunk_list, nchunks); /* Go for the burn */ msgDebug("Generating /etc/fstab file\n"); =================================================================== --- release/sysinstall/devices.c 1996/10/05 11:56:47 +++ release/sysinstall/devices.c 1996/11/24 14:51:34 @@ -68,8 +68,10 @@ { DEVICE_TYPE_TAPE, "rwt0", "Wangtek tape drive" }, { DEVICE_TYPE_DISK, "sd", "SCSI disk device" }, { DEVICE_TYPE_DISK, "wd", "IDE/ESDI/MFM/ST506 disk device" }, + { DEVICE_TYPE_DISK, "od", "SCSI optical disk device" }, { DEVICE_TYPE_FLOPPY, "fd0", "floppy drive unit A" }, { DEVICE_TYPE_FLOPPY, "fd1", "floppy drive unit B" }, + { DEVICE_TYPE_FLOPPY, "od0", "SCSI optical disk/floppy format" }, { DEVICE_TYPE_NETWORK, "cuaa0", "%s on serial port 0 (COM1)" }, { DEVICE_TYPE_NETWORK, "cuaa1", "%s on serial port 1 (COM2)" }, { DEVICE_TYPE_NETWORK, "cuaa2", "%s on serial port 2 (COM3)" }, =================================================================== --- sys/i386/conf/GENERIC 1996/10/28 06:05:56 1.77 +++ sys/i386/conf/GENERIC 1996/12/07 12:01:16 1.77.1.3 @@ -62,6 +62,7 @@ # A single entry for any of these controllers (ncr, ahb, ahc) is sufficient # for any number of installed devices. controller ncr0 +options MAX_LUN=2 #ncr0: for PD drive controller ahb0 controller ahc0 options "AHC_FORCE_PIO" # Some motherboards choke on MemI/O, =================================================================== --- sys/pci/ncr.c 1996/11/09 21:15:54 +++ sys/pci/ncr.c 1996/11/16 12:29:34 @@ -53,7 +53,9 @@ #ifdef FAILSAFE #define SCSI_NCR_DFLT_TAGS (0) +#ifndef MAX_LUN #define MAX_LUN (1) +#endif /* MAX_LUN */ #define CDROM_ASYNC #endif /* FAILSAFE */ =================================================================== --- sys/scsi/cd.c 1996/09/06 23:09:06 +++ sys/scsi/cd.c 1996/10/13 07:27:58 @@ -200,7 +200,7 @@ if (sc_link->quirks & CD_Q_NO_TOUCH) { dp->disksize = 0; } else { - cd_get_parms(unit, SCSI_NOSLEEP | SCSI_NOMASK); + cd_get_parms(unit, SCSI_NOSLEEP | SCSI_NOMASK | SCSI_SILENT); } if (dp->disksize) { printf("cd present [%ld x %ld byte records]", >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9612121008.AA01763>