Date: Sun, 10 May 1998 12:14:19 -0500 (CDT) From: marquard@zilker.net To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: conf/6576: 2.2.6 boot floppy can't mount install CD on matcd0 Message-ID: <199805101714.MAA01779@localhost.zilker.net>
next in thread | raw e-mail | index | archive | help
>Number: 6576
>Category: conf
>Synopsis: 2.2.6 boot floppy can't mount install CD on matcd0
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun May 10 10:20:01 PDT 1998
>Last-Modified:
>Originator: Dave Marquardt
>Organization:
None
>Release: FreeBSD 2.2.6-RELEASE i386
>Environment:
Packard Bell Force 446CDT, 75MHz Pentium. Here's dmesg from
after I installed 2.2.6 by installing 2.2.1 and upgrading from source:
Copyright (c) 1992-1998 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
FreeBSD 2.2.6-RELEASE #2: Fri May 8 16:44:46 CDT 1998
marquard@localhost.zilker.net:/usr/src/sys/compile/LEFSE
CPU: Pentium (75.17-MHz 586-class CPU)
Origin = "GenuineIntel" Id = 0x524 Stepping=4
Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory = 33554432 (32768K bytes)
avail memory = 31014912 (30288K bytes)
Probing for devices on PCI bus 0:
chip0 <Intel 82434NX (Neptune) PCI cache memory controller> rev 17 on pci0:0:0
chip1 <Intel 82378ZB PCI-ISA bridge> rev 3 on pci0:2:0
vga0 <VGA-compatible display device> rev 216 on pci0:3:0
ahc0 <Adaptec 2940A Ultra SCSI host adapter> rev 1 int a irq 11 on pci0:6:0
ahc0: aic7860 Single Channel, SCSI Id=7, 3 SCBs
ahc0:A:4: refuses synchronous negotiation. Using asynchronous transfers
(ahc0:4:0): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk0(ahc0:4:0): Unknown
(ahc0:4:1): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk1(ahc0:4:1): Unknown
(ahc0:4:2): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk2(ahc0:4:2): Unknown
(ahc0:4:3): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk3(ahc0:4:3): Unknown
(ahc0:4:4): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk4(ahc0:4:4): Unknown
(ahc0:4:5): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk5(ahc0:4:5): Unknown
(ahc0:4:6): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk6(ahc0:4:6): Unknown
(ahc0:4:7): "UMAX Astra 610S V1.3" type 6 fixed SCSI 2
uk7(ahc0:4:7): Unknown
ahc0:A:5: refuses synchronous negotiation. Using asynchronous transfers
(ahc0:5:0): "IOMEGA ZIP 100 E.08" type 0 removable SCSI 2
sd0(ahc0:5:0): Direct-Access
sd0(ahc0:5:0): ILLEGAL REQUEST asc:24,0 Invalid field in CDB
sd0 could not mode sense (4). Using ficticious geometry
96MB (196608 512 byte sectors)
Probing for PnP devices:
CSN 1 Vendor ID: MOT1550 [0x5015f435] Serial 0x055f9d96
PnP: override config for CSN 1 LDN 0 vend_id 0x5015f435
sio1: type 16550A
sio1 (siopnp <MOT1550> sn 0x055f9d96) at 0x2e8 irq 5 drq -1 flags 0x0 id 10
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
psm0 at 0x60-0x64 irq 12 on motherboard
psm0: model Generic PS/2 mouse, device ID 0
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: FIFO enabled, 8 bytes threshold
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 flags 0x80048004 on isa
wdc0: unit 0 (wd0): <ST5850A>, 32-bit, multi-block-4
wd0: 815MB (1669248 sectors), 1656 cyls, 16 heads, 63 S/T, 512 B/S
wdc0: unit 1 (wd1): <WDC AC31600H>, 32-bit, multi-block-4
wd1: 1549MB (3173184 sectors), 3148 cyls, 16 heads, 63 S/T, 512 B/S
matcd - Matsushita (Panasonic) CD-ROM Driver by FDIV, Version 1(26) 18-Oct-95
matcdc0 at 0x340-0x343 on isa
matcdc0 Host interface type 1
matcd0: [CR-5631.02]
npx0 on motherboard
npx0: INT 16 interface
sb0 at 0x220 irq 10 drq 1 on isa
sb0: <SoundBlaster Pro 3.1>
changing root device to wd1s1a
Intel Pentium F00F detected, installing workaround
>Description:
I created a 2.2.6 boot floppy from the 2.2.6 install CD. It
booted successfully and I adjusted matcd0 to be found at port 0x340 in
user config, finished booting, and matcd0 was found. I set the media
type to CD-ROM, selected the Novice install, dedicated all of wd1
except a boot manager area to FreeBSD, partitioned wd1s1, and started
the install. The install procedure created filesystems and copied
/stand from the boot floppy to the new root partition. When
sysinstall tried to mount the CD-ROM, it appeared to try to mount
/dev/matcd0c on /dist. I got an error box saying:
Error mounting /dev/matcd0c on /dist: Input/output error (5)
I switched to the debug screen using ALT-F2 and found this message 7
times over:
matcd0: Illegal data mode for this track while reading block 64
After bringing 2.2.1 up with a 2.2.1 boot floppy that found matcd0 (!)
I mounted the CVS repository disk and took a look at what might have
changed between 2.2.1 and 2.2.6 w.r.t. sysinstall. Well, in 2.2.1
sysinstall's devices.c had an array device_names[], which I excerpt
here:
static struct {
DeviceType type;
char *name;
char *description;
} device_names[] = {
{ DEVICE_TYPE_CDROM, "cd0a", "SCSI CDROM drive" },
{ DEVICE_TYPE_CDROM, "mcd0a", "Mitsumi (old model) CDROM drive" },
{ DEVICE_TYPE_CDROM, "scd0a", "Sony CDROM drive - CDU31/33A type", },
{ DEVICE_TYPE_CDROM, "matcd0a", "Matsushita CDROM ('sound blaster' type)" },
.
.
.
{ NULL },
};
So in 2.2.1 we were mounting /dev/matcd0a. In 2.2.6, devices.c has
the same array, but it's changed quite a bit. Here's the appropriate
excerpt again:
static struct _devname {
DeviceType type;
char *name;
char *description;
int major, minor, delta, max;
char dev_type;
} device_names[] = {
{ DEVICE_TYPE_CDROM, "cd%dc", "SCSI CDROM drive", 6, 2, 8, 4, 'b' },
{ DEVICE_TYPE_CDROM, "mcd%dc", "Mitsumi (old model) CDROM drive", 7, 2, 8, 4, 'b' },
{ DEVICE_TYPE_CDROM, "scd%dc", "Sony CDROM drive - CDU31/33A type", 16, 2, 8, 4, 'b' },
{ DEVICE_TYPE_CDROM, "matcd%dc", "Matsushita CDROM ('sound blaster' type)", 17, 2, 8, 4, 'b' },
.
.
.
{ 0 },
};
So in 2.2.6 we're trying to mount /dev/matcd0c and it fails.
I note from the 2.2.6 matcd(4) man page the following:
SUPPORTED OPERATIONS
The matcd driver supports block and character access. Partition "a" re-
turns 2048-byte User Data blocks from data CDs. Partition "c" returns
the full 2352-byte Frames from any type of CD, including audio CDs.
(Partition "c" cannot be "mounted" with cd9660 or other filesystem emula-
tors.) No other partitions are supported.
So we should really be mounting /dev/matcd0a, not /dev/matcd0c!
>How-To-Repeat:
Try to use the 2.2.6 boot floppy to mount from CD-ROM on
matcd0.
>Fix:
I suggest changing this line
{ DEVICE_TYPE_CDROM, "matcd%dc", "Matsushita CDROM ('sound blaster' type)", 17, 2, 8, 4, 'b' },
to
{ DEVICE_TYPE_CDROM, "matcd%da", "Matsushita CDROM ('sound blaster' type)", 17, 0, 8, 4, 'b' },
I built a new boot floppy using this and it worked!
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805101714.MAA01779>
