An ATAPI CD-ROM drive doesn't work with 7.0-BETA2, but it works with 7.0-BETA1 and 6.3-BETA1

Juergen Lock nox at jelal.kn-bremen.de
Sun Nov 18 15:10:09 PST 2007


In article <20071111073940.E35C74AE2D at mail.asahi-net.or.jp> you write:
>Hi, all.
>
>I've tried to install FreeBSD/pc98 7.0-BETA2 to PC-9821Xa9 via FTP.
>Installation is finished sucessfully.  
>But cannot use the internal ATAPI CD-ROM drive.
>
>aries# uname -a
>FreeBSD aries.sign.local 7.0-BETA2 FreeBSD 7.0-BETA2 #1: Sun Nov 11 00:16:42
>JST 2007     nabe at aries.sign.local:/usr/src/sys/pc98/compile/GENERIC  pc98
>aries# dmesg | grep ^acd
>acd0: <CD-ROM CDU76E-NE/1.0d> CDROM drive at ata1 as master
>acd0: read 689KB/s (689KB/s), 256KB buffer, PIO2
>acd0: Reads: CDDA stream
>acd0: Writes:
>acd0: Audio: play, 256 volume levels
>acd0: Mechanism: ejectable tray, unlocked
>acd0: Medium: CD-ROM unknown
>aries# mount_cd9660 -v /dev/acd0 /mnt
>could not determine starting sector, using very first session
>mount_cd9660: /dev/acd0: Input/output error
>aries# cdcontrol info
>cdcontrol: /dev/acd0: Input/output error
>aries# cdcontrol status
>cdcontrol: /dev/acd0: Input/output error
>aries# 
>
>The CD-ROM drive works well with 7.0-BETA1 and 6.3-BETA1.
>
>To use the CD-ROM drive with 7.0-BETA2, I have to apply a quick patch
>described below and recompile the kernel:
>
>--- sys/dev/ata/atapi-cd.c.orig 2007-11-01 04:59:53.000000000 +0900
>+++ sys/dev/ata/atapi-cd.c      2007-11-11 00:15:21.000000000 +0900
>@@ -696,12 +696,16 @@
>        if (!acd_mode_sense(dev, ATAPI_CDROM_CAP_PAGE,
>                            (caddr_t)&cdp->cap, sizeof(cdp->cap)) &&
>                            cdp->cap.page_code == ATAPI_CDROM_CAP_PAGE) {
>+#if 0
>            if ((cdp->cap.medium_type == MST_FMT_NONE) ||
>                (cdp->cap.medium_type == MST_NO_DISC) ||
>                (cdp->cap.medium_type == MST_DOOR_OPEN) ||
>                (cdp->cap.medium_type == MST_FMT_ERROR))
>                return EIO;
>            else
>+#else
>+           printf("cap.medium_type:%d\n", cdp->cap.medium_type);
>+#endif
>                break;
>        }
>        pause("acdld", hz / 2);
>
>The value of cdp->cap.medium_type is 0 (MST_FMT_NONE).

Interesting, I didn't know real hw is also affected...  I already
had to make a patch for qemu that chases these recent commits (atapi-cd.c),
see my post on -emulation,
	http://lists.freebsd.org/pipermail/freebsd-emulation/2007-November/004178.html

 If you want to play with the patch, its also at,
	http://people.freebsd.org/~nox/qemu/patch-hw-ide.c
(testers especially with non-FreeBSD guests still wanted!)

 Thanx,
	Juergen


More information about the freebsd-emulation mailing list