# How do I get PDC20378 controller with RAID0 drives viewable?

## magnesium

hey all,

I heard that support for PDC20378 is now in the kernel (2.6.11) but cannot for the life of me figure out how I get the PATA Raid 0 devices to show up. Maybe someone can help me with this?

I've configured the drives to be in RAID0 array through the bios and have installed Windows2000 on those drives. My gentoo linux installation is on a regular IDE harddrive and I would love to easily move my files between linux and win2k partitions while in linux. I use udev instead of devfs if that helps.

What do I need to configure in the kernel to get this to work? I assume that I need the kernel device drivers -->  Multi-device support (RAID and LVM)  ---> RAID support as well as RAID-0 support. Do I also need SCSI support? I mean, they are IDE drives but I've heard about fake-raid being needed (but I can't find it).

My motherboard is an Asus K8V-Deluxe and the Promise PDC20378 controller is onboard.

Thanks for any help any of you may provide.

----------

## magnesium

how about any IDE (non SATA) RAID controller?

----------

## localghost

 *magnesium wrote:*   

> hey all,
> 
> I heard that support for PDC20378 is now in the kernel (2.6.11) but cannot for the life of me figure out how I get the PATA Raid 0 devices to show up. Maybe someone can help me with this?
> 
> I've configured the drives to be in RAID0 array through the bios and have installed Windows2000 on those drives. My gentoo linux installation is on a regular IDE harddrive and I would love to easily move my files between linux and win2k partitions while in linux. I use udev instead of devfs if that helps.
> ...

 

Hey,

I might be able to help you later when I get home. I have an Asus K8V Se Deluxe with Promise PDC20378 controller onboard; 2 SATA drives on that controller with Linux on them.

Hmmm... sounds we work the other way around: I use the raid for Linux.

/boot is RAID-1

swap is normal (so I have 2 swap partitions)

/ is RAID-1 again

I can already tell you this:

* Yes, you need SCSI support in your kernel

* The Promise PDC20378 is not a real RAID. The BIOS setting is just a flag, and the rest is handled by a driver in the operating system. For Windows, it's the additional driver, provided by Promise, you had to copy to a floppy when installing Windows 2000. For Linux, all the work is done by ye good ol' kernel.

More later when I'm home.  :Wink: 

----------

## mallow

Ok, I have another situation. I have a 40Gig hard drive that I'm installing Gentoo on. But I have a HighPoint IDE RAID controller in the computer with two 80gig drives hooked up to them. How do I go about setting this up to use as a file server? I don't want to install my system to the RAID drives, just have them available for file storage.

Any help would be greatly appreciated!

----------

## magnesium

I really don't think it wise that you hijack this post for your question mallow.

You'll get more options if you post your own topic, and I won't get upset that you're trying to direct the help I need away from me  :Cool: 

@localghost: please let me know if you have any more tips. I'm going to upgrade my kernel now and try what you suggest. BTW, how do the RAID devices show up in your /dev folder?

----------

## smithjd15

Raid won't be supported, AFAIK. 2.4 was the only kernel supporting hardware(like)-raid for those types of controllers (highpoint, promise, etc). The only ability given by the driver will be to enable the controller; ie you can use drives plugged into those ports as normal drives.

----------

## localghost

Ok, not easy. I'm at work now, Gentoo box at home, and I only have Webmin to see what is going on. I'll try...

I use kernel 2.6.12-rc1-mm3. This is my .config:

