Using the Adaptect ASH-1233 IDE Controller Card With Debian Linux
I'm posting this to Debian Users because I've had this problem, found almost
nothing on it, and figure I'm not the last person that will run into this
problem, so I hope this helps anyone else using this hardware. It works
well, but just needs some initial tweaking. While there are a number of other
IDE controller cards that work almost perfectly with Linux, sometimes we're
forced to go with what is available.
Problem: Can I use the Adaptec ASH-1233 IDE controller card with Linux (and,
more specifically, Debian)?
Purpose: There are many IDE controller cards on the market, but many don't
handle drives larger than 137GB. I've heard there are some IDE controller
cards that work fine with Linux, without any trouble, but I needed to get a
system up and running quickly and could not wait on mail order, so I had to
get what was available in this area.
Research: I had a hard time getting hits in Google on this and any other IDE
controller card, or on IDE controller cards in general. Most hits where
either "For Sale" pages, hardware lists, or other useless pages. I found
only 2 references to this card and Linux that were at all helpful. The first
was from someone who was trying to use this card in a rackmount system, and
plugged it into a riser card and could not get his system to see it. The
second was with someone who discovered that the drives on the card itself
were seen and registered before the drives on the motherboard, so the master
on the primary channel on the ASH-1233 would be seen as /dev/hda, and
normally the primary drive on the motherboard should be seen as /dev/hda.
Now, with the ASH-1233 installed, the motherboard's primary master drive
became /dev/hde.
Short Answer: This card can work on Linux with minimal tweaks. I needed a
Knoppix CD so I could boot and edit /boot/grub/menu.lst before booting the
system from the hard drive. Once set up, it's transparent. So if you get
this card, and everything goes well, it'll take an extra 5 minutes or so to
install Linux. After that, it's transparent. Both problems I mentioned in
"Research" showed up, and I'll address both of them.
Full Answer: When I first installed this board, it was not seen -- not just by
Linux, but by the computer itself. I remembered one person had trouble in a
rackmount system with a riser, like I was using. I looked at the connection
The card was not seated all the way in the slot. The metal back to the card,
the one that covers the slot in the outside case and screws directly into the
case was too short! This is something I've never seen, but the bend on the
end (or top) of the metal strip was too close to the card, so when that strip
is flat on the back of the case and screwed in, the card itself cannot go all
the way into the PCI slot. Maybe mine was defective, but since someone else
had a card that wasn't recognized, and knowing this would explain that, makes
me wonder if Adaptec hasn't messed up on this. I examined the card and saw
no direct leads connected to these cards, and since a PCI slot has ground
connections anyway, I unscrewed the strip from the card, and glued the strip
to the card in the right location, so the card could sit firmly in the
socket. It worked fine and the card was recognized.
I am using Debian Sarge (currently the stable branch of Debian), and the
regular Sarge installer with the 2.6.8 kernel. I'm also using Grub for
booting. I used the Net Install disk and when it booted, I typed in
"linux26" at the prompt (where it says to press F1 for more options or to
just hit return) because I wanted to use the 2.6 kernel instead of the 2.4
version. From there, install as normal, but remember that if you're using
the master drive on the motherboard's primary IDE channel as the boot drive,
it'll show up as /dev/hde instead of /dev/hda. (From here on, I'll write
with the presumption you're booting from what should be /dev/hda, the
motherboard's primary master drive.) Let everything install as normal.
When it gets to the point where the installer says to remove the install disk
so the computer can reboot into the new version of Linux you've installed (I
know most distros do this), remove the install CD, and replace it with a
Knoppix (or other live distro) CD. Instead of booting into Linux for the
first time, or to finish the install, let it boot Knoppix. Once Knoppix is
running, mount /dev/hde1, the boot drive (or whichever partition /boot is
on). (Remember, here it is /dev/hde instead of /dev/hda because Adaptect is
funky and the ASH-1233's drives are listed first.) Use Kate or vi or Emacs,
or whatever editor you prefer. The one hit I had on this from Google said to
edit /boot/grub/grub.conf, but that is wrong, at least on my system. The
only config file is in /boot, and on my system, was not simply named config.
The file you DO want to edit is /boot/grub/menu.lst (that's a lower case "L",
in case your font makes it hard to tell). On my system, there were two
entries for this version of Linux, one regular and one for a repair mode.
Each entry for an OS (in this case, we're only dealing with Linux) looks
something like this:
title Debian GNU/Linux, kernel 2.6.8-2-386
root (hd1,0)
kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/hde1 ro
initrd /boot/initrd.img-2.6.8-2-386
savedefault
boot
The two lines here that had to be changed are the "root" and "kernel"
commands:
root (hd1,0)
kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/hde1 ro
This sets the root system to the motherboard's primary slave drive, but hde1
is the primary master. Try booting like this and you'll have hours of fun
debugging Grub error codes. Instead, change these two lines (in each entry
that needs it) to this:
root (hd0,0)
kernel /boot/vmlinuz-2.6.8-2-386 ide=reverse root=/dev/hda1 ro
We'll do it backwards. the "ide=reverse" will tell the system to read the IDE
devices from the cards in reverse order -- reversing only the cards, not all
the devices. This alone makes sure the motherboard's primary master
is /dev/hda and the ASH-1233's primary master (assuming there are no other
IDE controllers on your system) becomes /dev/hde, as it should be. That
means /dev/hde1 needs to be changed to /dev/hda1 so the kernel works with the
correct partition. The "root" command needs to set the drive being used to
the first drive and first partition. I am not clear why this command, which
comes first, reads the drives in the order it should BEFORE the "ide=reverse"
is done, but that's the way it works and what makes my system boot correctly.
Now that this is done, you can shut Knoppix down and tell the computer to
reboot. It'll reboot and, if it's Debian you're installing, it'll pick up
the install where it left off. (Most distros should do that -- without
noticing that you've been modifying a file in the meantime. Others may have
already finished the install, so now you'll just boot directly into the newly
installed system.)
I had the added complication that I was setting up a RAID, which is why I
needed the ASH-1233. I had a boot drive, a DVD-RW, and 3 larger drives for
the RAID. I kept trying to install Sarge and use its ability to set up a
software RAID on install, but it never worked. I later realized that was
because the ASH-1233 screwed up the drive order. It isn't hard to set up
RAID drives under Linux anymore -- just use mdadm and search for a tutorial
on Google. My thought is if you're using this card, you're better off not
using the installer's RAID setup, installing and fixing Grub, then setting up
a RAID when all the devices are set up properly.
I'm not sure, because I had an unusual situation, but you may need to
edit /etc/fstab as well to reflect the change in devices and mountpoints as
well. I can't verify that due to my configuration.
Hope this helps!
Hal
Reply to: