AHA-2742Twin Channel conversion with Linux 2.2.14

Doug Ledford dledford at redhat.com
Mon May 15 10:22:55 PDT 2000


Ulrich Stoecker wrote:
> 
> Hi, AIC7xxx specialists,
> 
> I have some trouble with my AHA-2742T EISA controller since I tried to add
> an external hd (on scsi channel A, external connector) in addition to the
> internal one (channel B).
> In the BIOS setup channel B is marked to be the primary channel.
> However, the external channel (A) allways becomes scsi0 and the first
> external disk therefore /dev/sda. Despite of the BIOS setup the internal
> disc becomes /dev/sdb on scsi1.
> I would like to link the internal scsi-bus to scsi0 and consequently the
> first internal disk to /dev/sda.
> I tried the option "reverse_scan" but it had no effect on the twin channel
> board.
> 
> I'm using Linux 2.2.14 with the aic7xxx driver version 5.1.21 /3.2.4
> compiled into the kernel.
> 
> Thanks in advance for any hint.

The linux mid layer SCSI code doesn't allow us to set the second channel on
the EISA boards as a primary.  I can make it work on all the multi channel PCI
controllers because they have different instances of controller
chips/functions for each bus and as such are all registered independant of
each other, but the aic7770 based controllers use the same instance of a
single chip for both channels and both channels are registers at the same
time, which forces the ordering you are seeing.  If you update your /etc/fstab
file to think all the partitions are now on sdb instead of sda and also update
the /etc/lilo.conf file to think that the root partition and other items are
on /dev/sdb, then you can make things work.  Here's the basic steps:

1.  With your current setup still in place, update the /etc/fstab file
completely.
2.  Shutdown the machine
3.  Install the new drive
4.  Bring the machine up in single user mode.  In order to get it to mount the
root filesystem, pass the root= option to the lilo boot prompt and use the
/dev/sdb<whatever> parameter to tell the kernel that the root partition is now
on the second disk instead of the first, also pass the option S on the same
lilo boot command line to keep the machine from coming up in multi user mode.
5.  Edit the /etc/lilo.conf file, changing all instances of /dev/sda? to
/dev/sdb?.
6.  Add two new lines to the lilo.conf file in the top portion of options
(before you get to the first image= line in the file):

disk=/dev/sdb
	bios=0x80

This will tell lilo that when it puts the lilo boot sector on the master boot
record on /dev/sdb, that the BIOS thinks that /dev/sdb is the *first* hard
drive in the system and to access the disk as such.
7.  Run the /sbin/lilo program to rewrite your master boot record.
8.  Reboot, and this time the machine should come up normally with the root
and other partitions on the /dev/sdb drive and the /dev/sda drive should be
ready for other use.



-- 

 Doug Ledford <dledford at redhat.com>  http://people.redhat.com/dledford
      Please check my web site for aic7xxx updates/answers before
                      e-mailing me about problems


To Unsubscribe: send mail to majordomo at FreeBSD.org
with "unsubscribe aic7xxx" in the body of the message




More information about the aic7xxx mailing list