[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Parches para grabadiora USB HP 8200e ( 8290 )



Como comentaba un compañero, aquí os mando la información que yo se sobre cómo
hacer funcionar esa grabadora.

Lo primero deciros que HP, aunque ha seguido manteniendo el nombre, ha cambiado el hardwaere interno de estas grabadoras. Del que yo os hablo es del último, Serie 8200 modelo 8230, 'subespecie' 8290, que supongo que sería el que comprarías ahora nuevo.

Hay que partir de un kernel 2.4.x, y modificar 2 ficheros.

Los ficheros son:
* Config.in : del directorio de los drivers USB, para añadir la opción de la grabadora.
   *  shuttle_usb.c :  del directorio storage del directorio anterior.

Para el segundo fichero hay 2 parches, del que yo sólo he probado el 1º, con resultados
positivos:

  -  8290-patch-2_4_2 (el que he probado )
  - wilford-sectorsize-2_4_5

Os mando 5 ficheros adjuntos:
1 mensaje de la lista Linux-usb-users, en el que me enteré de como hacerla funcionar. (HP-8230e_CD-writer_installation) 1 un mensaje de la lista Linux-usb-devel, reciente, en el que se informa del deseo de introducir
los cambios en la rama estable del Kernel.(HP-8200_series_usb_cdrw)
3 parches, que venían con este último mensaje.

Qué os aproveche.

Saludos
               Luis.

--- shuttle_usbat.0	Wed Apr 18 13:17:24 2001
+++ shuttle_usbat.c	Wed Apr 18 13:42:18 2001
@@ -344,12 +344,14 @@
 
 		if (result!=USB_STOR_TRANSPORT_GOOD)
 			return result;
-		if (status&0x01) // check condition
+		if (status&0x01) { // check condition
+			result = usbat_read(us, USBAT_ATA, 0x10, &status) ;
 			return USB_STOR_TRANSPORT_FAILED;
+		}
 		if (status&0x20) // device fault
 			return USB_STOR_TRANSPORT_FAILED;
 
-		if ((status&0x80)!=0x80) { // not busy
+		if ((status&0x80)==0x00) { // not busy
 			US_DEBUGP("Waited not busy for %d steps\n", i);
 			return USB_STOR_TRANSPORT_GOOD;
 		}
@@ -971,6 +973,9 @@
 		registers[i] = 0x10;
 		data[i] = (i-7 >= srb->cmd_len) ? 0 : srb->cmnd[i-7];
 	}
+
+	result = usbat_read(us, USBAT_ATA, 0x17, &status);
+	US_DEBUGP("Status = %02x\n", status) ;
 
 	if (srb->cmnd[0] == TEST_UNIT_READY)
 		transferred = 0;
--- Config.in.orig	Tue Jul 10 10:53:42 2001
+++ Config.in		Thu Jul  5 19:45:15 2001
@@ -32,6 +32,7 @@
    if [ "$CONFIG_USB_STORAGE" != "n" ]; then
       bool '    USB Mass Storage verbose debug' CONFIG_USB_STORAGE_DEBUG
       bool '    Freecom USB/ATAPI Bridge support' CONFIG_USB_STORAGE_FREECOM
+      bool '    HP8200e USB/ATAPI CD-Writer support' CONFIG_USB_STORAGE_HP8200e
       bool '    Microtech CompactFlash/SmartMedia reader' CONFIG_USB_STORAGE_DPCM
    fi
    dep_tristate '  USB Modem (CDC ACM) support' CONFIG_USB_ACM $CONFIG_USB
Thread: [Linux-usb-users] HP 8230e CD-writer intallation

Message: 5467587

FROM: Kevin Turner
DATE: 04/02/2001 05:10:55
SUBJECT: RE:  [Linux-usb-users] HP 8230e CD-writer intallation

 

On Mon, Apr 02, 2001 at 12:08:14PM +0700, Benny Daton wrote:
> > I am real newbie. Please guide me to install HP 8230e CD-writer on Toshiba
> Satellite 4000CST notebook. I have Mandrake 7.2 distro installed on my
> notebook.
> Please be gentle..and help this poor newbie

Fair warning:  This is *not* going to be a walk in the park.  The
developers have /not yet finished/ polishing the drivers for the
HP8230e.  For you to use it, you will have to go out of your way to
install some experimental code.  There's a chance you'll bork your
system doing this, and there's a chance it might not work no matter how
you do it, but in my non-professional opinion, there's not much of a
chance that you'll permenantly damage any hardware.  Aside from ending
up with a few extra shiny coasters, maybe.

If you feel unable or unwilling to work with this experimental code in
development, "wait a few months", "pick different hardware", or "hire
someone" may be other options for you.

I'm afraid this will *not* end up being terribly gentle, as you
requested.  I will make an attempt to point you to all the resources
you'll need, though.

Time to grab your hard-hat with the strap-on lantern, because you're
gonna have to get your spelunk on for this one.

General resources:
http://www.google.com/ -- Always your friend.
http://linuxdoc.org/ -- Anything called 'HOWTO' may be found here.
http://www.linux-usb.org/ -- The name says it all.

Nitty-gritty:

Hardware support in Linux is generally a matter of kernel configuration.
Since support for this device is not yet a standard option, you will
have to compile a kernel from source.  You will need source code for a
2.4.x kernel (I'm using 2.4.3 here) and a standard C development
software, including (but not limited to) gcc and make.  I'm not familar
with Mandrake, but these tools should be readily available in any
distribution, consult your distribution documentation for details.

Kernel resources:
 http://www.kernel.org/
The "Kernel HOWTO".
 The 'README' file in the kernel source.

Before you configure the kernel, you will need to apply a patch so
support for the HP8200 shows up in the config menu.  I'm including a
patch for that at the end of this message, as I don't know where it is
archived.

There are two kinds of HP8230e drives out there, which I'll call "old"
and "new".  If the drive was purchased in the last six months, it's
probably "new".  These new drives require an additional patch, written
by Richard Miller, which may be found in the archive here:

http://www.geocrawler.com/mail/msg.php3?msg_id=5224176&list=4563

Note about patch files: These files are made with the 'diff' program,
 and you apply them with the 'patch' program.  Who says the names of
 Unix utilites don't make sense?  =) See the programs' documentation
 (manpages) for usage instructions.

Things you'll need to keep an eye out for while configuring your kernel:
 * USB support
   + Mass Storage support
 * SCSI support (because the USB CD driver works by looking like SCSI)
   + SCSI CD support
 * ...other stuff I'm forgetting, which is probably mentioned 
    at linux-usb.org

Also see this post:
http://www.mail-archive.com/linux-hardware%40senator-bedfellow.mit.edu/msg03514.html

That was written a while ago, so it's not 100% relevant, but it will
give you ideas about how things go and what you might try.

Other possibly relevant HOWTOs:
 * CDROM HOWTO
 * CD-Writing HOWTO


Once you get your kernel compiled and installed, all the weird nasty
HP8230-experimental things are behind you.  You load the USB drivers
(and USB mass_storage driver) as you would normally, as is described in
the normal set of USB docs, and use the usual set of USB tools, load the
normal SCSI CD stuff...  by this time it's no longer material for the
Linux-USB list, but just a matter of following the CD-Writing HOWTO.


Personally, I have gotten this drive to read and rip CDs.  I have not
tried burning yet, but plan to soon, and others have reported success
with that as well.

Good luck,

 - Kevin

(And take heart: If you get this working, it'll be *all* downhill from
here.)


Here's the patchlet so that the HP8200e shows up in the kernel
configuration menu.  [This is probably not the only patch you need if
you have a "new" 8230e (aka 8290), see above for a pointer to the other
patch in the archives.]

--- linux/drivers/usb/Config.in~	Mon Nov 27 20:10:35 2000
+++ linux/drivers/usb/Config.in	Tue Dec 19 12:21:56 2000
@@ -32,6 +32,9 @@
    if [ "$CONFIG_USB_STORAGE" != "n" ]; then
       bool '    USB Mass Storage verbose debug' CONFIG_USB_STORAGE_DEBUG
       bool '    Freecom USB/ATAPI Bridge support' CONFIG_USB_STORAGE_FREECOM
+      if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+          bool '    HP8200e support (EXPERIMENTAL)' CONFIG_USB_STORAGE_HP8200e
+      fi
    fi
    dep_tristate '  USB Modem (CDC ACM) support' CONFIG_USB_ACM $CONFIG_USB
    dep_tristate '  USB Printer support' CONFIG_USB_PRINTER $CONFIG_USB

-- 
Kevin Turner <<EMAIL: PROTECTED>> | OpenPGP encryption welcome here

_______________________________________________
<EMAIL: PROTECTED>
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-users

--- shuttle_usbat.c.orig	Sat Jun  2 06:58:48 2001
+++ shuttle_usbat.c	Sat Jun  2 07:28:30 2001
@@ -675,9 +675,15 @@
 		len = short_pack(data[7+9], data[7+8]);
 		len <<= 16;
 		len |= data[7+7];
+		US_DEBUGP("handle_read10: GPCMD_READ_CD: len %d\n", len);
 		srb->transfersize = srb->request_bufflen/len;
 	}
 
+	if (!srb->transfersize)  {
+		srb->transfersize = 2048; /* A guess */
+		US_DEBUGP("handle_read10: transfersize 0, forcing %d\n",
+			srb->transfersize);
+	}
 
 	len = (65535/srb->transfersize) * srb->transfersize;
 	US_DEBUGP("Max read is %d bytes\n", len);
-------- Original Message --------
Asunto: [linux-usb-devel] [PATCH]HP 8200 series usb cdrw
Fecha: Tue, 17 Jul 2001 17:14:15 -0700
De: Cody Pisto <cody@hpcs.com>
Respuesta: A: linux-usb-devel@lists.sourceforge.net
A: linux-usb-devel@lists.sourceforge.net



These patches have been floating around for some time, they apply cleanly to 2.4.6 and make my HP 8200 series usb cdrw work flawlessly!


maybe they can be incorporated into the distributed kernel sources?



-- 
Cody Pisto
HPC Solutions, LLC.
www.hpcs.com


Reply to: