# How to Configure Nakamichi MJ-5.16 ATAPI CD Changer?

## bretts5964

Anyone have any advice on getting a multiple CD changer to work??  I have a 5-CD Nakamichi IDE (ATAPI) drive.  It is seen as a single drive with my current configuration, and works completely, but only on the first CD slot.  Here's a link to my drive:  Nakamichi MJ-5.16 (ATAPI).  I have IDE-SCSI emulation compiled into the kernel and enabled for my CD-burner which works perfectly (seen here):  hp cd-writer plus internal 9100i drive, but not on the changer.  Should I enable SCSI emulation on the changer drive also in order to see each slot as a LUN, perhaps?

My /etc/fstab is listed below for your inspection.  After emerging K3B and running its configuration wizard, the last two lines were added.  I'm guessing there are some redundancies in there now, but am not experienced enough to mess with something that actually works without breaking it.

```

# /etc/fstab: static file system information.

# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/fstab,v 1.10 2002/11/18 19:39:22 azarah Exp $

#

# noatime turns of atimes for increased performance (atimes normally aren't

# needed; notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail and tail freely.

# <fs>             <mountpoint>    <type>     <opts>            <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/hda1           /boot          ext2      noauto,noatime  1 2

/dev/hda3           /              ext3      noatime         0 1

/dev/hda2           none           swap      sw              0 0

/dev/cdroms/cdrom0  /mnt/cdrom     iso9660   noauto,ro       0 0

proc                /proc          proc      defaults        0 0

none                /proc/bus/usb  usbdevfs  defaults        0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for

# POSIX shared memory (shm_open, shm_unlink). Adding the following

# line to /etc/fstab should take care of this:

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will use almost no

#  memory if not populated with files)

tmpfs               /dev/shm      tmpfs    defaults        0 0

# Creates a mount point for Windows hard disk

/dev/hdc1           /mnt/windows  vfat     defaults        0 0

/dev/ide/host0/bus1/target1/lun0/cd   /mnt/cdrom   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus0/target0/lun0/cd   /cdrecorder   auto   ro,noauto,user,exec   0 0

```

The physical drive layout is this:

Primary IDE:

/dev/hda = 8 Gb IDE

/dev/hdb = HP CD-writer 9100i ATAPI

Secondary IDE:

/dev/hdc = 2.5 Gb IDE

/dev/hdd = Nakamichi MJ-5.16 changer ATAPI

