Date: Mon, 19 Nov 2007 00:08:37 +0100 (CET) From: Juergen Lock <nox@jelal.kn-bremen.de> To: CQG00620@nifty.ne.jp Cc: freebsd-emulation@freebsd.org, freebsd-current@freebsd.org Subject: Re: An ATAPI CD-ROM drive doesn't work with 7.0-BETA2, but it works with 7.0-BETA1 and 6.3-BETA1 Message-ID: <200711182308.lAIN8bCf082835@saturn.kn-bremen.de> In-Reply-To: <20071111073940.E35C74AE2D@mail.asahi-net.or.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <20071111073940.E35C74AE2D@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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711182308.lAIN8bCf082835>