```
CONFIG_X86_64=y

CONFIG_64BIT=y

CONFIG_X86=y

CONFIG_MMU=y

CONFIG_RWSEM_GENERIC_SPINLOCK=y

CONFIG_GENERIC_CALIBRATE_DELAY=y

CONFIG_X86_CMPXCHG=y

CONFIG_EARLY_PRINTK=y

CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y

CONFIG_CLEAR_PAGES=y

CONFIG_EXPERIMENTAL=y

CONFIG_CLEAN_COMPILE=y

CONFIG_LOCK_KERNEL=y

CONFIG_INIT_ENV_ARG_LIMIT=32

CONFIG_LOCALVERSION=""

CONFIG_SWAP=y

CONFIG_SYSVIPC=y

CONFIG_POSIX_MQUEUE=y

CONFIG_SYSCTL=y

CONFIG_HOTPLUG=y

CONFIG_KOBJECT_UEVENT=y

CONFIG_IKCONFIG=y

CONFIG_IKCONFIG_PROC=y

CONFIG_KALLSYMS=y

CONFIG_KALLSYMS_ALL=y

CONFIG_BASE_FULL=y

CONFIG_FUTEX=y

CONFIG_EPOLL=y

CONFIG_SHMEM=y

CONFIG_CC_ALIGN_FUNCTIONS=0

CONFIG_CC_ALIGN_LABELS=0

CONFIG_CC_ALIGN_LOOPS=0

CONFIG_CC_ALIGN_JUMPS=0

CONFIG_BASE_SMALL=0

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

CONFIG_MODULE_FORCE_UNLOAD=y

CONFIG_OBSOLETE_MODPARM=y

CONFIG_KMOD=y

CONFIG_STOP_MACHINE=y

CONFIG_MK8=y

CONFIG_X86_L1_CACHE_BYTES=64

CONFIG_X86_L1_CACHE_SHIFT=6

CONFIG_X86_TSC=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_MSR=y

CONFIG_X86_CPUID=y

CONFIG_X86_IO_APIC=y

CONFIG_X86_LOCAL_APIC=y

CONFIG_MTRR=y

CONFIG_SMP=y

CONFIG_SCHED_SMT=y

CONFIG_K8_NUMA=y

CONFIG_DISCONTIGMEM=y

CONFIG_NUMA=y

CONFIG_HAVE_DEC_LOCK=y

CONFIG_NR_CPUS=2

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_GART_IOMMU=y

CONFIG_SWIOTLB=y

CONFIG_X86_MCE=y

CONFIG_PHYSICAL_START=0x100000

CONFIG_KEXEC=y

CONFIG_SECCOMP=y

CONFIG_GENERIC_HARDIRQS=y

CONFIG_GENERIC_IRQ_PROBE=y

CONFIG_PM=y

CONFIG_SOFTWARE_SUSPEND=y

CONFIG_PM_STD_PARTITION=""

CONFIG_ACPI=y

CONFIG_ACPI_BOOT=y

CONFIG_ACPI_INTERPRETER=y

CONFIG_ACPI_SLEEP=y

CONFIG_ACPI_SLEEP_PROC_FS=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_THERMAL=y

CONFIG_ACPI_BLACKLIST_YEAR=2001

CONFIG_ACPI_BUS=y

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_PCI=y

CONFIG_ACPI_SYSTEM=y

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_X86_POWERNOW_K8=y

CONFIG_X86_POWERNOW_K8_ACPI=y

CONFIG_X86_ACPI_CPUFREQ=y

CONFIG_PCI=y

CONFIG_PCI_DIRECT=y

CONFIG_PCI_MMCONFIG=y

CONFIG_UNORDERED_IO=y

CONFIG_PCI_MSI=y

CONFIG_PCI_NAMES=y

CONFIG_BINFMT_ELF=y

CONFIG_BINFMT_MISC=y

CONFIG_IA32_EMULATION=y

CONFIG_IA32_AOUT=y

CONFIG_COMPAT=y

CONFIG_SYSVIPC_COMPAT=y

CONFIG_UID16=y

CONFIG_STANDALONE=y

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_PNP=y

CONFIG_PNPACPI=y

CONFIG_BLK_DEV_FD=y

CONFIG_BLK_DEV_LOOP=y

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=4096

CONFIG_BLK_DEV_INITRD=y

CONFIG_INITRAMFS_SOURCE=""

CONFIG_LBD=y

CONFIG_CDROM_PKTCDVD=y

CONFIG_CDROM_PKTCDVD_BUFFERS=8

CONFIG_IOSCHED_NOOP=y

CONFIG_IOSCHED_AS=y

CONFIG_IOSCHED_DEADLINE=y

CONFIG_IOSCHED_CFQ=y

CONFIG_AOE_PARTITIONS=16

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y

CONFIG_IDEDISK_MULTI_MODE=y

CONFIG_BLK_DEV_IDECD=y

CONFIG_BLK_DEV_IDESCSI=y

CONFIG_IDE_GENERIC=y

CONFIG_BLK_DEV_IDEPCI=y

CONFIG_BLK_DEV_GENERIC=y

CONFIG_BLK_DEV_IDEDMA_PCI=y

CONFIG_IDEDMA_PCI_AUTO=y

CONFIG_BLK_DEV_VIA82CXXX=y

CONFIG_BLK_DEV_IDEDMA=y

CONFIG_IDEDMA_AUTO=y

CONFIG_SCSI=y

CONFIG_BLK_DEV_SD=y

CONFIG_BLK_DEV_SR=y

CONFIG_CHR_DEV_SG=y

CONFIG_SCSI_SATA=y

CONFIG_SCSI_SATA_PROMISE=y

CONFIG_SCSI_SATA_VIA=y

CONFIG_SCSI_QLA2XXX=y

CONFIG_MD=y

CONFIG_BLK_DEV_MD=y

CONFIG_MD_RAID1=y

CONFIG_NET=y

CONFIG_PACKET=y

CONFIG_UNIX=y

CONFIG_INET=y

CONFIG_IP_MULTICAST=y

CONFIG_IP_TCPDIAG=y

CONFIG_NETFILTER=y

CONFIG_IP_NF_CONNTRACK=y

CONFIG_IP_NF_IPTABLES=y

CONFIG_IP_NF_MATCH_IPRANGE=y

CONFIG_IP_NF_MATCH_PKTTYPE=y

CONFIG_IP_NF_MATCH_MULTIPORT=y

CONFIG_IP_NF_MATCH_STATE=y

CONFIG_IP_NF_MATCH_CONNTRACK=y

CONFIG_IP_NF_FILTER=y

CONFIG_NETDEVICES=y

CONFIG_NET_ETHERNET=y

CONFIG_MII=y

CONFIG_NET_PCI=y

CONFIG_SK98LIN=y

CONFIG_INPUT=y

CONFIG_INPUT_MOUSEDEV=y

CONFIG_INPUT_MOUSEDEV_PSAUX=y

CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024

CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_INPUT_EVDEV=y

CONFIG_INPUT_KEYBOARD=y

CONFIG_KEYBOARD_ATKBD=y

CONFIG_INPUT_MOUSE=y

CONFIG_MOUSE_PS2=y

CONFIG_SERIO=y

CONFIG_SERIO_I8042=y

CONFIG_SERIO_LIBPS2=y

CONFIG_VT=y

CONFIG_VT_CONSOLE=y

CONFIG_HW_CONSOLE=y

CONFIG_SERIAL_8250=y

CONFIG_SERIAL_8250_CONSOLE=y

CONFIG_SERIAL_8250_NR_UARTS=4

CONFIG_SERIAL_CORE=y

CONFIG_SERIAL_CORE_CONSOLE=y

CONFIG_UNIX98_PTYS=y

CONFIG_LEGACY_PTYS=y

CONFIG_LEGACY_PTY_COUNT=256

CONFIG_HW_RANDOM=y

CONFIG_RTC=y

CONFIG_AGP=y

CONFIG_AGP_AMD64=y

CONFIG_HPET=y

CONFIG_HPET_MMAP=y

CONFIG_HANGCHECK_TIMER=y

CONFIG_VGA_CONSOLE=y

CONFIG_DUMMY_CONSOLE=y

CONFIG_SOUND=y

CONFIG_SND=y

CONFIG_SND_TIMER=y

CONFIG_SND_PCM=y

CONFIG_SND_RAWMIDI=y

CONFIG_SND_SEQUENCER=y

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=y

CONFIG_SND_PCM_OSS=y

CONFIG_SND_SEQUENCER_OSS=y

CONFIG_SND_RTCTIMER=y

CONFIG_SND_MPU401_UART=y

CONFIG_SND_AC97_CODEC=y

CONFIG_SND_VIA82XX=y

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB=y

CONFIG_USB_DEVICEFS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_OHCI_HCD=y

CONFIG_USB_OHCI_LITTLE_ENDIAN=y

CONFIG_USB_UHCI_HCD=y

CONFIG_USB_PRINTER=y

CONFIG_USB_STORAGE=y

CONFIG_USB_HID=y

CONFIG_USB_HIDINPUT=y

CONFIG_USB_MON=y

CONFIG_EXT2_FS=y

CONFIG_EXT2_FS_XATTR=y

CONFIG_EXT2_FS_POSIX_ACL=y

CONFIG_EXT3_FS=y

CONFIG_EXT3_FS_XATTR=y

CONFIG_EXT3_FS_POSIX_ACL=y

CONFIG_JBD=y

CONFIG_FS_MBCACHE=y

CONFIG_REISERFS_FS=y

CONFIG_REISERFS_FS_XATTR=y

CONFIG_REISERFS_FS_POSIX_ACL=y

CONFIG_FS_POSIX_ACL=y

CONFIG_INOTIFY=y

CONFIG_DNOTIFY=y

CONFIG_AUTOFS_FS=y

CONFIG_AUTOFS4_FS=y

CONFIG_FUSE_FS=y

CONFIG_ISO9660_FS=y

CONFIG_JOLIET=y

CONFIG_ZISOFS=y

CONFIG_ZISOFS_FS=y

CONFIG_UDF_FS=y

CONFIG_UDF_NLS=y

CONFIG_FAT_FS=y

CONFIG_MSDOS_FS=y

CONFIG_VFAT_FS=y

CONFIG_FAT_DEFAULT_CODEPAGE=850

CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

CONFIG_PROC_FS=y

CONFIG_PROC_KCORE=y

CONFIG_SYSFS=y

CONFIG_DEVFS_FS=y

CONFIG_DEVFS_MOUNT=y

CONFIG_TMPFS=y

CONFIG_HUGETLBFS=y

CONFIG_HUGETLB_PAGE=y

CONFIG_RAMFS=y

CONFIG_CRAMFS=y

CONFIG_NFS_FS=y

CONFIG_NFS_V3=y

CONFIG_NFSD=y

CONFIG_NFSD_V3=y

CONFIG_NFSD_TCP=y

CONFIG_LOCKD=y

CONFIG_LOCKD_V4=y

CONFIG_EXPORTFS=y

CONFIG_NFS_COMMON=y

CONFIG_SUNRPC=y

CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="iso8859-15"

CONFIG_NLS_CODEPAGE_850=y

CONFIG_NLS_ISO8859_15=y

CONFIG_DEBUG_KERNEL=y

CONFIG_MAGIC_SYSRQ=y

CONFIG_LOG_BUF_SHIFT=18

CONFIG_DETECT_SOFTLOCKUP=y

CONFIG_INIT_DEBUG=y

CONFIG_CRC32=y

CONFIG_ZLIB_INFLATE=y

```

