diff --git a/LDP/howto/docbook/SCSI-2.4-HOWTO/SCSI-2.4-HOWTO.sgml b/LDP/howto/docbook/SCSI-2.4-HOWTO/SCSI-2.4-HOWTO.sgml index 5d026942..54404ab6 100644 --- a/LDP/howto/docbook/SCSI-2.4-HOWTO/SCSI-2.4-HOWTO.sgml +++ b/LDP/howto/docbook/SCSI-2.4-HOWTO/SCSI-2.4-HOWTO.sgml @@ -2,7 +2,7 @@ - The Linux SCSI subsystem in 2.4 HOWTO + The Linux 2.4 SCSI subsystem HOWTO @@ -15,9 +15,17 @@ - 2001-03-25 + 2001-04-15 + + 1.3 + 2001-04-15 + dpg + + ATAPI CDROM section, alter title, U320, iSCSI + + 1.2 2001-03-25 @@ -94,7 +102,13 @@ subsystem, there is also a description of raw devices in . -This document follows on from one written four years ago by Drew +For those who have no interest in the SCSI subsystem and just want to get +their ATAPI cd writer going, see this section. +It may also be useful to browse the SCSI architecture + section. + + +This document follows on from one written five years ago by Drew Eckhardt called the SCSI-HOWTO [see reference W7]. That document described the SCSI subsystem in Linux kernel 1.2 and 1.3 series. It is still available from the Linux Documentation Project @@ -110,9 +124,11 @@ The home site and perhaps the most up to date version of this document can be found at www.torque.net/scsi/SCSI-2.4-HOWTO. +At that location this document is rendered in rtf, ps, pdf, +a single (large) page of html and multipage html. -This document was built on 26th March 2001. +This document was built on 15th April 2001. @@ -172,8 +188,8 @@ Sd is a member of the generic disk family, as is the hd device from the IDE subsystem. Apart from mounting sd devices, the fdisk command is available to view or modify a disk's partition table. Although the hdparm command is -primarily intended for IDE disks, some options work on SCSI -disks. +primarily intended for ATA disks (also known as IDE or EIDE disks), some +options work on SCSI disks. Sr is a member of the CD-ROM subsystem. Apart from mounting file @@ -405,7 +421,7 @@ three categories (e.g. scanners) also appear as sg devices. Pseudo devices [see ] can cause devices that are usually not considered as SCSI to appear as SCSI device names. -For example an IDE ATAPI CD-ROM may be picked up by the ide-scsi pseudo +For example an ATAPI CD-ROM may be picked up by the ide-scsi pseudo driver and mapped to /dev/scd0 . @@ -541,14 +557,14 @@ The Linux kernel configuration is usually found in the kernel source in the file: /usr/src/linux/.config . It is not recommended to edit this file directly but to use one of these configuration options: - - make config - - starts a character based questions and answer session - make menuconfig - - starts a "cursors" based configuration tool - make xconfig - - starts a X based configuration tool - + +make config - starts a character based +questions and answer session +make menuconfig - starts a +terminal-oriented configuration tool (using ncurses) +make xconfig - starts a +X based configuration tool + The descriptions of these selections that is displayed by the associated @@ -574,7 +590,7 @@ CONFIG_SCSI=m -Some other common SCSI configuration option follow: +Some other common SCSI configuration options are: CONFIG_BLK_DEV_SD [disk (sd) driver] CONFIG_SD_EXTRA_DEVS [extra slots for disks added later] @@ -634,7 +650,7 @@ boot loader's image from a SCSI disk into memory and executing it. This may require some settings to be changed in the motherboard's BIOS. When more than one SCSI adapter is involved, the SCSI BIOS settings may need to change to indicate which one contains the disk with the boot image. -The boot image make also come from an IDE disk, a bootable CD-ROM or +The boot image make also come from an ATA (IDE) disk, a bootable CD-ROM or a floppy. @@ -661,15 +677,16 @@ Some boot parameters related to the SCSI subsystem: debug [increase output to console during boot] nmi_watchdog=0 [turn off NMI watchdog on a SMP machine] max_scsi_luns=1 [limits SCSI bus scans to lun==0] - -* When devfs is in use the initial read-only mount - of the root partition can be done via the old - /dev/sd<a><n> notation or the new devfs - notation (and two of these are shown). - The joint "root=/dev/sda6 single" may be useful - when disk or adapter changes have broken the - kernel boot load. +* When devfs is in use the initial read-only mount +of the root partition can be done via the old +/dev/sd<a><n> notation or the new devfs +notation (and two of these are shown). +The joint "root=/dev/sda6 single" may be useful +when disk or adapter changes have broken the +kernel boot load. + + The "root=" argument may also be a hex number. For example, if the root partition is on /dev/sda3 then "root=803" is appropriate. The last two digits are the minor device number discussed @@ -922,7 +939,7 @@ in the file /usr/src/linux/Documentation/kernel-parameters.txt If SCSI disks are present in the system then it usually is better to build the mid level driver into the kernel. However if the SCSI subsystem is only being used periodically (e.g. to burn CD-Rs on -an IDE CD writer) then building the mid level as a module is fine. +an ATAPI CD writer) then building the mid level as a module is fine. The module load time options are the same as the driver's built in options: @@ -979,12 +996,18 @@ New devices can be added using where the variables are host, bus (channel), target (scsi id) and lun. The success (or otherwise) of this command can be determined by sending a subsequent cat /proc/scsi/scsi command. + +The parsing of "add-single-device" and "remove-single-device" is rather +inflexible. Hence it is best to stay close to the demonstrated syntax +with no extra spaces (and no tabs). + -The SCSI subsystem does not support hot-plugging of SCSI devices (there are -also electrical issues on the associated SCSI bus). It is recommended that -those who use add+remove-single-device make sure that other devices on that -SCSI bus are inactive if re-plugging is going to take place. +The SCSI subsystem does not support hot-plugging of SCSI devices (there may +also be electrical issues on the associated SCSI parallel bus). It is +recommended that those who use add+remove-single-device make sure that +other devices on that SCSI bus are inactive if re-plugging is going to +take place. To output a list of internal SCSI command blocks use @@ -1099,14 +1122,15 @@ part: -Many modern IDE CDROM players and all DVD players use the ATAPI standard -which then allows them to be controlled by the SCSI subsystem with the -ide-scsi lower level pseudo driver. The default action is for the IDE -subsystem to take ownership of all IDE devices and in this case the default -driver would be ide-cd.o . Once the IDE subsystem -"owns" an ATAPI CDROM player then this excludes the ide-scsi driver from -attaching itself to the same device. In order to change this default -action see the following sections on boot and module parameters. +This diagram glosses over some of the differences between the +protocol stacks. CDROM device names are not maintained +by the uniform CDROM layer but rather by each individual protocol stack. +In the case of the SCSI subsystem, device names are maintained by the +sr driver while the IDE subsystem maintains device names with its +central "ide" driver (i.e. not by the ide-cd driver). USB and IEEE1394 +cd devices names are maintained by their respective stacks. This may +partially explain why the /dev/cdrom is often a +symbolic link to the appropriate subsystem's device name. Two types of SCSI devices are accessible via the sr driver: @@ -1128,14 +1152,7 @@ configuration parameter CONFIG_SR_EXTRA_DEVS whose default value is 2. sr boot parameters -None but the following is related: -During the boot sequence of the Linux kernel, the IDE devices are scanned -before SCSI devices. This means that if both the ide-cd and ide-scsi drivers -are built in, then the ide-cd driver will claim all CDROM devices on the IDE -bus(-es). To override this action use the boot parameter "hd<x>=scsi" -where <x> is the appropriate drive letter. In this case when the ide-scsi -driver is initialized it will find the unclaimed IDE device and "claim" it -for the SCSI subsystem. +None. @@ -1151,21 +1168,6 @@ turned off by default. The following module parameter is provided: to override the default. [Currently there seems to be no way to turn on XA mode testing when the sr driver is built into the kernel.] - -Continuing on with the ATAPI CDROM driver override discussion: for modules -this can also be done with insmod ide-cd ignore=hdb to -exclude that device. Typically the ide-cd module is loaded automatically -so a line in the /etc/modules.conf file like: - - options ide-cd ignore=hdb - -should work. If the ide-scsi module is loaded after that, it will claim hdb. -To check if this has happened examine cat /proc/scsi/scsi. -Note that any other IDE CDROM player apart from the one -connected to /dev/hdb (i.e. first IDE controller, slave -device) will still be controlled by the ide-cd module (and hence the IDE -subsystem). - sr proc interface @@ -1194,6 +1196,113 @@ the command echo "1" > /proc/sys/dev/cdrom/autoeject. This will cause cdroms to be ejected from the drive when unmounted. + + ATAPI cdroms + +Many Linux users have no SCSI devices (or adapters) in their systems. They +become a little perplexed as to why cd writer software (e.g. +cdrecord and cdrdao) +and cd music reading programs (e.g. cdparanoia) use +the Linux SCSI subsystem. The answer is that these programs need lower level +access to these devices. ATAPI (ATA Packet Interface) is essentially +a SCSI command set sent over an ATA + +ATA is the modern name for what was previously known as IDE and/or EIDE. +Note that the subsystem that controls ATA devices in Linux is called +the "IDE" subsystem for historical reasons. + +transport. + + +Currently both cdrecord and cdparanoia +interface to the SCSI generic driver (sg) and, in the case of ATAPI +cd devices, use the ide-scsi pseudo device driver to access the hardware. +This may change in the future as in the 2.4 series kernels a packet +interface ioctl has been added to the uniform cdrom layer (see the diagram +in the CDROM section above). + +Other ATA devices such as tapes and floppies often use the ATAPI interface. +However, the vast majority of ATA disks do not use +the ATAPI interface. + + + +The default action of the IDE subsystem in Linux is to claim all ATA +devices for its drivers. In the case of an ATAPI cd writer, it will be +claimed by the ide-cd driver. Once this has happened, the SCSI subsystem +is unable to get control over an ATAPI device. The ide-scsi (pseudo +lower level SCSI) driver can only register ATAPI devices in the SCSI +subsystem that have not already been claimed +by IDE subsystem. + + +To change this default action, parameters need to be passed to the IDE +subsystem that instruct it not to register a given device. Let us assume that +a cd writer is connected to the second IDE controller in the slave +position (i.e. /dev/hdd). One of the following +two techniques may + +Another less targeted approach is available when both the ide-cd +and ide-scsi drivers are modules. That is to rmmod ide-scsi; +rmmod ide-cd; modprobe ide-scsi. + +be used: + +at kernel boot time pass the option: "hdd=scsi" + +load the ide-cd module with +modprobe ide-cd ignore=hdd. This can also be +accomplished by placing this line: "options ide-cd ignore=hdd" +in the /etc/modules.conf file + + +The first technique can only be done at boot time (and can be automated +using lilo with an "append" in the /etc/lilo.conf +file). It assumes that the main IDE subsystem driver is built in, which +is almost always the case. The second technique assumes that the ide-cd +driver is a module which is not normally the case (i.e. most distributions +build it in). After one of these techniques has been applied, loading the +ide-scsi driver should register the cd writer at /dev/hdd + as /dev/sr<n> where the "n" is +the next available number. + + +To find out if the above worked, the output of +cat /proc/scsi/scsi can be checked. Perhaps a simpler +method is to observe the "drive name:" line of +cat /proc/sys/dev/cdrom/info for "sr" entries. The +following output is from my system: + +$ cat /proc/sys/dev/cdrom/info +CD-ROM information, Id: cdrom.c 3.12 2000/10/18 + +drive name: sr1 sr0 +drive speed: 16 0 +drive # of slots: 1 1 +Can close tray: 1 1 +Can open tray: 1 1 +Can lock tray: 1 1 +Can change speed: 1 1 +Can select disk: 0 0 +Can read multisession: 1 1 +Can read MCN: 1 1 +Reports media changed: 1 1 +Can play audio: 1 1 +Can write CD-R: 1 0 +Can write CD-RW: 1 0 +Can read DVD: 0 1 +Can write DVD-R: 0 0 +Can write DVD-RAM: 0 0 + + + +Once an ATAPI cd writer at /dev/hdd has been registered by the SCSI +subsystem, then cdroms should be mounted via the "sr" device name +and cd players should also use the "sr" device. Strangely the +hdparm command should still use the +/dev/hdd device file. + + @@ -1494,20 +1603,34 @@ posting to the linux-scsi newsgroup may help [see N1 ]. +For an overview of the drivers supplied with the kernel source tree, +use one of the kernel configuration programs (e.g. +cd /usr/src/linux; make menuconfig). The help +information associated with each selection can be found together in one +(large) flat file at +/usr/src/linux/Documentation/Configure.help. +Drivers can be obtained from other places. It is unlikely that a SCSI +driver made for the lk 2.2 series (or before) will build or operate +successfully in the lk 2.4 series. [From a programmatic viewpoint +there are not a lot of things that need changing.] Drivers may even +be only available in binary form, in which case make sure that you +trust the provider and follow their instructions closely. + + Lower level drivers can support either of 2 error handling strategies. The older one is considered obsolete while the newer one is often called "new_eh". The advantage of "new_eh" is that it uses a separate kernel -thread (named "scsi_eh_<n>" where <n> is the host number) to +thread per host (named "scsi_eh_<n>" where <n> is the host number) to facilitate error recovery. Both error handling strategies were also available in the lk 2.2 series in which very few adapter drivers used "new_eh". In the lk 2.4 series, more -drivers are using it and the plan in the forthcoming lk 2.5 development +drivers are using it and the plan for the forthcoming lk 2.5 development series is to drop mid level support for the older, obsolete error strategy. Drew Eckhardt's SCSI-HOWTO document [see reference W7 ] goes into much more detail about lower level (adapter) drivers -than this document. Since that SCSI-HOWTO is 4 years old, some things may +than this document. Since that SCSI-HOWTO is 5 years old, many things have changed and more drivers have been added. @@ -1519,7 +1642,7 @@ that command set. Those hardware buses can be further divided into those used exclusively for SCSI (e.g. ultra wide), those shared with other protocols (e.g. USB, IEEE 1394) and those buses not defined by the various SCSI standards. In the final category there are several interesting examples -including IDE ATAPI CD writers and PC parallel bus ZIP drives. Such devices +including ATAPI CD writers and PC parallel bus ZIP drives. Such devices use the SCSI command set (or something very close to it) over a foreign bus. @@ -1531,12 +1654,12 @@ maintainers. IDE-SCSI -From configuration point of view, ide-scsi will grab -and try to control every IDE device which doesn't have a "native" +From configuration point of view, ide-scsi will grab and try to control +every ATA (a.k.a. IDE) device which doesn't have a "native" driver attached (such as ide-cd, ide-tape, etc). So for example, if both ide-cd and ide-scsi are compiled into the kernel in a system which has an ATAPI cdrom, ide-cd will get to control it. If only -ide-scsi is compiled in, it will get the device. There are also some +ide-scsi is compiled in, it will get the device. There are some command line parameters to control which driver gets which device. @@ -1545,7 +1668,7 @@ It was "hdx=ide-scsi / hdx=ide-cdrom / hdx=ide-floppy" in 2.2.x kernels. In the 2.4 series this has been changed to "hdx=scsi". Also see this section on cdroms. [The term "hdx" is used -to refer to one of the IDE devices in {hda, hdb, hdc ...}.] +to refer to one of the IDE/ATA devices in {hda, hdb, hdc ...}.] When the driver is running, the device will be accessible using @@ -1612,7 +1735,7 @@ that the host adapter and the peripheral are in the same actual case. PPSCSI -The new, not-yet-integrated, architecture for devices that uses SCSI +The new, not-yet-integrated, architecture for devices that use SCSI over a parallel port cable is ppscsi. The ppscsi module provides the boiler plate code and makes it easy to write implementations for different interfaces. @@ -1669,7 +1792,19 @@ See kernel source file /usr/src/linux/drivers/i2o/io2_scsi.c Support for IEEE 1394 devices that use the SBP-2 protocol is now becoming available. See the IEEE 1394 paragraph in this -section for some urls. +section for more information. + + + +iSCSI + +An IETF draft is taking shape for iSCSI. This sends the SCSI command +set over a TCP network connection. iSCSI seems to be gaining popularity +quickly and there are several implementations for Linux taking shape. +One implementation is at + +sourceforge.net/projects/intel-iscsi/. +Use your favourite search engine to find other projects. @@ -1694,7 +1829,7 @@ found at /dev/rawctl. A utility called raw (see man raw) can be used to bind a raw device to an existing block device. These "existing block devices" may be disks or cdroms/dvds whose underlying interface can be anything supported -by Linux (e.g. IDE or SCSI). +by Linux (e.g. IDE/ATA or SCSI). A sequence of commands listing the raw devices and then binding @@ -1740,7 +1875,7 @@ Unix utilities such as recent versions of dd and lmdd (from the lmbench suite of programs) can be used to move data to and from "raw" devices as they meet the above-mentioned block alignment requirements. Recent versions of the sg_dd -command in the sg_utils package can use raw and sg devices. +command in the sg_utils package can access both raw and sg devices. @@ -1843,7 +1978,7 @@ Secondary name slink to this primary device Those entries marked with "*" are directories containing the primary devices. -Note that IDE devices are listed before SCSI devices. These secondary device +Note that IDE/ATA devices are listed before SCSI devices. These secondary device names mimic the same persistence rules as the primary device names. So when a SCSI device (?), or its lower level driver or its upper level driver are removed then so are the primary and secondary device names associated with it. @@ -1972,18 +2107,27 @@ LVD and SE physical buses on the same logical SCSI bus. ULTRA 160 SCSI -The fastest parallel SCSI bus currently available is ULTRA 160 which is -also known as ULTRA 3. It uses a 16 bit wide data path, LVD signalling -(see previous entry) and double transition clocking that increases the -maximum synchronous bandwidth to 160 MB/sec. Additional features -include cyclic redundany codes (CRC) to improve data integrity (compared -with a parity bit) and domain validation which lowers transfer rates -if the error rate is too high. Various -manufacturers have got together and maintain a common web site promoting it: - -www.ultra160-scsi.com. Speeds of 320 MB/sec -and 640 MB/sec using the same or similar LVD signalling over a 16 bit -wide data path may soon be standardized. +ULTRA 160 doubles parallel SCSI bus bandwidth yet again. It uses a 16 bit +wide data path, LVD signalling (see previous entry) and double transition +clocking that increases the maximum synchronous bandwidth to 160 MB/sec. +Additional features include cyclic redundany codes (CRC) to improve data +integrity (compared with a parity bit) and domain validation which adjusts +transfer rates if the error rate is too high. + + +ULTRA 320 SCSI + +Shortly ULTRA 320 adapters will be available (disks with that interface +are already on the market). This is also a 16 bit wide LVD bus that can +fall back to slower speeds for compatibility with older devices. It extends +the features of Ultra 160 by doubling the clock speed. Packetized SCSI +which sends commands and status at full bus speed (rather than 5 MB/sec) +is included. Other improvements include "quick arbitration and selection" +and "read and write data streaming". Note that adapter cards using 64 bit +PCI (or better: PCI-X) are required to stop the PCI bus being a bottleneck +at these speeds. More information can be found at +www.scsita.org. +Evidentally ULTRA 640 is coming as well. FC-AL @@ -2000,6 +2144,7 @@ cable) can also be used at lower speeds and for shorter distances. IEEE 1394 + This standard also goes by the name of "Fire Wire" [trademarked by Apple] and "iLink" [trademarked by Sony]. It is a serial bus that can run at up to 400 Megabits/sec. It has a similar but more general architecture than @@ -2010,9 +2155,17 @@ lower level driver (so it is functionally similar to the ide-scsi driver). So IEEE 1394 devices that use the SBP-2 protocol (e.g. disks, cd-rw/dvd drives, MO drives and scanners) can be accessed via the SCSI subsystem. See -Linux1394.sourceforge.net -and -firewire.zawa.com/sbp2/ for more information. +Linux1394.sourceforge.net for more information. +The sbp2 driver is in that project's CVS and hopefully will appear in +the released kernel shortly. + + +iSCSI + +This is an emerging IETF standard for sending the SCSI command set over a +TCP connection (or several of them). This will permit SCSI devices (targets +such as disks) to be network appliances, accessed locally (or potentially +at a great distance) by a host machine. @@ -2025,15 +2178,16 @@ SCSI products. -IDE (ATAPI) +IDE/ATA (ATAPI) IDE is the most used disk type on PC systems today. The acronym stands for Integrated Drive Electronics and as the name suggests it places the bulk of the IO "intelligence" on the disk controller card rather than spreading it between the device (most often a disk) and a controller (HBA) as SCSI does. IDE grew out of the ST506 and ESDI standards in the 1980s. EIDE -(extended IDE) is a related acronym. The standards that cover IDE are -called ATA and can be found at +(extended IDE) is a related acronym. The modern standards that refer to +this bus architecture are known as ATA and can be found at + www.t13.org. The ATA Packet Interface (ATAPI) extends the disk oriented command set to support CDROM and tape drives. The ATAPI command set closely resembles the SCSI command set. The @@ -2153,8 +2307,8 @@ HDIO_GETGEO_BIG {ioctl, new} sr changes No sr changes reported. As a related matter, the way in which the -IDE subsystem is informed that an IDE device (e.g. a cd writer) is -to be ignored has changed. [Instructing an IDE device to be ignored +IDE subsystem is informed that an ATA device (e.g. a cd writer) is +to be ignored has changed. [Instructing an ATA device to be ignored by the IDE subsystem makes it a candidate to be recognized by the ide-scsi pseudo driver.] Previously a kernel boot time option such as "hdb=ide-scsi" would instruct the IDE subsystem to ignore the @@ -2755,7 +2909,7 @@ SG_DEF_FORCE_LOW_DMA {0} SG_DEF_FORCE_PACK_ID {0} SG_DEF_KEP_ORPHAN {0} SG_MAX_QUEUE {16} -SG_DEFAULT_RETRIES {1} +SG_DEFAULT_RETRIES {1} # i.e. don't retry SG_BIG_BUFF {SG_DEF_RESERVED_SIZE} SG_DEFAULT_TIMEOUT {60 seconds} SG_DEF_COMMAND_Q {0 *} diff --git a/LDP/howto/docbook/SCSI-2.4-HOWTO/cdrom.fig b/LDP/howto/docbook/SCSI-2.4-HOWTO/cdrom.fig index 2d893aed..6ec0fb42 100644 --- a/LDP/howto/docbook/SCSI-2.4-HOWTO/cdrom.fig +++ b/LDP/howto/docbook/SCSI-2.4-HOWTO/cdrom.fig @@ -15,22 +15,6 @@ Single 4 0 0 50 0 12 14 0.0000 4 150 810 1650 3675 driver\001 4 0 0 50 0 12 14 0.0000 4 180 1350 1425 3900 {ide-cd.o}\001 -6 -6 1200 975 6825 2250 -2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 1200 975 6800 975 6800 2250 1200 2250 1200 975 -4 0 0 50 0 12 14 0.0000 4 195 2700 2625 1275 Uniform CD-ROM layer\001 -4 0 0 50 0 12 14 0.0000 4 180 2430 2775 1650 [DVD, audio, etc.]\001 --6 -6 1200 4350 2850 5400 -6 1200 4350 2850 5400 -2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 1200 4350 2850 4350 2850 5400 1200 5400 1200 4350 --6 -4 0 0 50 0 12 14 0.0000 4 135 405 1725 4575 IDE\001 -4 0 0 50 0 12 14 0.0000 4 180 1350 1425 5325 {ide-cd.o}\001 -4 0 0 50 0 12 14 0.0000 4 195 1215 1425 4800 subsystem\001 -4 0 0 50 0 12 14 0.0000 4 150 810 1575 5025 driver\001 --6 6 3150 2850 4800 3975 6 3150 2850 4800 3975 6 3150 2850 4800 3975 @@ -63,9 +47,20 @@ Single 4 0 0 50 0 12 14 0.0000 4 135 1620 3225 5025 +lower level\001 4 0 0 50 0 12 12 0.0000 4 180 1575 3150 5250 {scsi_mod.o ++}\001 -6 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1200 975 6800 975 6800 2250 1200 2250 1200 975 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1200 4350 2850 4350 2850 5400 1200 5400 1200 4350 4 0 0 50 0 12 14 0.0000 4 180 675 300 1350 Upper\001 4 0 0 50 0 12 14 0.0000 4 135 675 300 1650 level\001 4 0 0 50 0 12 14 0.0000 4 150 405 375 3300 Mid\001 4 0 0 50 0 12 14 0.0000 4 135 675 375 3600 level\001 4 0 0 50 0 12 14 0.0000 4 135 675 375 4800 Lower\001 4 0 0 50 0 12 14 0.0000 4 135 675 375 5100 level\001 +4 0 0 50 0 12 14 0.0000 4 135 405 1725 4575 IDE\001 +4 0 0 50 0 12 14 0.0000 4 195 1215 1425 4800 subsystem\001 +4 0 0 50 0 12 14 0.0000 4 150 810 1575 5025 driver\001 +4 0 0 50 0 12 14 0.0000 4 180 945 1425 5325 {ide.o}\001 +4 0 0 50 0 12 14 0.0000 4 195 2700 2625 1275 Uniform CD-ROM layer\001 +4 0 0 50 0 12 14 0.0000 4 180 2430 2775 1650 [DVD, audio, etc.]\001 +4 0 0 50 0 12 16 0.0000 4 195 1350 3300 1950 {cdrom.o}\001