This particular drive is known only to work with Windows 95 drivers, (yes I know, I'm using old equipment).  I have installed Red Hat 7.2, Mandrake 8 & Lycoris before with only a single slot recognized, but never even dreamed of attempting to fix this issue.  However, I feel there's hope with Gentoo!!  If this CD changer problem can be solved, that would just be icing on the cake.

Thanks,

Brett

----------

## pjp

Moved from Installing Gentoo.

----------

## drizzt

Yeah give it a try and configure ide-scsi emulation for the changer. I would also suggest to compile ide-scsi as a module so on modprobe you can see what the ide-scsi driver has found. Also be shure to have the 'probe multiple lun' kernel option on.

Just for Info. Curiously my Toshiba CDWriter (IDE) is found 6 times by ide-scsi, so I think multiple lun option will help detecting the other slots of the changer...

----------

## bretts5964

Thanks for the encouragement Drizzt.  I found out that my kernel was already compiled as you mentioned with IDE-SCSI as a module, (this was the advice of the Gentoo install instructions).  My exact kernel options are shown below:

make menuconfig settings:

```

ATA/IDE/MFM/RLL support  --->

  IDE, ATA and ATAPI Block devices  --->

    <M>   SCSI emulation support

SCSI support  --->

  <*> SCSI support

  <*>   SCSI disk support

  (40) Maximum number of SCSI disks that can be loaded as modules

  <M>   SCSI CD-ROM support

  [*]     Enable vendor-specific extensions (for SCSI CDROM)

  (2) Maximum number of CDROM devices that can be loaded as modules

  <M>   SCSI generic support

  [*]   Enable extra checks in new queueing code

  [*]   Probe all LUNs on each SCSI device

  [*]   Verbose SCSI error reporting (kernel size +=12K)

```

All I did was change the kernel boot options to include hdd=ide-scsi, and add .../cdrom1-5 entries to my /etc/fstab and created subdirectories under /mnt.

grub.conf:

```

<snip>...

# First OS option

title=Gentoo Linux 1.4

root (hd0,0)

kernel /boot/bzImage root=/dev/hda3 hdb=ide-scsi hdd=ide-scsi

<snip>...

```

/etc/fstab:

```

<snip>...

/dev/scsi/host0/bus1/target0/lun0/cd   /mnt/cdrom   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus1/target1/lun0/cd   /mnt/cdrom1   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus1/target1/lun1/cd   /mnt/cdrom2   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus1/target1/lun2/cd   /mnt/cdrom3   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus1/target1/lun3/cd   /mnt/cdrom4   auto   ro,noauto,user,exec   0 0

/dev/scsi/host0/bus1/target1/lun4/cd   /mnt/cdrom5   auto   ro,noauto,user,exec   0 0

<snip>...

```

The results were the same as before.  The Nakamichi changer is now working with ide-scsi, but only with the first cd slot.  After looking at it again, I'm guessing that the reason is that the Max CDROM devices kernel setting is 2.  Guess I'll have to set it to 6 and recompile.

More later,

Brett

----------

## drizzt

Yep, first try rising the cdrom devices, and second look in dmesg if different luns are detected at all...

----------

## bretts5964

After recompile, the first slot is still the only one seen by the system.  Here's my dmesg output.  Any further suggestions?

```

Linux version 2.4.19-gentoo-r10 (root@led.zep.com) (gcc version 3.2.1 20021207 (Gentoo Linux 3.2.1-20021207)) #7 SMP Tue Mar 11 06:44:24 PST 2003

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 000000000fffd000 (usable)

 BIOS-e820: 000000000fffd000 - 000000000ffff000 (ACPI data)

 BIOS-e820: 000000000ffff000 - 0000000010000000 (ACPI NVS)

 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)

255MB LOWMEM available.

Advanced speculative caching feature not present

On node 0 totalpages: 65533

zone(0): 4096 pages.

zone(1): 61437 pages.

zone(2): 0 pages.

Kernel command line: root=/dev/hda3 hdb=ide-scsi hdd=ide-scsi

ide_setup: hdb=ide-scsi

ide_setup: hdd=ide-scsi

Local APIC disabled by BIOS -- reenabling.

Found and enabled local APIC!

Initializing CPU#0

Detected 451.035 MHz processor.

Console: colour VGA+ 80x25

Calibrating delay loop... 897.84 BogoMIPS

Memory: 253356k/262132k available (1603k kernel code, 6344k reserved, 663k data, 116k init, 0k highmem)

Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)

Inode cache hash table entries: 16384 (order: 5, 131072 bytes)

Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)

Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes)

Page-cache hash table entries: 65536 (order: 6, 262144 bytes)

CPU: Before vendor init, caps: 0183fbff 00000000 00000000, vendor = 0

CPU: L1 I cache: 16K, L1 D cache: 16K

CPU: L2 cache: 512K

CPU: After vendor init, caps: 0183fbff 00000000 00000000 00000000

Intel machine check architecture supported.

Intel machine check reporting enabled on CPU#0.

CPU:     After generic, caps: 0183fbff 00000000 00000000 00000000

CPU:             Common caps: 0183fbff 00000000 00000000 00000000

Enabling fast FPU save and restore... done.

Checking 'hlt' instruction... OK.

POSIX conformance testing by UNIFIX

CPU: Before vendor init, caps: 0183fbff 00000000 00000000, vendor = 0

CPU: L1 I cache: 16K, L1 D cache: 16K

CPU: L2 cache: 512K

CPU: After vendor init, caps: 0183fbff 00000000 00000000 00000000

Intel machine check reporting enabled on CPU#0.

CPU:     After generic, caps: 0183fbff 00000000 00000000 00000000

CPU:             Common caps: 0183fbff 00000000 00000000 00000000

CPU0: Intel Pentium II (Deschutes) stepping 02

per-CPU timeslice cutoff: 1461.42 usecs.

task migration cache decay timeout: 10 msecs.

SMP motherboard not detected.

enabled ExtINT on CPU#0

ESR value before enabling vector: 00000000

ESR value after enabling vector: 00000000

Using local APIC timer interrupts.

calibrating APIC timer ...

..... CPU clock speed is 451.0110 MHz.

..... host bus clock speed is 100.2246 MHz.

cpu: 0, clocks: 1002246, slice: 501123

CPU0<T0:1002240,T1:501104,D:13,S:501123,C:1002246>

migration_task 0 on cpu=0

PCI: PCI BIOS revision 2.10 entry at 0xf0720, last bus=1

PCI: Using configuration type 1

PCI: Probing PCI hardware

Unknown bridge resource 0: assuming transparent

Unknown bridge resource 1: assuming transparent

Unknown bridge resource 2: assuming transparent

PCI: Using IRQ router PIIX [8086/7110] at 00:04.0

Limiting direct PCI/PCI transfers.

isapnp: Scanning for PnP cards...

isapnp: No Plug & Play device found

Linux NET4.0 for Linux 2.4

Based upon Swansea University Computer Society NET3.039

Initializing RT netlink socket

Starting kswapd

Journalled Block Device driver loaded

devfs: v1.12a (20020514) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

ACPI: Core Subsystem version [20011018]

ACPI: Subsystem enabled

ACPI: System firmware supports S0 S1 S5

parport0: PC-style at 0x378 (0x778) [PCSPP(,...)]

parport0: irq 7 detected

pty: 256 Unix98 ptys configured

Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled

ttyS00 at 0x03f8 (irq = 4) is a 16550A

ttyS01 at 0x02f8 (irq = 3) is a 16550A

Uniform Multi-Platform E-IDE driver Revision: 6.31

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

PIIX4: IDE controller on PCI bus 00 dev 21

PIIX4: chipset revision 1

PIIX4: not 100% native mode: will probe irqs later

    ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:DMA

    ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:DMA

hda: Maxtor 90845D4, ATA DISK drive

hdb: Hewlett-Packard CD-Writer Plus 9100, ATAPI CD/DVD-ROM drive

hdc: QUANTUM FIREBALL_TM2550A, ATA DISK drive

hdd: Nakamichi MJ-5.16, ATAPI CD/DVD-ROM drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

ide1 at 0x170-0x177,0x376 on irq 15

hda: 16514064 sectors (8455 MB) w/512KiB Cache, CHS=1027/255/63, UDMA(33)

hdc: 5008752 sectors (2564 MB) w/76KiB Cache, CHS=4969/16/63, DMA

Partition check:

 /dev/ide/host0/bus0/target0/lun0: p1 p2 p3

 /dev/ide/host0/bus1/target0/lun0: [PTBL] [621/128/63] p1

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077

eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html

eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others

PCI: Found IRQ 5 for device 00:09.0

PCI: Sharing IRQ 5 with 00:04.2

eth0: Intel Corp. 82557/8/9 [Ethernet Pro 100], 00:A0:C9:AB:5B:02, IRQ 5.

  Receiver lock-up bug exists -- enabling work-around.

  Board assembly 678400-001, Physical connectors present: RJ45

  Primary interface chip i82555 PHY #1.

  General self-test: passed.

  Serial sub-system self-test: passed.

  Internal registers self-test: passed.

  ROM checksum self-test: passed (0x49caa8d6).

  Receiver lock-up workaround activated.

Linux agpgart interface v0.99 (c) Jeff Hartmann

agpgart: Maximum main memory to use for agp memory: 203M

agpgart: Detected Intel 440BX chipset

agpgart: AGP aperture is 64M @ 0xe4000000

[drm] Initialized tdfx 1.0.0 20010216 on minor 0

[drm] AGP 0.99 on Intel 440BX @ 0xe4000000 64MB

[drm] Initialized radeon 1.1.1 20010405 on minor 1

SCSI subsystem driver Revision: 1.00

kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2

Linux Kernel Card Services 3.1.22

  options:  [pci] [cardbus] [pm]

usb.c: registered new driver usbdevfs

usb.c: registered new driver hub

uhci.c: USB Universal Host Controller Interface driver v1.1

PCI: Found IRQ 5 for device 00:04.2

PCI: Sharing IRQ 5 with 00:09.0

uhci.c: USB UHCI at I/O 0xd400, IRQ 5

usb.c: new USB bus registered, assigned bus number 1

hub.c: USB hub found

hub.c: 2 ports detected

Initializing USB Mass Storage driver...

usb.c: registered new driver usb-storage

USB Mass Storage support registered.

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP, IGMP

IP: routing cache hash table of 2048 buckets, 16Kbytes

TCP: Hash tables configured (established 16384 bind 16384)

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

ds: no socket drivers loaded!

kjournald starting.  Commit interval 5 seconds

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly.

Mounted devfs on /dev

Freeing unused kernel memory: 116k freed

Adding Swap: 498004k swap-space (priority -1)

EXT3 FS 2.4-0.9.17, 10 Jan 2002 on ide0(3,3), internal journal

scsi0 : SCSI host adapter emulation for IDE ATAPI devices

  Vendor: HP        Model: CD-Writer+ 9100   Rev: 1.0c

  Type:   CD-ROM                             ANSI SCSI revision: 02

  Vendor: NAKAMICH  Model: MJ-5.16           Rev: 1.03

  Type:   CD-ROM                             ANSI SCSI revision: 02

Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0

Attached scsi CD-ROM sr1 at scsi0, channel 0, id 1, lun 0

sr0: scsi3-mmc drive: 32x/32x writer cd/rw xa/form2 cdda tray

Uniform CD-ROM driver Revision: 3.12

sr1: scsi3-mmc drive: 16x/16x xa/form2 cdda changer

NTFS driver 2.1.0a [Flags: R/O MODULE].

NTFS volume version 1.2.

PCI: Found IRQ 10 for device 00:0b.0

Cisco Systems VPN Client Version 3.7.2 (Rel) kernel module loaded

```

----------

## bretts5964

I figured it out with the help of an excellent reference on this HOWTO page: 

The Linux CD-ROM HOWTO: 6.11. Do multi-platter CD-ROM drives work with Linux?

I disabled all the IDE-SCSI emulation for my changer and set it back to the original /dev/cdrom device using the standard IDE module that was already enabled in the kernel (somewhere).  Then, installed Eject (written by the same guy who wrote the HOWTO), "emerge eject" and ran:

```
eject -v -c4 /dev/cdrom
```

This changes to the 5th slot in verbose mode, (but doesn't actually eject anything as the name implies).  Also found a shell script to make things easier (supposedly), but it seems to work only as root since it also attempts to mount your selection.   :Shocked:   Judge for yourself.  It's here: 

RE:  IDE CD Jukebox (Still)  I dubbed it "chslot" and put it here:  /usr/local/bin/chslot

Personally, I can do without the mount option since I only need to select the slot, and then choose between mounting a file system or playing a cd.  It requires closing my cd player before chslotting so it's not entirely convenient, but it does satisfy the minimal intended purpose of having a changer:  Feeding as many cd's into the changer as possible, and selecting between them without having to eject and reload.  So I'm happy.   :Very Happy: 

Brett

----------

## candrews

19 years later, this Gentoo Forums thread was referenced in a YouTube video about multiple CD changers: https://youtu.be/oRuhRfvIkn0?t=2412

----------