This is my /etc/fstab:

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

/dev/md0   /boot      ext2      noatime         1 1

/dev/md1   /      reiserfs   noatime,notail      0 0

/dev/sda2   none      swap      sw         0 0

/dev/sdb2   none      swap      sw         0 0

/dev/hdc   /mnt/cdrw   auto      noauto,user      0 0

/dev/hdd   /mnt/dvdrw   auto      noauto,user      0 0

/dev/fd0   /mnt/floppy   auto      noauto         0 0

none      /proc/bus/usb   auto      defaults      0 0

none      /proc      proc      defaults      0 0

none      /dev/shm   tmpfs      nodev,nosuid,noexec   0 0
```

This is /etc/mdadm.conf:

```
DEVICE /dev/sda1 /dev/sda3

DEVICE /dev/sdb1 /dev/sdb3

ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1

ARRAY /dev/md1 devices=/dev/sda3,/dev/sdb3

```

There is a really good mdadm howto on this forum, please search for it.

Some more stats:

```
> cat /proc/mdstat

Personalities : [raid1] 

md1 : active raid1 sdb3[1] sda3[0]

      116607680 blocks [2/2] [UU]

      

md0 : active raid1 sdb1[1] sda1[0]

      104320 blocks [2/2] [UU]

      

unused devices: <none>
```

```
> fdisk -l

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/sda: 120.0 GB, 120034123776 bytes

255 heads, 63 sectors/track, 14593 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   fd  Linux raid autodetect

/dev/sda2              14          76      506047+  82  Linux swap / Solaris

/dev/sda3              77       14593   116607802+  fd  Linux raid autodetect

Disk /dev/sdb: 120.0 GB, 120034123776 bytes

255 heads, 63 sectors/track, 14593 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          13      104391   fd  Linux raid autodetect

/dev/sdb2              14          76      506047+  82  Linux swap / Solaris

/dev/sdb3              77       14593   116607802+  fd  Linux raid autodetect

Disk /dev/sdc: 200.0 GB, 200049647616 bytes

255 heads, 63 sectors/track, 24321 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1   *           1       24320   195350368+   7  HPFS/NTFS

Disk /dev/md0: 106 MB, 106823680 bytes

2 heads, 4 sectors/track, 26080 cylinders

Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1: 119.4 GB, 119406264320 bytes

2 heads, 4 sectors/track, 29151920 cylinders

Units = cylinders of 8 * 512 = 4096 bytes
```

HTH!

----------

## smithjd15

The only thing you could possibly do to help is to port the soft-raid subsystem from 2.4 and write a driver for your controller that fits the ported sub-system. IIRC there was a project some time back to port the subsystem; I'm not sure how that worked out. If there was a driver for that subsystem and that controller (highly unlikely, given the regular ide driver is very new) conceivably the only thing you would have to do is patch you kernel.

Otherwise, what you want is not possible.

Sorry.

[EDIT]

To clarify, you won't be able to use the bios' pseudo-hardware raid; you can however use the linux soft-raid (as specified one post up) but soft-raid is not compatible with Windows.

[/EDIT]

----------

## Hippy

There is a 2.6.11 patch that allows you to use the onboard controller as an ide controller (in scsi mode) with the promise_raid module. I have it working well as /dev/sda but you have to set the controller in the bios to compatibility mode. Just dont know if the patch is applied to the gentoo kernel.

----------

## faceman

Magnesium, did you ever get this figured out?  I need the same info.

----------

